15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
08.10.2024

Menggunakan Perintah `mkfs` di Linux: Panduan Lengkap untuk Memformat Disk dan Partisi

Perintah `mkfs` (make filesystem) adalah utilitas Linux utama untuk menulis struktur filesystem ke perangkat blok — baik itu disk mentah, partisi, maupun logical volume. Perintah ini menginisialisasi superblock, tabel inode, block group, dan struktur journal yang diperlukan sebelum data apa pun dapat ditulis ke perangkat tersebut.

Sebelum menyentuh disk apa pun, pahami hal ini: `mkfs` adalah operasi destruktif yang tidak dapat dibalik. Perintah ini tidak sekadar menghapus entri tabel partisi — melainkan menimpa metadata penting pada disk. Menjalankannya pada perangkat yang salah, meskipun sebentar, membuat data yang ada tidak dapat dipulihkan tanpa alat forensik. Verifikasi perangkat target Anda dengan `lsblk` atau `blkid` sebelum setiap pemanggilan.

Apa yang Sebenarnya Dilakukan `mkfs` di Balik Layar

Saat Anda menjalankan `mkfs -t ext4 /dev/sdb1`, kernel tidak sekadar “memformat” partisi seperti di Windows. Perintah ini memanggil binary khusus filesystem yang sesuai (dalam hal ini `mkfs.ext4`, yang sebenarnya adalah `mke2fs` dengan default ext4) dan melakukan hal-hal berikut:

  • Menulis superblock dan salinan superblock cadangan pada offset block group yang tetap
  • Mengalokasikan dan menginisialisasi tabel inode di semua block group
  • Membuat tabel deskriptor block group
  • Menginisialisasi journal (untuk filesystem berjurnal seperti ext4 dan XFS)
  • Menulis inode direktori root (inode 2 untuk ext4)
  • Menstempel UUID pada filesystem untuk identifikasi persisten

Perbedaan ini penting pada drive berkapasitas besar. Memformat partisi ext4 4 TB dengan inisialisasi tabel inode penuh dapat memakan waktu beberapa menit. XFS, sebaliknya, menangguhkan sebagian besar pekerjaan ini ke runtime, membuat `mkfs.xfs`-nya hampir seketika terlepas dari ukuran volume.

Mengidentifikasi Perangkat yang Tepat Sebelum Memformat

Jangan pernah menebak nama perangkat. Gunakan alat-alat berikut untuk memetakan perangkat keras fisik ke node perangkat kernel.

Menggunakan `lsblk`

“`bash

lsblk -o NAME,SIZE,FSTYPE,LABEL,UUID,MOUNTPOINT

“`

Contoh output:

“`

NAME SIZE FSTYPE LABEL UUID MOUNTPOINT

sda 100G

├─sda1 20G ext4 a1b2c3d4-… /

└─sda2 80G ext4 e5f6a7b8-… /home

sdb 500G

└─sdb1 500G

“`

Kolom `FSTYPE` yang kosong mengonfirmasi bahwa `/dev/sdb1` tidak memiliki filesystem yang ada — aman untuk diformat.

Menggunakan `blkid`

“`bash

sudo blkid /dev/sdb1

“`

Jika perintah tidak menghasilkan output, partisi tidak memiliki tanda tangan filesystem yang dikenali. Jika mengembalikan sebuah tipe, Anda akan menimpa data yang ada.

Menggunakan `fdisk -l`

“`bash

sudo fdisk -l /dev/sdb

“`

Ini mengungkapkan batas partisi, tipe partisi, dan apakah disk menggunakan MBR atau GPT. Jika `/dev/sdb` tidak menampilkan tabel partisi sama sekali, Anda mungkin perlu mempartisinya terlebih dahulu dengan `fdisk`, `gdisk`, atau `parted` sebelum menjalankan `mkfs`.

Sintaks Inti `mkfs` dan Pola Pemanggilan

Sintaks kanoniknya adalah:

“`bash

mkfs -t <filesystem_type> [options] <device>

“`

Namun, `mkfs` sendiri hanyalah pembungkus tipis. Setiap tipe filesystem dilengkapi binary khusus tersendiri:

Alias `mkfs`Binary yang mendasariFilesystem
`mkfs.ext4``mke2fs`Fourth Extended Filesystem
`mkfs.xfs``mkfs.xfs`XFS
`mkfs.btrfs``mkfs.btrfs`B-Tree Filesystem
`mkfs.vfat``mkdosfs`FAT16/FAT32
`mkfs.exfat``mkfs.exfat`exFAT
`mkfs.ntfs``mkntfs`NTFS
`mkfs.f2fs``mkfs.f2fs`Flash-Friendly Filesystem

