Memasang disk di Linux: lsblk, partisi, mkfs, mount, dan fstab
Memasang disk di Linux berarti menghubungkan sistem berkas sebuah partisi ke sebuah direktori dalam pohon, misalnya /data. Disk baru dicari dengan lsblk, dipartisi dengan fdisk atau parted, diformat dengan mkfs.ext4, dipasang dengan mount /dev/sdb1 /data, dan agar terpasang otomatis setelah reboot, baris dengan UUID-nya ditambahkan ke /etc/fstab lalu diperiksa dengan mount -a.
Di Linux tidak ada huruf drive: semua perangkat penyimpanan disatukan dalam satu pohon direktori yang berawal dari /. Memasang disk (mount) berarti «menggantungkan» sistem berkas sebuah partisi ke sebuah direktori kosong, yang disebut titik pasang. Urutan untuk disk baru selalu sama: temukan perangkatnya (lsblk), partisi (fdisk atau parted), buat sistem berkas (mkfs), pasang (mount), dan kunci di /etc/fstab. Setiap langkah dibahas di bawah, sekaligus cara mencari ke mana ruang disk pergi dengan df dan du.
Cara disk dan partisi bekerja di Linux
Kernel merepresentasikan setiap disk sebagai berkas perangkat di /dev. Namanya bergantung pada jenis koneksinya:
| Nama | Keterangan | Partisi |
|---|---|---|
/dev/sda, /dev/sdb | disk SATA/SAS/USB, banyak disk virtual | /dev/sda1, /dev/sda2 |
/dev/vda | disk virtio pada VM KVM | /dev/vda1 |
/dev/nvme0n1 | SSD NVMe | /dev/nvme0n1p1 |
/dev/mapper/... | volume logis LVM, volume terenkripsi | — |
Disk dibagi menjadi partisi, pada partisi dibuat sistem berkas (ext4, xfs, btrfs), dan barulah sistem berkas itu dipasang ke sebuah direktori. Selama partisi belum terpasang, berkasnya tidak bisa diakses, meskipun disknya sudah terhubung secara fisik.
Melihat disk: lsblk dan blkid
Perintah pertama saat bekerja dengan disk adalah lsblk. Ia menampilkan pohon perangkat, ukuran, dan titik pasangnya:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part /
sdb 8:16 0 100G 0 disk
Terlihat bahwa sdb adalah disk baru 100 GB tanpa partisi dan tanpa titik pasang. Opsi yang berguna:
lsblk -f— jenis sistem berkas, label, dan UUID setiap partisi.lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,MODEL— hanya kolom yang dibutuhkan.sudo blkid— UUID dan jenis sistem berkas untuk semua partisi.sudo fdisk -l— tabel partisi semua disk beserta sektornya.
Jika disk ditambahkan ke mesin virtual saat sedang berjalan dan lsblk belum menampilkannya, minta kernel memindai ulang bus: echo "- - -" | sudo tee /sys/class/scsi_host/host*/scan.
Mempartisi disk: fdisk dan parted
Sebelum mempartisi, pastikan sekali lagi Anda memilih perangkat yang benar: menulis tabel partisi ke disk sistem akan menghapus datanya. Perhatikan ukuran dan tidak adanya titik pasang pada keluaran lsblk.
GPT atau MBR
Untuk disk baru gunakan GPT: ia mendukung disk di atas 2 TB dan hingga 128 partisi. MBR (dos) hanya diperlukan untuk sistem lama dengan boot melalui BIOS, jika dipersyaratkan oleh bootloader.
Partisi dengan fdisk
fdisk modern mendukung GPT maupun MBR. Pekerjaannya dilakukan secara interaktif:
$ sudo fdisk /dev/sdb
Command (m for help): g # membuat tabel GPT kosong
Command (m for help): n # partisi baru
Partition number (1-128, default 1): Enter
First sector: Enter
Last sector, +/-sectors or +/-size{K,M,G,T,P}: Enter # seluruh disk
Command (m for help): w # tulis perubahan dan keluar
Selama Anda belum menekan w, tidak ada yang ditulis ke disk, sehingga q dapat dipakai untuk keluar tanpa perubahan.
Partisi dengan parted dalam satu baris
Dalam skrip, parted lebih praktis karena tidak memerlukan dialog:
$ sudo parted -s /dev/sdb mklabel gpt
$ sudo parted -s /dev/sdb mkpart primary ext4 0% 100%
$ lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdb 8:16 0 100G 0 disk
└─sdb1 8:17 0 100G 0 part
Batas dalam persen memastikan partisi terletak rapi (alignment) pada disk. Jika partisi baru tidak muncul, jalankan sudo partprobe /dev/sdb agar kernel membaca ulang tabel partisi.
Membuat sistem berkas: mkfs
Partisi hanyalah rentang blok. Untuk menyimpan berkas, di atasnya harus dibuat sistem berkas:
$ sudo mkfs.ext4 -L data /dev/sdb1
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 26214144 4k blocks and 6553600 inodes
...
Writing superblocks and filesystem accounting information: done
Opsi -L memberi label agar partisi mudah dikenali nanti. Pilihannya:
| FS | Perintah | Cocok untuk |
|---|---|---|
| ext4 | mkfs.ext4 | pilihan umum yang aman, bisa diperkecil |
| XFS | mkfs.xfs | berkas dan volume besar, standar di RHEL; hanya bisa diperbesar |
| Btrfs | mkfs.btrfs | snapshot, kompresi, subvolume |
| vfat/exFAT | mkfs.vfat, mkfs.exfat | flashdisk untuk bertukar data dengan Windows dan macOS |
mkfs menghapus semua yang ada di partisi. Untuk partisi kosong perintah ini tidak meminta konfirmasi, jadi periksa lagi nama perangkatnya.
Memasang disk di Linux dengan mount
Buat direktori — titik pasang — lalu hubungkan partisi ke sana:
$ sudo mkdir -p /data
$ sudo mount /dev/sdb1 /data
$ df -h /data
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 98G 24K 93G 1% /data
Jenis sistem berkas dikenali mount secara otomatis, tetapi bisa juga ditentukan: mount -t xfs. Jika di /data sudah ada berkas sebelum pemasangan, berkas itu tidak dihapus, hanya tersembunyi di bawah sistem berkas baru dan akan muncul kembali setelah disk dilepas.
Opsi pemasangan
Opsi diberikan dengan -o, dipisahkan koma:
ro/rw— hanya baca atau baca dan tulis.noatime— tidak memperbarui waktu akses setiap kali dibaca, sehingga penulisan tidak perlu.noexec— melarang menjalankan program dari partisi ini (berguna untuk/tmpdan direktori unduhan).nosuid,nodev— mengabaikan bit SUID dan berkas perangkat.remount— mengubah opsi tanpa melepas disk:sudo mount -o remount,ro /data.
Untuk melihat apa saja yang terpasang beserta opsinya, gunakan findmnt: findmnt /data atau findmnt -t ext4.
Hak akses pada disk yang terpasang
Root direktori ext4 yang baru dimiliki oleh root, sehingga pengguna biasa tidak bisa menulis di sana. Setelah dipasang, berikan kepemilikan direktori kepada pengguna yang sesuai: sudo chown alice:alice /data. Untuk vfat dan exFAT tidak ada hak akses Unix; pemilik ditentukan lewat opsi uid=, gid=, dan umask= saat pemasangan.
Melepas disk: umount dan pesan target is busy
Pelepasan dilakukan dengan umount (tanpa huruf n) menggunakan perangkat atau direktorinya:
$ sudo umount /data
umount: /data: target is busy.
Pesan ini berarti ada proses yang masih memegang berkas di sistem berkas tersebut, atau menjadikannya direktori kerjanya — sering kali terminal Anda sendiri setelah cd /data. Untuk mencari pelakunya:
$ sudo lsof +f -- /data
$ sudo fuser -vm /data
Hentikan prosesnya atau keluar dari direktori, lalu ulangi. Pilihan terakhir adalah umount -l (lazy): sistem berkas segera dilepas dari pohon, dan ruangnya dibebaskan setelah proses menutup berkasnya.
Pemasangan otomatis saat boot: /etc/fstab
Perintah mount hanya berlaku sampai reboot. Agar disk terpasang otomatis, tambahkan baris di /etc/fstab. Gunakan UUID partisi, bukan nama /dev/sdb1: nama perangkat bisa bertukar saat disk ditambahkan, sedangkan UUID tetap.
$ sudo blkid /dev/sdb1
/dev/sdb1: LABEL="data" UUID="3f1c9a2e-7b5d-4c1e-9a8f-2d6e4b0c1a77" TYPE="ext4" PARTUUID="..."
Format baris terdiri dari enam kolom:
# <perangkat> <titik> <tipe> <opsi> <dump> <fsck>
UUID=3f1c9a2e-7b5d-4c1e-9a8f-2d6e4b0c1a77 /data ext4 defaults,noatime 0 2
| Kolom | Arti |
|---|---|
| perangkat | UUID=..., LABEL=..., atau path |
| titik | direktori tujuan pemasangan (harus sudah ada) |
| tipe | ext4, xfs, swap, nfs, dan sebagainya |
| opsi | defaults ditambah yang diperlukan, misalnya noatime, nofail |
| dump | hampir selalu 0 |
| fsck | urutan pemeriksaan: 1 untuk root, 2 untuk lainnya, 0 — tidak diperiksa |
Selalu periksa fstab sebelum reboot
Kesalahan di /etc/fstab dapat membuat server masuk mode darurat saat boot, dan di mesin cloud tanpa konsol hal itu sangat merepotkan. Segera setelah mengedit, jalankan:
$ sudo findmnt --verify
$ sudo systemctl daemon-reload
$ sudo mount -a
$ findmnt /data
mount -a memasang semua yang ada di fstab dan belum terpasang, lalu langsung menampilkan error jika ada. Untuk disk yang dapat dilepas atau disk jaringan, tambahkan opsi nofail: jika perangkat tidak ada, boot tetap dilanjutkan tanpanya. Di systemd setiap baris fstab berubah menjadi unit .mount — misalnya data.mount, yang statusnya bisa dilihat dengan systemctl status data.mount.
Mengecek ruang kosong: df
df menampilkan keterisian sistem berkas yang terpasang:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 39G 37G 1.1G 98% /
/dev/sda1 974M 180M 727M 20% /boot
/dev/sdb1 98G 24K 93G 1% /data
-h— ukuran dalam satuan yang mudah dibaca.-T— menambahkan kolom jenis sistem berkas.-i— menampilkan inode: disk bisa «penuh» padahal gigabyte masih tersedia, jika terlalu banyak berkas kecil dibuat.-x tmpfs -x devtmpfs— menyembunyikan sistem berkas virtual.
Mengapa Size tidak sama dengan Used + Avail: ext4 menyisihkan sekitar 5% ruang untuk root, agar sistem tetap bisa bekerja meskipun disk penuh. Pada partisi data, cadangan ini bisa dikurangi: sudo tune2fs -m 1 /dev/sdb1.
Ke mana ruang pergi: du
df memberi tahu bahwa disk penuh, tetapi tidak memberi tahu apa isinya. Untuk itu ada du, yang menjumlahkan ukuran berkas per direktori:
$ sudo du -sh /var/log
4.2G /var/log
$ sudo du -xh --max-depth=1 / 2>/dev/null | sort -rh | head
37G /
21G /var
9.8G /home
3.1G /usr
-s— hanya total untuk direktori,-a— setiap berkas secara terpisah.--max-depth=1(atau-d 1) — satu tingkat subdirektori; turun lebih dalam ke direktori terbesar.-x— tidak berpindah ke sistem berkas lain, agar/data,/proc, dan disk jaringan tidak ikut terhitung.sort -rh— mengurutkan berdasarkan ukuran yang mudah dibaca, terbesar di atas.
Untuk mencari berkas besar secara individual, find lebih cocok: sudo find / -xdev -type f -size +1G -exec ls -lh {} +.
df menunjukkan disk penuh, tetapi du tidak
Situasi klasik: log yang sangat besar sudah dihapus, tetapi ruang tidak juga kembali. Berkas memang sudah hilang dari direktori, tetapi proses (misalnya web server) masih membukanya, sehingga blok-bloknya belum dibebaskan. Cari berkas seperti ini:
$ sudo lsof +L1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NLINK NODE NAME
nginx 812 www 5w REG 8,2 8589934592 0 13054 /var/log/nginx/access.log (deleted)
Restart proses itu atau minta ia membuka ulang log — ruangnya akan kembali. Untuk ke depannya, kosongkan log yang sedang aktif tanpa menghapusnya: sudo truncate -s 0 /var/log/nginx/access.log. Penyebab lain selisih ini adalah berkas yang tersembunyi di bawah titik pasang: berkas itu memakan ruang pada partisi root, tetapi du tidak melihatnya selama sistem berkas lain terpasang di atasnya.
Kesalahan umum dan cara mengatasinya
| Pesan | Penyebab | Solusi |
|---|---|---|
mount point /data does not exist | direktori belum ada | sudo mkdir -p /data |
wrong fs type, bad option, bad superblock | partisi tanpa sistem berkas, tipe salah, atau driver belum terpasang | periksa lsblk -f; untuk exFAT/NTFS pasang paket exfatprogs, ntfs-3g |
only root can do that | mount tanpa sudo | jalankan dengan sudo atau tambahkan opsi user di fstab |
target is busy | direktori dipakai proses | lsof/fuser, keluar dari direktori |
| boot masuk emergency mode | kesalahan di fstab atau disk tidak ada | masuk sebagai root, perbaiki fstab, tambahkan nofail |
Langkah demi langkah: disk baru untuk data
lsblk— cari disk baru, misalnya/dev/sdb.sudo parted -s /dev/sdb mklabel gpt mkpart primary ext4 0% 100%— buat partisi.sudo mkfs.ext4 -L data /dev/sdb1— buat sistem berkas.sudo mkdir -p /data— buat titik pasang.sudo blkid /dev/sdb1— ambil UUID dan tambahkan baris di/etc/fstab.sudo mount -a && df -h /data— pasang dan periksa.sudo chown pengguna: /data— berikan hak akses.
Jika kapasitas perlu diperbesar tanpa menghentikan layanan, atau beberapa disk perlu digabung, gunakan LVM sebagai pengganti partisi biasa: disk menjadi physical volume, dari situ dibuat logical volume yang bisa diperbesar dengan lvextend -r.
Kesimpulan
Memasang disk di Linux adalah rangkaian lsblk → partisi → mkfs → mount → /etc/fstab. Gunakan UUID untuk partisi, periksa fstab dengan mount -a sebelum reboot, dan pakai nofail untuk disk yang tidak wajib ada. Saat ruang habis, df -h menunjukkan partisi mana yang penuh, sedangkan du -xh --max-depth=1 | sort -rh dan lsof +L1 menunjukkan apa yang memakannya. Disk, partisi, SWAP, LVM, dan RAID dibahas secara praktis dalam kursus Linux.
Pertanyaan umum
Bagaimana cara memasang flashdisk di Linux?
Cari perangkatnya dengan lsblk (biasanya /dev/sdb1), buat direktori, lalu jalankan sudo mount /dev/sdb1 /mnt/usb. Di lingkungan grafis, flashdisk biasanya terpasang otomatis di /media/nama_pengguna atau /run/media.
Bagaimana cara memasang image ISO?
Dengan sudo mount -o loop,ro image.iso /mnt/iso: opsi loop menghubungkan berkas sebagai perangkat blok. Untuk melepasnya gunakan umount biasa.
Bagaimana cara menghubungkan folder jaringan lewat fstab?
Untuk NFS barisnya berbentuk server:/export /mnt/nfs nfs defaults,_netdev,nofail 0 0, sedangkan untuk SMB //server/share /mnt/smb cifs credentials=/root/.smbcred,_netdev,nofail 0 0. Opsi _netdev menunggu jaringan aktif.
Apa perbedaan UUID dan PARTUUID?
UUID milik sistem berkas dan berubah setiap kali mkfs dijalankan ulang, sedangkan PARTUUID milik partisi di tabel GPT dan tetap saat diformat ulang. Di fstab biasanya digunakan UUID.
Bagaimana cara memeriksa kesalahan pada sistem berkas?
Lepas partisinya, lalu jalankan sudo fsck -f /dev/sdb1 untuk ext4 atau sudo xfs_repair /dev/sdb1 untuk XFS. Memeriksa sistem berkas yang sedang terpasang dan bisa ditulis dapat merusak data.
Topik ini dibahas mendalam dengan praktik di kursus “Linux: с нуля до уверенного администрирования”.
Ke kursus