ext4 adalah filesystem default paling banyak dipakai di dunia. Episode ini membahas konsep journaling data=ordered, extents, flexible block groups, dan delayed allocation, lalu praktik dengan mkfs.ext4, tune2fs, dumpe2fs, e2fsck, dan resize2fs.

Episode ini adalah praktik pertama kalian: ext4. ext4 bukan filesystem paling canggih, tapi paling teruji — dia default di Ubuntu, Debian, dan hampir semua distro mainstream. Bagi SysAdmin, menguasai ext4 berarti menguasai 70 persen dari operasional storage di lapangan.
Konsep inti ext4 adalah journaling, extents, flexible block groups, dan delayed allocation. Setelah paham konsepnya, kita praktik dengan tools utama: mkfs.ext4, tune2fs, dumpe2fs, e2fsck, dan resize2fs. Semua perintah di episode ini bisa kalian jalankan di disk loopback /dev/loop0 yang disiapkan di episode 0.
Sebelum lanjut, pastikan lab kalian siap: verifikasi perangkat loop masih terpasang dan pastikan tidak ada data penting di dalamnya — mkfs akan menghapus semuanya.
ext4 mewarisi journaling ext3. Mode default data=ordered menulis data terlebih dahulu, lalu mencatat metadata ke journal. Artinya: jika crash terjadi, filesystem pulih konsisten tanpa menunggu pembacaan ulang disk, dan kalian tidak kehilangan struktur direktori.
Journal dialokasikan sebagai file internal atau perangkat terpisah (external journal) untuk workload yang sangat intensif. Ukuran default sekitar 128MB atau 1024 blocks per 256MB.
ext4 menggantikan block bitmap murni dengan extents: setiap entry di inode bisa mereferensikan jutaan blok berurutan. Ini memangkas metadata overhead secara drastis untuk file besar.
Delayed allocation menunda penentuan lokasi blok sampai data benar-benar akan ditulis ke disk. Kernel menumpuk data di page cache, lalu mengalokasikan blok yang paling efisien sekaligus. Efeknya: file besar lebih kontigu, I/O lebih sedikit, dan fragmentasi menurun. Perhatikan bahwa delayed allocation berarti perubahan "ruang terpakai" bisa tampak tertunda di df.
Muat disk image dan format sebagai ext4:
sudo losetup -f /tmp/lab.img
sudo losetup -l
sudo mkfs.ext4 -L lab-data /dev/loop0Label lab-data ditulis ke superblock. Tanpa partisi, mkfs menandai disk sebagai filesystem lengkap; di dunia nyata biasanya perangkat yang dipakai adalah partisi seperti /dev/sdb1.
Periksa detail yang dibuat:
sudo dumpe2fs -h /dev/loop0Perhatikan baris Block size, Inode count, Journal size, dan Filesystem features — di sanalah extents, flexible block groups, dan metadata checksum terlihat.
mke2fs (nama generik dari mkfs.ext4) menawarkan opsi penyesuaian:
-b <size>: ukuran blok, 1024, 2048, atau 4096 byte.-N <count>: jumlah inode yang dibuat, untuk filesystem dengan jutaan file kecil.-m <percent>: persentase blok cadangan untuk root (default 5%).-O <features>: aktifkan/nonaktifkan fitur seperti metadata_csum, 64bit, atau ^has_journal.Contoh membuat ext4 tanpa journal (untuk kasus khusus seperti SSD read-heavy):
sudo mkfs.ext4 -O ^has_journal /dev/loop0Perintah mkfs.ext4 -O ^has_journal mematikan journaling — tidak disarankan tanpa alasan kuat, karena semua perlindungan crash hilang.
tune2fs mengubah parameter filesystem tanpa menghapus data. Operasi umum termasuk mengubah label, reservasi blok, dan jadwal fsck:
sudo tune2fs -L data-baru /dev/loop0
sudo tune2fs -m 1 /dev/loop0
sudo tune2fs -c 30 /dev/loop0-m 1 menurunkan blok cadangan dari 5% ke 1% (mengembalikan banyak ruang di disk besar), dan -c 30 memaksa fsck dijalankan setelah 30 mount.
e2fsck (alias fsck.ext4) memeriksa konsistensi. Jalankan hanya saat filesystem unmounted:
sudo umount /mnt/lab
sudo e2fsck -f -y /dev/loop0-f memaksa pemeriksaan penuh meski statusnya bersih, -y menjawab semua perbaikan dengan ya. Jika superblock utama rusak, gunakan -b 32768 untuk memakai superblock cadangan.
resize2fs menyesuaikan ukuran filesystem. Urutan yang benar saat menambah partisi: resize partisi dulu (dengan parted/fdisk), baru jalankan resize2fs. Sebaliknya, saat mengecil: resize filesystem dulu, baru partisi.
Simulasi pada loopback:
sudo resize2fs /dev/loop0Tanpa argumen ukuran, resize2fs menyesuaikan ke ukuran perangkat penuh. Untuk mengecilkan, berikan ukuran target seperti resize2fs /dev/loop0 1G.
Warning
Meresize filesystem yang sedang di-mount secara online hanya didukung untuk perbesaran pada ext4. Penciutan wajib dilakukan saat unmounted, dan selalu backup sebelum operasi ini.
ext4 adalah fondasi operasional filesystem Linux. Dengan menguasai journaling data=ordered, extents, flexible block groups, dan delayed allocation, plus tools mkfs, tune2fs, dumpe2fs, e2fsck, dan resize2fs, kalian sudah bisa mengelola mayoritas server Linux di dunia nyata.
Inti yang harus dibawa pulang:
data=ordered: aman dan seimbang.dumpe2fs -h adalah cara utama memeriksa superblock ext4.e2fsck wajib berjalan saat filesystem unmounted.resize2fs memperbesar online, mengecil wajib offline.Di episode 4 selanjutnya kita berpindah ke XFS — design, tools, dan operation — filesystem default RHEL dengan allocation groups dan B+tree yang dirancang untuk throughput tinggi. Kalian akan melihat bagaimana desain XFS berbeda total dari ext4 dan kapan ia menjadi pilihan tepat.