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.
# menampilkan pohon perangkat blok
lsblkNAME 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 partKeluaran 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.
# ruang sistem berkas yang terpasang di /dev
df -h /devFilesystem Size Used Avail Use% Mounted on
tmpfs 64M 0 64M 0% /devBaris 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.
# tiga kolom pertama tabel pemasangan kernel
cut -d ' ' -f 1-3 /proc/mounts | head -n 6c-6ae8a8d9-14127d0f-16c590d2407b-rootfs / overlay
proc /proc proc
tmpfs /dev tmpfs
devpts /dev/pts devpts
mqueue /dev/mqueue mqueue
sysfs /sys sysfsPerkakas 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.
# daftar pemasangan dalam tiga kolom
findmnt -nro TARGET,SOURCE,FSTYPE | head -n 6/ c-6ae8a8d9-14127d0f-16c590d2407b-rootfs overlay
/proc proc proc
/dev tmpfs tmpfs
/dev/pts devpts devpts
/dev/mqueue mqueue mqueue
/sys sysfs sysfsKeluaran 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.
# isi fstab di container latihan
cat /etc/fstab# UNCONFIGURED FSTAB FOR BASE SYSTEMPada 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.
# <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 0Arti setiap kolom dapat dilacak dari baris /home pada contoh di atas.
| Kolom | Isi contoh | Keterangan |
|---|---|---|
| 1 | UUID=7c9d... | Perangkat sumber, lazim ditulis UUID agar tidak berubah meskipun urutan disk berganti |
| 2 | /home | Titik kait tempat sistem berkas ditempel |
| 3 | ext4 | Tipe sistem berkas |
| 4 | defaults | Opsi pemasangan, misalnya baca tulis dan izin suid |
| 5 | 0 | Frekuensi pencadangan oleh dump, umumnya 0 |
| 6 | 2 | Urutan 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.
# tidak-dijalankan
# memasang sistem berkas membutuhkan hak root dan perangkat blok yang nyata
sudo mount /dev/sdb1 /mnt/dataKesalahan umum#
Tiga kesalahan berikut paling sering muncul saat topik ini dipraktikkan.
- Mengira
mountmembuat direktori tujuan secara otomatis. Perintah itu menolak dengan pesanmount point does not exist, sehingga direktori titik kait harus dibuat lebih dahulu denganmkdir. - Menilai pemakaian ruang dari
lsblk. Perintah itu menampilkan kapasitas perangkat, bukan ruang yang terpakai. Pemakaian ruang sistem berkas dibaca dengandf, sedangkan ukuran isi sebuah direktori dihitung dengandu. - Membongkar titik kait yang masih dipakai.
umountmenolak dengan pesantarget is busyapabila 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.
lsblkmenampilkan pohon perangkat blok beserta partisinya, sedangkandf -hmelaporkan pemakaian ruang sistem berkas yang terpasang.- Tabel pemasangan aktif terbaca dari
/proc/mountsataufindmnt, dan/etc/fstabmenentukan pemasangan otomatis saat boot dengan enam kolom per baris.
Referensi#
- lsblk(8) — Ubuntu Manpages — Opsi dan kolom keluaran lsblk.
- mount(8) — man7.org — Konsep pemasangan dan hubungannya dengan fstab.
- fstab(5) — man7.org — Arti enam kolom pada baris fstab.
- FSTAB — Arch Wiki — Contoh entri fstab dan praktik penyuntingannya.