Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

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.
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=:
| Mode | Yang Di-journal | Keamanan | Performa |
|---|---|---|---|
journal | Metadata + data | ✅✅ Tertinggi | ❌ Paling lambat |
ordered | Metadata saja (data ditulis duluan) | ✅ Aman | ⚡ Sedikit lebih lambat dari writeback |
writeback | Metadata 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.
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.txtatau/boot/extlinux/extlinux.conf.
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 ...
sudo reboot
Setelah perangkat kembali online, verifikasi parameter aktif di kernel yang sedang berjalan:
cat /proc/cmdline
Pastikan ada rootflags=data=ordered di output.
Ada anggapan bahwa data=writeback dipasang secara sengaja untuk memperpanjang umur eMMC dengan mengurangi write cycle. Anggapan ini sebagian besar tidak akurat karena:
writeback dan ordered hanya pada urutan penulisan, bukan jumlah penulisan. Keduanya sama-sama hanya mencatat metadata di journal.data=journal karena metadata dan data keduanya dicatat di journal.Kesimpulannya: mengganti writeback ke ordered tidak akan berdampak signifikan terhadap umur eMMC, tapi memberikan ketahanan jauh lebih baik terhadap mati mendadak.
# 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
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.