STB Armbian menampilkan terminal perintah data=ordered pada filesystem EXT4

Armbian Gagal Boot Setelah Mati Listrik: Diagnosis dan Pencegahan di STB HG680P (eMMC)

Salah satu masalah yang terjadi pada perangkat berbasis Armbian yang menggunakan eMMC sebagai storage — seperti STB HG680P dengan SoC Amlogic S905X — adalah gagal boot setelah mati listrik mendadak. Perangkat tampak tidak merespons, lalu setelah di-restart akhirnya bisa berjalan kembali.

Artikel ini menjelaskan secara teknis mengapa mode data=writeback pada EXT4 rentan terhadap mati mendadak, dan cara mengubahnya ke mode data=ordered untuk mencegah kejadian serupa.

Lingkungan pengujian: Armbian di STB HG680P (Amlogic S905X), kernel 5.15.x, storage eMMC internal, akses via SSH.

Memahami Akar Masalah: EXT4 Journal Mode

Filesystem EXT4 menggunakan mekanisme journaling untuk melindungi integritas data. Sebelum data benar-benar ditulis ke disk, EXT4 mencatat rencana penulisan tersebut di jurnal. Jika terjadi mati mendadak, kernel dapat melakukan rollback atau menyelesaikan proses yang tertunda saat boot berikutnya — proses ini disebut journal recovery.

EXT4 mendukung tiga mode journaling yang dikontrol via parameter kernel rootflags=data=:

ModeYang Di-journalKeamananPerforma
journalMetadata + data✅✅ Tertinggi❌ Paling lambat
orderedMetadata saja (data ditulis duluan)✅ Aman⚡ Sedikit lebih lambat dari writeback
writebackMetadata saja (urutan bebas)⚠️ Rentan korupsi⚡⚡ Tercepat

Pada mode writeback, kernel boleh menulis metadata ke jurnal sebelum data selesai ditulis ke disk. Jika listrik mati di tengah proses ini, metadata bisa menunjuk ke data yang belum lengkap atau tidak valid — menyebabkan filesystem kotor dan boot gagal.

Pada mode ordered, kernel memastikan data ditulis lebih dulu sebelum metadata dicatat di journal. Jika listrik mati, paling buruk data yang belum selesai ditulis akan hilang, tapi filesystem tetap konsisten dan boot bisa berjalan normal.


Langkah 1: Mengubah Mode Journal dari writeback ke ordered

1.1 Temukan File Konfigurasi Boot

Pada Armbian untuk perangkat Amlogic (termasuk HG680P), konfigurasi kernel cmdline biasanya ada di /boot/uEnv.txt:

cat /boot/uEnv.txt

Cari baris APPEND yang berisi parameter boot, contohnya:

APPEND=root=UUID=f9d83a44-... rootflags=data=writeback rw rootfstype=ext4 console=ttyAML0,115200n8 ...

Jika file ini tidak ada, coba cek /boot/armbianEnv.txt atau /boot/extlinux/extlinux.conf.

1.2 Ubah Parameter rootflags

Gunakan sed untuk mengganti writeback menjadi ordered secara langsung:

sudo sed -i 's/rootflags=data=writeback/rootflags=data=ordered/' /boot/uEnv.txt

Verifikasi perubahan berhasil:

grep rootflags /boot/uEnv.txt

Output yang diharapkan:

APPEND=root=UUID=f9d83a44-... rootflags=data=ordered rw rootfstype=ext4 ...

1.3 Reboot dan Verifikasi

sudo reboot

Setelah perangkat kembali online, verifikasi parameter aktif di kernel yang sedang berjalan:

cat /proc/cmdline

Pastikan ada rootflags=data=ordered di output.


Penjelasan Tambahan: Apakah writeback Memperpanjang Umur eMMC?

Ada anggapan bahwa data=writeback dipasang secara sengaja untuk memperpanjang umur eMMC dengan mengurangi write cycle. Anggapan ini sebagian besar tidak akurat karena:

  1. Perbedaan antara writeback dan ordered hanya pada urutan penulisan, bukan jumlah penulisan. Keduanya sama-sama hanya mencatat metadata di journal.
  2. Mode yang benar-benar boros write adalah data=journal karena metadata dan data keduanya dicatat di journal.
  3. Umur eMMC jauh lebih dipengaruhi oleh faktor lain: swap aktif, logging intensif, database dengan write sering, atau tmpfs yang tidak dikonfigurasi dengan benar.

Kesimpulannya: mengganti writeback ke ordered tidak akan berdampak signifikan terhadap umur eMMC, tapi memberikan ketahanan jauh lebih baik terhadap mati mendadak.


Ringkasan Perintah

# 1. Cek isi file konfigurasi boot
cat /boot/uEnv.txt

# 2. Ubah mode journal ke ordered
sudo sed -i 's/rootflags=data=writeback/rootflags=data=ordered/' /boot/uEnv.txt
grep rootflags /boot/uEnv.txt

# 3. Reboot dan verifikasi
sudo reboot
cat /proc/cmdline

Referensi


Artikel ini berdasarkan pengalaman langsung pada STB HG680P dengan Armbian dan kernel 5.15.x. Hasilnya mungkin sedikit berbeda tergantung versi Armbian dan konfigurasi spesifik perangkat.

Leave a Reply

Your email address will not be published. Required fields are marked *