Partisi yang baru dibuat masih berupa ruang kosong tanpa identitas — file hanya akan menjawab “data”. Filesystem adalah lapisan berikutnya: struktur yang mengatur di mana data disimpan, bagaimana nama file dipetakan ke blok disk, dan bagaimana sistem pulih setelah mati listrik. Chapter ini membahas proses formatting dengan keluarga mkfs, memilih antara ext4, XFS, dan Btrfs, lalu label dan UUID yang membuat filesystem tetap dikenali meski nama perangkatnya berubah. Pada akhirnya kita juga mencoba wipefs, penghapus signature yang jadi penyelamat klasik saat partisi menolak diformat ulang.

Apa yang Sebenarnya Dilakukan mkfs #

mkfs tidak sekadar “mengosongkan” partisi. Alat ini menulis metadata ke seluruh area partisi: superblock sebagai kartu identitas, tabel inode yang mencatat kepemilikan file, dan untuk ext4/XFS juga journal yang mencatat operasi setengah jadi. Setelah mkfs selesai, signature filesystem tertanam di dalam partisi — dan alat seperti blkid cukup membaca signature itu untuk mengenali jenisnya tanpa memeriksa isi satu per satu.

Alat mkfs sungguhan membutuhkan perangkat blok dan root, yang tidak kita miliki di lingkungan latihan ini. Tetapi mekanisme penulisan signature bisa diamati dengan mkswap — alat penanda area swap (topik chapter Swap Space ) yang berperilaku sama persis: menulis signature ke sebuah file biasa. Satu penyesuaian kecil dulu: mkswap, blkid, dan wipefs tinggal di /usr/sbin, direktori yang tidak masuk PATH pengguna biasa di sini:

bash
export PATH="$PATH:/usr/sbin"
truncate -s 64M latihan.img
mkswap latihan.img >/dev/null 2>&1
blkid -s TYPE latihan.img

Output yang Dihasilkan:

text
latihan.img: TYPE="swap"

Bedah baris per barisnya:

  1. Baris 1 (export PATH=...): melengkapi PATH agar alat administrasi di /usr/sbin bisa dipanggil namanya saja.
  2. Baris 2 (truncate -s 64M ...): membuat file bayangan partisi berukuran 64 MiB.
  3. Baris 3 (mkswap latihan.img): menulis signature swap ke file; output-nya dibuang karena memuat UUID yang berbeda pada setiap eksekusi.
  4. Baris 4 (blkid -s TYPE ...): membaca signature — hasilnya TYPE="swap". mkfs.ext4 akan meninggalkan TYPE="ext4", mkfs.xfs TYPE="xfs", dan seterusnya.

Untuk gambaran seperti apa kerja mkfs sungguhan, berikut contoh tampilan mkfs.ext4 pada partisi 10 GiB:

text
mke2fs 1.47.2 (1-Jan-2024)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 3f5e2a1b-9c4d-4e8a-b7f6-1a2b3c4d5e6f
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 296960

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

Perhatikan dua hal pada output tersebut: UUID dicetak sekali saat pembuatan (kita bahas maknanya di bawah), dan cadangan superblock disimpan di beberapa lokasi — cadangan inilah yang membuat filesystem tetap bisa diperbaiki bila superblock utama rusak.

Memilih Filesystem: ext4, XFS, Btrfs, dan FAT #

Pilihan filesystem menentukan karakter partisi untuk tahun-tahun ke depan, jadi sebaiknya dipahami sebelum mengetik perintah:

Aspekext4XFSBtrfs
Karakterjournaling klasik, paling terujiparalel dan andal untuk file besarcopy-on-write, fitur modern
Fitur khasdukungan paling luasdefragmentasi onlinesnapshot, checksum, kompresi
Rumah alamiDebian, UbuntuRHEL, FedoraopenSUSE
Kapan dipilihdisk sistem, kebutuhan umumserver database, media besardata yang butuh snapshot

Ketiganya dibuat dengan pola perintah yang sama, sedangkan mkfs.fat hadir untuk kebutuhan FAT32 pada partisi EFI dan USB yang harus terbaca di berbagai sistem operasi. Perbandingan lebih rinci tiap filesystem ada di mkfs(8) dan halaman File systems wiki Arch:

bash
sudo mkfs.ext4 -L data-pribadi /dev/sdb1
sudo mkfs.xfs -L arsip-video /dev/sdc1
sudo mkfs.btrfs -L foto /dev/sdd1
sudo mkfs.fat -F 32 -n USB-BUDI /dev/sde1

Opsi -L (dan -n pada mkfs.fat) memberi label — nama pendek yang memudahkan manusia mengenali partisi. mkfs.fat memerlukan paket dosfstools di keluarga Debian.

Dukungan Filesystem di Kernel #

Satu syarat yang sering dilupakan: filesystem hanya bisa dipasang bila kernel mendukungnya, baik sebagai kode bawaan maupun modul yang bisa dimuat. Kernel menyediakan daftarnya di /proc/filesystems:

bash
grep -cw ext4 /proc/filesystems

Output yang Dihasilkan:

text
1

Hasil 1 berarti baris ext4 ada di daftar — filesystem ini siap dipakai tanpa langkah tambahan. Daftar tersebut hanya berisi dukungan yang sudah aktif: filesystem lain seperti vfat bisa saja tidak muncul sampai modulnya termuat, biasanya otomatis pada saat mount pertama. Itu sebabnya daftar di mesin Anda mungkin berbeda — bukan berarti kernel Anda lebih buruk, hanya saja modulnya belum diminta.

Label dan UUID: Identitas yang Tidak Berubah #

Kita sudah melihat di chapter sebelumnya bahwa nama /dev/sdb1 bisa berpindah antar-boot. Filesystem membawa dua identitas yang tidak ikut berubah: label yang kita pilih sendiri, dan UUID yang dibangkitkan mkfs saat formatting. Berikut contoh tampilan lsblk -f yang merangkum keduanya:

text
NAME   FSTYPE LABEL        UUID                                   MOUNTPOINTS
sda                                                      
├─sda1 vfat   EFI          4A3B-2C1D                             /boot/efi
├─sda2 ext4   root-debian  9c2f9c8f-1a2b-3c4d-5e6f-7a8b9c0d1e2f /
└─sda3 ext4   data         8a1f4c2e-d3b5-47e9-9f6a-2c8d1e0b4a5f /data

Label enak dibaca, tetapi tidak dijamin unik — dua disk bisa saja sama-sama berlabel data. UUID praktis tidak mungkin bertabrakan, karena itu dialah yang ditulis ke /etc/fstab, topik chapter fstab . Untuk mengambil UUID sebuah partisi, jalankan blkid /dev/sdb1 atau lsblk -f; keduanya hanya membaca signature, bukan mengubahnya.

wipefs: Menghapus Signature dengan Aman #

Skenario klasik: partisi bekas diformat ulang, tetapi mount masih mengenali filesystem lama karena signature lamanya belum terhapus bersih. wipefs menyelesaikannya dengan menghapus hanya byte-byte signature yang dikenalinya — jauh lebih presisi daripada menimpa seluruh disk dengan dd:

bash
export PATH="$PATH:/usr/sbin"
truncate -s 64M bersih.img
mkswap bersih.img >/dev/null 2>&1
wipefs -a bersih.img
blkid -s TYPE bersih.img || echo "tidak ada signature tersisa"
file bersih.img

Output yang Dihasilkan:

text
bersih.img: 10 bytes were erased at offset 0x00000ff6 (swap): 53 57 41 50 53 50 41 43 45 32
tidak ada signature tersisa
bersih.img: data

Bedah hasil eksekusinya:

  1. Baris pertama output (bersih.img: 10 bytes were erased ...): wipefs -a melaporkan lokasi dan isinya — sepuluh byte di offset 0xff6 yang berisi 53 57 41 50 53 50 41 43 45 32, yaitu teks SWAPSPACE2 dalam heksadesimal.
  2. Baris kedua: blkid keluar dengan kode 2 karena tidak menemukan signature apa pun, sehingga || menjalankan echo sebagai gantinya — pola shell yang membalik kegagalan menjadi pesan yang jelas.
  3. Baris ketiga: file kembali menjawab data — file bayangan itu kembali kosong, seperti sebelum ditandai.

Dengan partisi yang sudah beridentitas, pekerjaan berikutnya adalah memasangkannya ke pohon direktori. Proses mount beserta opsi-opsinya adalah topik chapter Mount Configuration .