Lewati ke konten utama
๐Ÿš€ nusa.id cloud server linux indonesialihat paket

Cara Membuat dan Mount Filesystem XFS di Ubuntu 24.04

ยท 9 menit membaca

XFS adalah filesystem 64-bit di Linux yang menangani file besar dan beban I/O paralel, sehingga banyak dipakai untuk partisi data, database, dan server storage. Saat menambahkan disk data, Anda perlu memformat block device, memasangnya ke direktori mount, dan memastikan filesystem terpasang lagi setelah reboot. Panduan ini membuat filesystem XFS, memverifikasi geometrinya, mengaktifkan mount otomatis lewat /etc/fstab, dan memperbesar filesystem selagi mounted.

Langkah di bawah dijalankan pada server Ubuntu 24.04 dengan akses root menggunakan Nusa Cloud VPS sebagai lingkungan pengujian, namun langkah-langkahnya berlaku untuk server Linux berbasis Ubuntu pada umumnya.

Requirementsโ€‹

  • Ubuntu 24.04 LTS.
  • Akses root atau akun dengan hak sudo.
  • Package xfsprogs yang menyediakan mkfs.xfs, xfs_info, dan xfs_growfs.
  • Ruang kosong minimal 512 MiB untuk berkas image, atau satu block device kosong.
  • Mount point /mnt/xfs-data.
Peringatan

Memformat block device menghapus seluruh data di dalamnya. Pastikan device target sudah benar dengan lsblk dan sudah ada backup sebelum menjalankan mkfs.xfs pada disk nyata.

Environmentโ€‹

  • Device uji: /dev/loop0 yang menunjuk berkas /opt/xfs-disk.img berukuran 512 MiB, lalu diperbesar menjadi 1 GiB.
  • Mount point: /mnt/xfs-data.
  • Label filesystem: xfsdata.

Konfirmasi kernel dan dukungan XFS menggunakan command:

uname -r
sudo modprobe xfs
grep xfs /proc/filesystems

Perintah modprobe xfs memuat modul kernel XFS. grep xfs /proc/filesystems kemudian menampilkan baris berisi xfs, yang menandakan filesystem siap dipakai. Output, dengan versi kernel mengikuti image Anda:

6.8.0-134-generic
xfs

Instalasi xfsprogs dan Pembuatan Filesystem XFS di Ubuntu 24.04โ€‹

Update indeks package, lalu pasang xfsprogs:

sudo apt update
sudo apt install -y xfsprogs

Bila package sudah ada, apt melaporkan xfsprogs is already the newest version dan tidak mengubah sistem. Pastikan mkfs.xfs dapat dipanggil:

mkfs.xfs -V

Output:

mkfs.xfs version 6.6.0

Membuat Berkas Image dan Menempelkan Loop Deviceโ€‹

Buat berkas image 512 MiB, lalu tempelkan ke loop device agar kernel memperlakukannya sebagai block device:

sudo fallocate -l 512M /opt/xfs-disk.img
stat -c '%n %s bytes' /opt/xfs-disk.img
sudo losetup --find --show /opt/xfs-disk.img

Output:

/opt/xfs-disk.img 536870912 bytes
/dev/loop0

losetup --find --show memilih loop device bebas dan mencetak namanya. Nomor loop dapat berbeda di sistem Anda, misalnya /dev/loop1.

Memformat Device dengan XFSโ€‹

Berbahaya

mkfs.xfs menimpa filesystem yang ada pada device target. Pada contoh ini targetnya /dev/loop0 yang menunjuk berkas baru /opt/xfs-disk.img, jadi tidak ada data lama yang hilang. Pada disk nyata, periksa device dengan lsblk sebelum menjalankan perintah.

sudo mkfs.xfs -L xfsdata /dev/loop0

Opsi -L xfsdata memberi label filesystem. Output:

meta-data=/dev/loop0 isize=512 agcount=4, agsize=32768 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=1
= reflink=1 bigtime=1 inobtcount=1 nrext64=0
data = bsize=4096 blocks=131072, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Discarding blocks...Done.

Baris Discarding blocks...Done. muncul pada device yang mendukung TRIM. Nilai blocks=131072 setara 512 MiB dengan block size 4096 byte, sedangkan blocks=16384 adalah ukuran log internal.