Memanggil `mkfs -t ext4` dan memanggil `mkfs.ext4` secara langsung adalah identik secara fungsional — yang pertama hanya mengarah ke yang terakhir. Dalam skrip produksi, lebih baik gunakan alias eksplisit (`mkfs.ext4`) agar tujuannya tidak ambigu.

Pemilihan Tipe Filesystem: Perbandingan Teknis

Memilih filesystem yang salah untuk suatu beban kerja adalah kesalahan umum yang merugikan. Tabel berikut memetakan karakteristik filesystem ke kasus penggunaan nyata.

FilesystemUkuran Volume MaksUkuran File MaksJournalingKasus Penggunaan TerbaikDukungan Lintas OS
**ext4**1 EiB16 TiBYa (ordered/writeback)Volume root dan data Linux serba gunaNative Linux; hanya baca di macOS/Windows dengan driver
**XFS**8 EiB8 EiBYa (hanya metadata secara default)File besar, database, penyimpanan throughput tinggi, ekspor NFSNative Linux
**Btrfs**16 EiB16 EiBCoW (tanpa journal tradisional)Snapshot, RAID, subvolume, beban kerja NASNative Linux
**vFAT/FAT32**2 TiB4 GiBTidakDrive USB, EFI System Partition (ESP), media removable lintas OSUniversal
**exFAT**128 PiB16 EiBTidakMedia removable besar di mana batas ukuran file FAT32 menjadi kendalaUniversal (OS modern)
**NTFS**256 TiB256 TiBYaPartisi data Windows dual-bootNative Windows; dukungan penuh di Linux melalui `ntfs-3g`
**F2FS**16 TiB3.94 TiBLog-structuredSSD, eMMC, kartu SD, penyimpanan internal AndroidNative Linux

Kasus tepi kritis — EFI System Partition: ESP harus diformat sebagai `vfat` (FAT32 secara khusus). Menggunakan filesystem lain di sini akan mencegah firmware UEFI menemukan bootloader. Selalu format ESP dengan:

“`bash

sudo mkfs.vfat -F 32 /dev/sda1

“`

Flag `-F 32` secara eksplisit memaksa FAT32 daripada FAT16, yang penting untuk partisi ESP yang lebih besar dari 32 MiB.

Contoh Praktis `mkfs` dengan Opsi Tingkat Produksi

Contoh 1: Membuat Filesystem ext4 dengan Parameter yang Disetel

“`bash

sudo mkfs.ext4 -L "data_vol" -m 1 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdb1

“`

Fungsi setiap flag:

  • `-L "data_vol"` — menetapkan label persisten, memungkinkan entri `/etc/fstab` menggunakan `LABEL=data_vol` alih-alih path perangkat mentah (lebih aman pada sistem di mana urutan enumerasi perangkat dapat berubah)
  • `-m 1` — mengurangi persentase blok yang dicadangkan dari default 5% menjadi 1%; pada volume data 2 TB, default ini membuang ~100 GB yang hanya dapat digunakan oleh root
  • `-E lazy_itable_init=0,lazy_journal_init=0` — memaksa inisialisasi tabel inode lengkap saat format daripada menundanya ke I/O latar belakang; kritis untuk server produksi di mana inisialisasi latar belakang dapat menyebabkan lonjakan I/O yang tidak terduga berjam-jam setelah deployment

Contoh 2: Membuat Filesystem XFS untuk Server Database

“`bash

sudo mkfs.xfs -L "pg_data" -f /dev/sdb1

“`

  • `-f` — memaksa pembuatan meskipun tanda tangan filesystem yang ada terdeteksi; gunakan hanya jika Anda telah mengonfirmasi bahwa perangkat dapat dibuang
  • XFS tidak mendukung pengecilan; rencanakan ukuran volume Anda dengan cermat sebelum memformat

Untuk beban kerja PostgreSQL atau MySQL pada XFS, juga atur opsi mount `noatime` di `/etc/fstab` untuk menghilangkan overhead penulisan waktu akses inode pada setiap operasi baca.

Contoh 3: Membuat Filesystem Btrfs dengan RAID-1 di Dua Perangkat

“`bash

sudo mkfs.btrfs -L "btrfs_mirror" -d raid1 -m raid1 /dev/sdb /dev/sdc

“`

Btrfs dapat mencakup beberapa perangkat blok secara native. `-d raid1` mencerminkan data; `-m raid1` mencerminkan metadata. Ini adalah alternatif yang sah untuk software RAID mdadm pada lingkungan di mana fungsionalitas snapshot dan subvolume juga diperlukan.

