Mounting

Konsep mount, membaca lsblk, dan kesadaran fstab.

Daftar isi

Topik ini membahas cara Linux menyambungkan penyimpanan ke dalam pohon direktori melalui proses yang disebut mounting, yaitu pemasangan sistem berkas ke satu titik pada pohon direktori. Pembahasan mencakup pembacaan daftar perangkat dengan lsblk, pengukuran ruang dengan df, pemeriksaan daftar pemasangan aktif, serta peran berkas /etc/fstab sebagai konfigurasi pemasangan saat boot. Setelah topik ini dipelajari, perbedaan antara perangkat blok, partisi, dan sistem berkas yang sedang terpasang dapat dibedakan dengan jelas.

Konsep mounting#

Mounting adalah proses menempelkan sebuah sistem berkas ke satu direktori tertentu pada pohon direktori, sehingga isinya dapat diakses melalui jalur direktori tersebut. Direktori tempat sistem berkas ditempel disebut titik kait (mount point). Linux tidak menampilkan perangkat baru sebagai huruf kandar terpisah sebagaimana sistem operasi lain. Seluruh berkas, baik milik disk utama maupun hasil pemasangan tambahan, berada di bawah satu akar yang sama, yaitu /.

Sebagai gambaran, sebuah partisi data yang dipasang ke /mnt/data membuat seluruh isinya dapat dibaca melalui jalur /mnt/data beserta subdirektorinya. Tanpa pemasangan, partisi yang sama hanyalah perangkat blok bernama /dev/sdb1 yang isinya tidak bisa dibaca secara normal. Proses pemasangan dilakukan oleh perintah mount, sedangkan pelepasannya oleh perintah umount. Kedua perintah itu membutuhkan hak administratif karena mengubah tampilan sistem berkas yang digunakan seluruh sistem. Konsep yang sama berlaku untuk semua jenis penyimpanan, mulai dari disk lokal, media lepas, sampai sistem berkas jaringan.

Membaca peta perangkat dengan lsblk#

lsblk menampilkan daftar perangkat blok (block device), yaitu perangkat penyimpanan yang dibaca dan ditulis per blok data, seperti disk, partisi, dan volume logis. Keluarannya berbentuk pohon sehingga hubungan antara disk dan partisinya terlihat langsung. Kolom MAJ:MIN berisi nomor mayor dan minor yang dipakai kernel untuk mengenali perangkat, RM menandai perangkat yang dapat dilepas (removable), RO menandai perangkat baca saja (read only), sedangkan TYPE membedakan disk dari part.

bash
# menampilkan pohon perangkat blok
lsblk
text Keluaran
NAME      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
zram0     253:0    0    0B  0 disk
vda       254:0    0   10G  0 disk
pmem0     259:0    0  384M  0 disk
└─pmem0p1 259:1    0  383M  0 part

Keluaran di atas diambil dari container latihan, sehingga bentuknya lebih pendek daripada mesin biasa. Perangkat vda adalah disk virtual berukuran 10G yang menjadi akar container ini. pmem0 berukuran 384M dan memiliki satu partisi bernama pmem0p1, yang ditandai lekukan └─ pada kolom NAME. Perangkat zram0 adalah perangkat RAM terkompresi yang di sini dilaporkan berukuran 0B. Kolom MOUNTPOINTS kosong pada semua baris karena container berbagi kernel dengan host, sehingga tampilan perangkatnya tidak menyertakan informasi titik kait. Pada mesin Ubuntu yang dipasang sendiri, kolom tersebut biasanya terisi, misalnya / pada disk utama.

Mengukur ruang dengan df#

df melaporkan pemakaian ruang pada sistem berkas yang sedang terpasang. Opsi -h (human readable) membuat ukuran ditampilkan dalam satuan G dan M, bukan jumlah blok mentah. Argumennya adalah titik kait yang ingin diperiksa, dan df tanpa argumen menampilkan seluruh pemasangan.

bash
# ruang sistem berkas yang terpasang di /dev
df -h /dev
text Keluaran
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            64M     0   64M   0% /dev

Baris ini menunjukkan tmpfs, yaitu sistem berkas yang disimpan di memori, dengan kapasitas 64M dan pemakaian nol karena /dev hanya berisi node perangkat. Dengan argumen /, perintah yang sama melaporkan disk utama container, dan angka Used-nya berubah setiap saat seiring aktivitas sistem. Pada mesin milik sendiri, df -h / menampilkan kapasitas disk utama beserta persentase pemakaiannya, dan kolom Filesystem memperlihatkan perangkat yang berada di balik sistem berkas tersebut. Nilai Use% di atas 90 persen adalah sinyal untuk segera membereskan ruang, karena sistem berkas yang penuh membuat banyak program berhenti menulis.

Membaca daftar pemasangan aktif#

Kernel menyimpan tabel semua pemasangan aktif dalam berkas virtual /proc/mounts. Berkas itu selalu dapat dibaca tanpa hak khusus dan terlihat panjang karena setiap pemasangan internal sistem, seperti proc dan sysfs, ikut terdaftar. Setiap barisnya berisi kolom yang dipisah spasi dengan urutan sumber, titik kait, tipe sistem berkas, dan seterusnya, sehingga perintah cut cukup untuk meringkas tiga kolom pertama. Baris pertamanya memperlihatkan akar container, yaitu sistem berkas tipe overlay dengan nama internal lingkungan container.

bash
# tiga kolom pertama tabel pemasangan kernel
cut -d ' ' -f 1-3 /proc/mounts | head -n 6
text Keluaran
c-6ae8a8d9-14127d0f-16c590d2407b-rootfs / overlay
proc /proc proc
tmpfs /dev tmpfs
devpts /dev/pts devpts
mqueue /dev/mqueue mqueue
sysfs /sys sysfs

Perkakas yang lebih nyaman adalah findmnt, yang membaca sumber yang sama lalu menampilkannya dalam format yang rapi. Opsi -n menghilangkan baris judul, -r mencetak keluaran mentah, dan -o memilih kolom yang ditampilkan.

bash
# daftar pemasangan dalam tiga kolom
findmnt -nro TARGET,SOURCE,FSTYPE | head -n 6
text Keluaran
/ c-6ae8a8d9-14127d0f-16c590d2407b-rootfs overlay
/proc proc proc
/dev tmpfs tmpfs
/dev/pts devpts devpts
/dev/mqueue mqueue mqueue
/sys sysfs sysfs

Keluaran semacam ini berguna ketika sebuah jalur perlu dilacak, misalnya untuk mengetahui sistem berkas apa yang menaungi /var/log. Perintah findmnt -T /var/log menjawabnya langsung dengan menampilkan baris pemasangan yang mencakup jalur tersebut.

Kesadaran fstab#

Berkas /etc/fstab (file system table) mendata sistem berkas yang dipasang otomatis saat boot. Setiap barisnya berisi enam kolom yang dipisah spasi atau tab. Pada container latihan ini, /etc/fstab nyaris kosong dan hanya memuat satu komentar, karena citra dasar container memang belum dikonfigurasi.

bash
# isi fstab di container latihan
cat /etc/fstab
text Keluaran
# UNCONFIGURED FSTAB FOR BASE SYSTEM

Pada sistem yang terpasang utuh, isi fstab menyerupai contoh berikut. Berkas fstab.contoh pada direktori topik ini memuat baris yang sama. Entri pada berkas tersebut menunjuk partisi lewat UUID, yaitu pengenal unik yang dibaca dari sistem berkas partisi itu, sehingga baris fstab tetap sah meskipun urutan perangkat berubah.

text fstab.contoh
# <sistem berkas>                          <titik kait>  <tipe>  <opsi>             <dump>  <pass>
UUID=b3f1c2a4-5d6e-4f89-8a0b-1c2d3e4f5a6b  /             ext4    errors=remount-ro  0       1
UUID=7c9d1e2f-3a4b-5c6d-7e8f-9a0b1c2d3e4f  /home         ext4    defaults           0       2
UUID=1A2B-3C4D                             /boot/efi     vfat    umask=0077         0       1
/swapfile                                  none          swap    sw                 0       0

Arti setiap kolom dapat dilacak dari baris /home pada contoh di atas.

KolomIsi contohKeterangan
1UUID=7c9d...Perangkat sumber, lazim ditulis UUID agar tidak berubah meskipun urutan disk berganti
2/homeTitik kait tempat sistem berkas ditempel
3ext4Tipe sistem berkas
4defaultsOpsi pemasangan, misalnya baca tulis dan izin suid
50Frekuensi pencadangan oleh dump, umumnya 0
62Urutan pemeriksaan konsistensi oleh fsck saat boot, 1 untuk akar dan 2 untuk sisanya

Baris terakhir contoh memperlihatkan kasus khusus, yaitu /swapfile yang menyatakan ruang swap, atau area tukar di disk. Titik kaitnya none karena ruang swap bukan sistem berkas dan tidak ditempel ke mana pun.

Pemasangan manual untuk sekadar membaca satu disk tambahan tidak perlu mengubah fstab. Perintah berikut memasang sebuah partisi ke titik kait yang sudah dibuat, tetapi tidak dapat dijalankan di container ini karena membutuhkan hak root.

bash
# tidak-dijalankan
# memasang sistem berkas membutuhkan hak root dan perangkat blok yang nyata
sudo mount /dev/sdb1 /mnt/data

Kesalahan umum#

Tiga kesalahan berikut paling sering muncul saat topik ini dipraktikkan.

  • Mengira mount membuat direktori tujuan secara otomatis. Perintah itu menolak dengan pesan mount point does not exist, sehingga direktori titik kait harus dibuat lebih dahulu dengan mkdir.
  • Menilai pemakaian ruang dari lsblk. Perintah itu menampilkan kapasitas perangkat, bukan ruang yang terpakai. Pemakaian ruang sistem berkas dibaca dengan df, sedangkan ukuran isi sebuah direktori dihitung dengan du.
  • Membongkar titik kait yang masih dipakai. umount menolak dengan pesan target is busy apabila ada proses yang masih membuka berkas di dalamnya, termasuk shell yang sedang berada di sana. Pindahkan proses tersebut keluar dari titik kait lebih dahulu.

Ringkasan#

  • Mounting menempelkan sistem berkas ke satu titik kait, sehingga isi perangkat blok dapat dibaca melalui jalur direktori biasa.
  • lsblk menampilkan pohon perangkat blok beserta partisinya, sedangkan df -h melaporkan pemakaian ruang sistem berkas yang terpasang.
  • Tabel pemasangan aktif terbaca dari /proc/mounts atau findmnt, dan /etc/fstab menentukan pemasangan otomatis saat boot dengan enam kolom per baris.

Referensi#