Memasang Filesystemโ€‹

Buat mount point, lalu pasang filesystem:

sudo mkdir -p /mnt/xfs-data
sudo mount /dev/loop0 /mnt/xfs-data
findmnt --noheadings --output TARGET,SOURCE,FSTYPE /mnt/xfs-data

Output:

/mnt/xfs-data /dev/loop0 xfs

Verifikasi Instalasi XFS di Ubuntu 24.04โ€‹

Baca geometri filesystem yang sedang mounted:

xfs_info /mnt/xfs-data

Output:

meta-data=/dev/loop0 isize=512 agcount=4, agsize=32768 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=1
= reflink=1 bigtime=1 inobtcount=1 nrext64=0
data = bsize=4096 blocks=131072, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

Fokus pada beberapa nilai berikut:

  • crc=1 menandakan metadata memakai checksum CRC32c, yang aktif secara default pada filesystem XFS baru.
  • reflink=1 menandakan fitur copy-on-write aktif, juga default pada filesystem baru.
  • rmapbt=1 menandakan reverse mapping btree aktif untuk melacak pemilik setiap block.
  • bigtime=1 memperluas rentang timestamp inode hingga tahun 2486.
  • bsize=4096 adalah block size data, sedangkan blocks adalah jumlah block yang tersedia.
  • realtime =none berarti filesystem tidak memakai realtime section, sesuai default mkfs.xfs.

Cek tipe dan label yang terbaca kernel:

sudo blkid -s LABEL -s TYPE /dev/loop0

Output:

/dev/loop0: LABEL="xfsdata" TYPE="xfs"

Konfigurasi Dasarโ€‹

Memperbesar Filesystem XFS secara Onlineโ€‹

XFS dapat bertambah besar saat filesystem mounted, tetapi tidak dapat diperkecil. Untuk menambah kapasitas, perbesar berkas image, perbarui kapasitas loop device, lalu jalankan xfs_growfs:

sudo truncate -s 1G /opt/xfs-disk.img
sudo losetup --set-capacity /dev/loop0
lsblk /dev/loop0

Output lsblk:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 1G 0 loop /mnt/xfs-data

Jalankan pertumbuhan filesystem:

sudo xfs_growfs /mnt/xfs-data

Baris terakhir output menandakan jumlah block data yang bertambah, misalnya:

data blocks changed from 131072 to 262144

xfs_growfs menerima mount point atau block device dari filesystem yang sedang mounted. Jika filesystem tidak mounted, perintah berhenti dengan pesan is not a mounted XFS filesystem.

Mount Otomatis melalui /etc/fstabโ€‹

Lepas filesystem dahulu agar baris fstab yang baru benar-benar diuji:

sudo umount /mnt/xfs-data

Tambahkan entri fstab untuk berkas image:

sudo tee -a /etc/fstab >/dev/null <<'EOF'
/opt/xfs-disk.img /mnt/xfs-data xfs loop,defaults,nofail 0 0
EOF

Jika Anda lebih suka mengedit berkas secara manual, gunakan text editor pilihan Anda, misalnya sudo nano /etc/fstab atau sudo vim /etc/fstab, lalu tambahkan baris berikut:

/opt/xfs-disk.img /mnt/xfs-data xfs loop,defaults,nofail 0 0

Muat ulang konfigurasi dan pasang semua filesystem pada fstab:

sudo systemctl daemon-reload
sudo mount -a
findmnt --noheadings --output TARGET,SOURCE,FSTYPE /mnt/xfs-data

Output:

/mnt/xfs-data /dev/loop0 xfs

Arti opsi pada kolom keempat:

  • loop: device berupa berkas biasa, sehingga kernel perlu menyiapkan loop device.
  • defaults: setara rw,suid,dev,exec,auto,nouser,async.
  • nofail: boot tetap lanjut bila berkas image hilang, sehingga server tidak berhenti di emergency mode.

Untuk block device nyata, seperti /dev/vdb, ganti kolom pertama dengan UUID=<uuid> dari blkid dan hapus opsi loop.

Pengujianโ€‹

Uji tulis dan baca, lalu pastikan data tetap ada setelah filesystem dilepas dan dipasang ulang. Tulis berkas uji:

sudo sh -c 'printf "XFS berfungsi\n" > /mnt/xfs-data/uji.txt'
sudo sha256sum /mnt/xfs-data/uji.txt
cat /mnt/xfs-data/uji.txt

Output:

192d6fd315c010a33dc0d14a12af269b539a6d52a76c2fe17127be61149d73de /mnt/xfs-data/uji.txt
XFS berfungsi

Simpan nilai hash, lepas filesystem, pasang kembali, lalu bandingkan hash:

sudo umount /mnt/xfs-data
sudo mount /mnt/xfs-data
sudo sha256sum /mnt/xfs-data/uji.txt
cat /mnt/xfs-data/uji.txt

Nilai hash harus sama persis dengan hasil sebelumnya, dan cat kembali menampilkan XFS berfungsi. Ini membuktikan data bertahan setelah remount, bukan hanya bahwa service atau mount point aktif.

Pastikan kapasitas sudah bertambah setelah langkah xfs_growfs:

df -h /mnt/xfs-data

Output:

Filesystem Size Used Avail Use% Mounted on
/dev/loop0 960M 51M 910M 6% /mnt/xfs-data

Kolom Size bertambah dari kapasitas awal 512 MiB menjadi sekitar 960 MiB, dan kolom Mounted on menampilkan /mnt/xfs-data. Nilai Used dan Avail dapat berbeda sesuai isi filesystem.

Troubleshootingโ€‹

Mount gagal dengan unknown filesystem type 'xfs'โ€‹

Gejala:

mount: /mnt/xfs-data: unknown filesystem type 'xfs'.

Penyebab: package xfsprogs belum terpasang atau modul xfs belum dimuat kernel. Perbaikan:

sudo apt install -y xfsprogs
sudo modprobe xfs
grep xfs /proc/filesystems

Baris xfs pada output terakhir menandakan modul siap dipakai.

Mount gagal dengan wrong fs type, bad option, bad superblockโ€‹

Gejala:

mount: /mnt/xfs-data: wrong fs type, bad option, bad superblock on /dev/loop0.

Penyebab: device yang dipilih bukan filesystem XFS, atau opsi loop hilang pada entri fstab yang memakai berkas image. Periksa device dan validasi fstab:

lsblk -f
sudo findmnt --verify

Pastikan kolom device menunjuk berkas image yang benar dan kolom opsi memuat loop. findmnt --verify melaporkan 0 errors; satu warning non-bind mount source ... is a directory or regular file normal untuk mount dari berkas image.

xfs_growfs menolak karena bukan filesystem XFS yang mountedโ€‹

Gejala:

xfs_growfs: /mnt/xfs-data is not a mounted XFS filesystem

Penyebab: filesystem belum dipasang atau path yang diberikan salah. Periksa mount point aktif:

findmnt /mnt/xfs-data

Jika mount point belum muncul, pasang filesystem terlebih dahulu dengan sudo mount /mnt/xfs-data, baru ulangi xfs_growfs pada mount point tersebut.

xfs_repair berhenti dengan status 2โ€‹

Gejala: xfs_repair keluar dengan exit code 2 dan pesan tentang dirty log. Penyebab: server mati tidak bersih sehingga log belum di-replay. Perbaikan: pasang filesystem lalu lepas kembali dengan bersih agar kernel melakukan replay log. Jalankan xfs_repair hanya saat filesystem tidak mounted.

Berbahaya

xfs_repair -L menghapus log dan membuang perubahan metadata yang belum ditulis ke data section, sehingga file terbaru dapat hilang. Gunakan hanya sebagai upaya terakhir setelah mount normal dan replay log gagal.

Filesystem tidak terpasang setelah rebootโ€‹

Penyebab: baris fstab salah ketik, berubah, atau hilang. Perbaikan: validasi seluruh entri fstab, lalu pasang ulang tanpa reboot.

sudo findmnt --verify
sudo mount -a
findmnt /mnt/xfs-data

Verifikasiโ€‹

Jalankan rangkaian perintah berikut sebagai pemeriksaan akhir:

findmnt --noheadings --output TARGET,SOURCE,FSTYPE /mnt/xfs-data
sudo blkid -s LABEL -s TYPE /dev/loop0
xfs_info /mnt/xfs-data
df -h /mnt/xfs-data
sudo sha256sum /mnt/xfs-data/uji.txt