Contoh 4: Membuat Filesystem vFAT untuk Drive USB

“`bash

sudo mkfs.vfat -F 32 -n "BACKUP_USB" /dev/sdc1

“`

  • `-n "BACKUP_USB"` — menetapkan label volume (label FAT32 dibatasi hingga 11 karakter, huruf besar)
  • `-F 32` — secara eksplisit memilih FAT32 daripada FAT16

Contoh 5: Membuat Filesystem F2FS pada SSD

“`bash

sudo mkfs.f2fs -l "ssd_cache" /dev/sdb1

“`

F2FS dirancang khusus untuk penyimpanan flash NAND. Ini mengurangi write amplification dan mengelola wear leveling di tingkat filesystem. Pada instans VPS Hosting yang didukung penyimpanan NVMe, F2FS dapat mengungguli ext4 untuk volume cache sementara dengan write churn tinggi.

Memformat Seluruh Disk Tanpa Tabel Partisi

Dalam skenario tertentu — LVM physical volume, Ceph OSD, atau storage appliance bertujuan tunggal — Anda mungkin menulis filesystem langsung ke seluruh disk daripada ke partisi:

“`bash

sudo mkfs.ext4 /dev/sdb

“`

Kapan ini sesuai:

  • Disk didedikasikan untuk satu tujuan dan fleksibilitas partisi tidak diperlukan
  • Anda mempersiapkan disk untuk LVM (`pvcreate` menangani ini secara berbeda, tetapi konsepnya serupa)
  • Anda membuat image filesystem loopback

Kapan ini tidak sesuai:

  • Disk apa pun yang perlu melakukan boot (memerlukan tabel partisi dengan flag boot)
  • Disk apa pun yang digunakan bersama antara beberapa filesystem atau sistem operasi
  • Disk pada sistem di mana aturan udev atau tooling infrastruktur cloud mengharapkan tabel partisi

Memasang Partisi yang Telah Diformat dan Membuatnya Persisten

Pemformatan membuat filesystem; pemasangan membuatnya dapat diakses. Selalu gunakan referensi berbasis UUID di `/etc/fstab` daripada nama perangkat, karena nama perangkat (`/dev/sdb1`) tidak dijamin stabil di seluruh reboot pada sistem dengan beberapa disk atau penyimpanan hot-plug.

“`bash

Create the mount point

sudo mkdir -p /mnt/data_vol

Mount temporarily to verify

sudo mount /dev/sdb1 /mnt/data_vol

Retrieve the UUID

sudo blkid /dev/sdb1

Output: /dev/sdb1: LABEL="data_vol" UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4"

Add a persistent, UUID-based fstab entry

echo 'UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /mnt/data_vol ext4 defaults,noatime 0 2' | sudo tee -a /etc/fstab

Validate the fstab entry without rebooting

sudo mount -a

“`

`0 2` di akhir entri fstab mengontrol `dump` (utilitas backup, atur ke 0 untuk menonaktifkan) dan urutan pass `fsck` (2 berarti periksa setelah filesystem root; root harus 1).

Memverifikasi Integritas Filesystem Setelah Pemformatan

Jangan berasumsi bahwa format berhasil tanpa verifikasi.

“`bash

Check filesystem type, label, and UUID

lsblk -f /dev/sdb1

For ext4: run e2fsck in read-only check mode

sudo e2fsck -n /dev/sdb1

For XFS: verify the filesystem structure

sudo xfs_repair -n /dev/sdb1

Check available space after mounting

df -hT /mnt/data_vol

“`

Flag `-n` pada `e2fsck` dan `xfs_repair` melakukan pemeriksaan dry-run tanpa memodifikasi filesystem. Ini aman dijalankan pada filesystem yang terpasang untuk tujuan diagnostik, meskipun perbaikan penuh memerlukan pelepasan terlebih dahulu.

Referensi Opsi Lanjutan

OpsiBerlaku UntukEfek
`-L <label>`SemuaMenetapkan label filesystem yang dapat dibaca manusia
`-b <block_size>`ext4, XFSMenetapkan ukuran blok (512, 1024, 2048, 4096 byte); blok lebih besar meningkatkan throughput untuk file besar, membuang ruang untuk file kecil
`-m <percent>`ext4Persentase blok yang dicadangkan untuk root (default 5%); kurangi menjadi 1% pada volume data besar
`-i <bytes-per-inode>`ext4Mengontrol kepadatan inode; kurangi untuk filesystem yang menyimpan jutaan file kecil
`-N <inode-count>`ext4Menetapkan jumlah inode eksplisit; berguna saat Anda mengetahui jumlah file yang diharapkan
`-E lazy_itable_init=0`ext4Menonaktifkan inisialisasi inode lazy; format lebih lambat, menghilangkan I/O latar belakang pasca-deployment
`-f`XFSMemaksa format meskipun tanda tangan filesystem ada
`-d su=,sw=`XFSMengonfigurasi stripe unit dan lebar untuk I/O yang selaras dengan RAID
`-F 32`vFATMemaksa FAT32 (vs FAT16)
`-q`ext4Mode senyap; menekan output progres (berguna dalam skrip)

