Panduan

Memasang disk di Linux: lsblk, partisi, mkfs, mount, dan fstab

Diperbarui: · Skillaria.Top

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:

NamaKeteranganPartisi
/dev/sda, /dev/sdbdisk SATA/SAS/USB, banyak disk virtual/dev/sda1, /dev/sda2
/dev/vdadisk virtio pada VM KVM/dev/vda1
/dev/nvme0n1SSD 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:

FSPerintahCocok untuk
ext4mkfs.ext4pilihan umum yang aman, bisa diperkecil
XFSmkfs.xfsberkas dan volume besar, standar di RHEL; hanya bisa diperbesar
Btrfsmkfs.btrfssnapshot, kompresi, subvolume
vfat/exFATmkfs.vfat, mkfs.exfatflashdisk 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 /tmp dan 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
KolomArti
perangkatUUID=..., LABEL=..., atau path
titikdirektori tujuan pemasangan (harus sudah ada)
tipeext4, xfs, swap, nfs, dan sebagainya
opsidefaults ditambah yang diperlukan, misalnya noatime, nofail
dumphampir selalu 0
fsckurutan 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

PesanPenyebabSolusi
mount point /data does not existdirektori belum adasudo mkdir -p /data
wrong fs type, bad option, bad superblockpartisi tanpa sistem berkas, tipe salah, atau driver belum terpasangperiksa lsblk -f; untuk exFAT/NTFS pasang paket exfatprogs, ntfs-3g
only root can do thatmount tanpa sudojalankan dengan sudo atau tambahkan opsi user di fstab
target is busydirektori dipakai proseslsof/fuser, keluar dari direktori
boot masuk emergency modekesalahan di fstab atau disk tidak adamasuk sebagai root, perbaiki fstab, tambahkan nofail

Langkah demi langkah: disk baru untuk data

  1. lsblk — cari disk baru, misalnya /dev/sdb.
  2. sudo parted -s /dev/sdb mklabel gpt mkpart primary ext4 0% 100% — buat partisi.
  3. sudo mkfs.ext4 -L data /dev/sdb1 — buat sistem berkas.
  4. sudo mkdir -p /data — buat titik pasang.
  5. sudo blkid /dev/sdb1 — ambil UUID dan tambahkan baris di /etc/fstab.
  6. sudo mount -a && df -h /data — pasang dan periksa.
  7. 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.

Pelajari topik ini lewat video

Topik ini dibahas mendalam dengan praktik di kursus “Linux: с нуля до уверенного администрирования”.

Ke kursus