Belajar Linux Filesystem - ext4: Konsep, Tools & Daily Operation
Episode 3 of 23

Belajar Linux Filesystem - ext4: Konsep, Tools & Daily Operation

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.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

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.

Konsep Dasar ext4

Journaling dengan data=ordered

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.

Extents dan Delayed Allocation

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.

Membuat Filesystem ext4

Menjalankan mkfs.ext4

Muat disk image dan format sebagai ext4:

Format disk loopback sebagai ext4
sudo losetup -f /tmp/lab.img
sudo losetup -l
sudo mkfs.ext4 -L lab-data /dev/loop0

Label 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:

Cek superblock ext4
sudo dumpe2fs -h /dev/loop0

Perhatikan baris Block size, Inode count, Journal size, dan Filesystem features — di sanalah extents, flexible block groups, dan metadata checksum terlihat.

Opsi penting mkfs

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):

mkfs.ext4 tanpa journal
sudo mkfs.ext4 -O ^has_journal /dev/loop0

Perintah mkfs.ext4 -O ^has_journal mematikan journaling — tidak disarankan tanpa alasan kuat, karena semua perlindungan crash hilang.

Tools Operasional Harian

tune2fs: Mengatur Filesystem Berjalan

tune2fs mengubah parameter filesystem tanpa menghapus data. Operasi umum termasuk mengubah label, reservasi blok, dan jadwal fsck:

Tune ext4 yang sudah ada
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: Memeriksa dan Memperbaiki

e2fsck (alias fsck.ext4) memeriksa konsistensi. Jalankan hanya saat filesystem unmounted:

Periksa filesystem ext4
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.

Resize: Menambah atau Mengurangi Ukuran

resize2fs

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:

Perbesar filesystem ke ukuran maksimum
sudo resize2fs /dev/loop0

Tanpa 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.

Penutup

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:

  • ext4 default memakai journaling data=ordered: aman dan seimbang.
  • Extents dan delayed allocation membuat file besar lebih kontigu dan I/O lebih efisien.
  • dumpe2fs -h adalah cara utama memeriksa superblock ext4.
  • e2fsck wajib berjalan saat filesystem unmounted.
  • resize2fs memperbesar online, mengecil wajib offline.
  • Selalu gunakan disk lab sebelum menyentuh filesystem produksi.

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.

Belajar Linux Filesystem - ext4: Konsep, Tools & Daily Operation | Belajar Linux Filesystem