Kesalahan Umum dan Cara Menghindarinya

Memformat filesystem yang terpasang: Linux tidak selalu mencegah hal ini. Menjalankan `mkfs` pada partisi yang terpasang langsung merusak filesystem dan dapat menyebabkan kernel panic. Selalu verifikasi status mount dengan `mount | grep /dev/sdb1` sebelum melanjutkan.

Kelelahan inode pada ext4: Jika Anda menetapkan ukuran blok besar (misalnya, 4096 byte) pada volume yang akan menyimpan jutaan file kecil (mail spool, cache sesi), Anda akan menghabiskan inode jauh sebelum ruang disk habis. Gunakan `-i 4096` atau `-i 2048` untuk meningkatkan kepadatan inode. Ini adalah masalah yang sangat umum pada server Email Hosting dan server web dengan lalu lintas tinggi yang menyimpan file per-sesi.

XFS dan pengecilan: Volume XFS tidak dapat dikecilkan setelah dibuat. Jika Anda memformat volume XFS 2 TB dan kemudian perlu mengambil kembali ruang, satu-satunya pilihan Anda adalah backup, format ulang, dan restore. Rencanakan ukuran volume XFS secara konservatif atau gunakan LVM thin provisioning di bawahnya.

Penyelarasan stripe untuk RAID dan SSD: Memformat tanpa menentukan penyelarasan stripe pada array RAID atau SSD menyebabkan I/O yang tidak selaras, yang secara signifikan menurunkan performa. Untuk array RAID-5 dengan stripe 512 KB dan 4 disk:

“`bash

sudo mkfs.ext4 -E stride=128,stripe-width=384 /dev/md0

“`

Di mana `stride = stripe_size / block_size` dan `stripe-width = stride * (data_disks)`.

Tabrakan UUID setelah kloning disk: Mengkloning disk dengan `dd` menduplikasi UUID filesystem. Dua perangkat dengan UUID yang identik menyebabkan kegagalan mount dan kerusakan data. Setelah kloning, buat ulang UUID:

“`bash

sudo tune2fs -U random /dev/sdb1 # ext4

sudo xfs_admin -U generate /dev/sdb1 # XFS

“`

Ini adalah pertimbangan kritis saat men-deploy Dedicated Server dari image disk atau menyediakan beberapa node dari satu template.

Pertimbangan Filesystem untuk Lingkungan VPS dan Cloud

Pada mesin virtual dan instans cloud, penyimpanan yang mendasarinya sering kali merupakan disk virtual yang di-provisioning secara tipis yang didukung oleh sistem penyimpanan terdistribusi. Beberapa keputusan `mkfs` menjadi lebih berdampak dalam konteks ini:

  • Dukungan Discard/TRIM: Format ext4 dengan `-E discard` atau tambahkan opsi mount `discard` untuk mengaktifkan TRIM online, yang mengembalikan blok yang dibebaskan ke pool penyimpanan yang mendasarinya dan mempertahankan performa dari waktu ke waktu pada instans VPS dengan cPanel yang didukung SSD.
  • Mode journal: Untuk aplikasi yang sensitif terhadap latensi, pertimbangkan mode journal `data=writeback` di `/etc/fstab` untuk ext4. Ini menukar pengurutan data yang ketat dengan latensi tulis yang lebih rendah, yang dapat diterima untuk database yang mengelola write-ahead log mereka sendiri.
  • Hindari memformat swap sebagai filesystem: Partisi swap menggunakan `mkswap`, bukan `mkfs`. Menjalankan `mkfs` pada partisi swap menghancurkan tanda tangan swap tanpa membuat filesystem yang dapat digunakan.

Saat mengelola penyimpanan pada Panel Kontrol VPS, volume disk tambahan biasanya muncul sebagai perangkat blok yang belum diformat. Alurnya selalu: identifikasi dengan `lsblk`, partisi jika diperlukan dengan `fdisk`/`gdisk`, format dengan `mkfs`, pasang, dan persisten di `/etc/fstab`.

Matriks Keputusan: Memilih Filesystem yang Tepat

