Cara Membuat dan Mount Filesystem XFS di Ubuntu 24.04
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
xfsprogsyang menyediakanmkfs.xfs,xfs_info, danxfs_growfs. - Ruang kosong minimal 512 MiB untuk berkas image, atau satu block device kosong.
- Mount point
/mnt/xfs-data.
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/loop0yang menunjuk berkas/opt/xfs-disk.imgberukuran 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โ
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=1menandakan metadata memakai checksum CRC32c, yang aktif secara default pada filesystem XFS baru.reflink=1menandakan fitur copy-on-write aktif, juga default pada filesystem baru.rmapbt=1menandakan reverse mapping btree aktif untuk melacak pemilik setiap block.bigtime=1memperluas rentang timestamp inode hingga tahun 2486.bsize=4096adalah block size data, sedangkanblocksadalah jumlah block yang tersedia.realtime =noneberarti filesystem tidak memakai realtime section, sesuai defaultmkfs.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: setararw,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.
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