Gunakan matriks ini untuk memilih filesystem berdasarkan kendala utama Anda:

Persyaratan UtamaFilesystem yang DirekomendasikanHindari
Server Linux serba gunaext4Btrfs (overhead kompleksitas)
File besar, database, NFSXFSFAT32 (tidak ada izin)
Snapshot, subvolume, NASBtrfsext4 (tidak ada snapshot native)
Media USB/removable lintas OSexFAT atau FAT32ext4 (dukungan Windows buruk)
EFI System PartitionFAT32 (`mkfs.vfat -F 32`)Non-FAT apa pun
NVMe SSD, write churn tinggiF2FS atau XFSFAT32
Volume data Windows dual-bootNTFSext4
Jutaan file kecilext4 dengan `-i 2048`XFS (jumlah inode tetap)

Daftar Periksa Poin Kunci Teknis

Sebelum menjalankan `mkfs` di lingkungan mana pun, kerjakan daftar periksa ini:

  • Konfirmasi perangkat target dengan `lsblk -f` dan `blkid` — jangan pernah mengandalkan ingatan atau asumsi
  • Lepas target dengan `umount /dev/sdXN` dan verifikasi dengan `mount | grep sdX`
  • Cadangkan data apa pun pada perangkat; `mkfs` tidak dapat dibalik
  • Pilih tipe filesystem berdasarkan beban kerja (lihat matriks keputusan di atas), bukan kebiasaan
  • Tetapkan label filesystem dengan `-L` untuk identifikasi yang dapat dibaca manusia dalam log dan `fstab`
  • Kurangi blok yang dicadangkan pada volume data besar (`-m 1` untuk ext4) untuk mengambil kembali ruang yang dapat digunakan
  • Nonaktifkan lazy init (`-E lazy_itable_init=0`) pada server produksi untuk mencegah lonjakan I/O pasca-deployment
  • Gunakan UUID di `/etc/fstab`, bukan nama perangkat, untuk persistensi mount
  • Validasi dengan `mount -a` setelah mengedit `/etc/fstab` untuk menangkap kesalahan sebelum reboot
  • Jalankan `e2fsck -n` atau `xfs_repair -n` setelah pemformatan untuk mengonfirmasi integritas filesystem
  • Buat ulang UUID pada disk apa pun yang dikloning dari image template

FAQ

T: Dapatkah saya menjalankan `mkfs` pada partisi yang sedang terpasang?

J: Secara teknis kernel mungkin mengizinkannya, tetapi melakukannya langsung merusak filesystem dan dapat memicu kernel panic atau kehilangan data. Selalu lepas partisi terlebih dahulu dan konfirmasi dengan `mount | grep <device>` sebelum menjalankan `mkfs`.

T: Apa perbedaan antara `mkfs.ext4` dan `mke2fs`?

J: `mkfs.ext4` adalah symlink atau pembungkus yang memanggil `mke2fs` dengan default `-t ext4`. Keduanya identik secara fungsional. `mke2fs` adalah alat kanonik dan menerima rangkaian lengkap opsi pembuatan ext2/ext3/ext4.

T: Mengapa memformat partisi ext4 besar memakan waktu lebih lama dibandingkan XFS?

J: ext4 menginisialisasi tabel inode untuk setiap block group saat waktu format (kecuali `lazy_itable_init=1` diatur). Pada volume 4 TB, ini melibatkan penulisan gigabyte data tabel inode yang dizeroing. XFS menangguhkan inisialisasi struktur ke runtime, membuat `mkfs.xfs` selesai dalam hitungan detik terlepas dari ukuran volume.

T: Bagaimana cara mengubah label filesystem setelah pemformatan tanpa memformat ulang?

J: Untuk ext4, gunakan `sudo tune2fs -L "NewLabel" /dev/sdb1`. Untuk XFS, gunakan `sudo xfs_admin -L "NewLabel" /dev/sdb1`. Untuk FAT32, gunakan `sudo fatlabel /dev/sdb1 NEWLABEL`. Tidak ada data yang terpengaruh oleh pelabelan ulang.

T: Apakah aman menggunakan `mkfs` pada logical volume LVM?

J: Ya. Logical volume LVM muncul sebagai perangkat blok (misalnya, `/dev/mapper/vg0-lv_data` atau `/dev/vg0/lv_data`) dan diperlakukan identik dengan partisi fisik oleh `mkfs`. Ini adalah alur kerja standar untuk penyimpanan Linux produksi: buat LV dengan `lvcreate`, format dengan `mkfs`, pasang, dan persisten di `/etc/fstab`.

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai