Sebuah partisi dapat berisi filesystem ext4, tetapi proses yang mengakses / justru melihat filesystem overlay. Di sisi lain, /proc/filesystems mungkin mencantumkan tmpfs dan nfs, meskipun keduanya tidak membutuhkan partisi lokal. Hasil ini tidak saling bertentangan. Setiap perintah sedang melihat lapisan yang berbeda dalam storage stack Linux.
Perbedaan tersebut perlu dipahami saat mengidentifikasi volume, menelusuri mount yang tidak sesuai dugaan, atau memastikan filesystem yang menangani path milik aplikasi. Signature filesystem pada perangkat tidak otomatis menunjukkan filesystem yang ter-mount dalam namespace sebuah proses.
Perangkat, mount, dan driver filesystem menjawab pertanyaan berbeda
Untuk volume lokal biasa, hubungannya kurang lebih seperti ini:
block device (/dev/sdb1)
|
| filesystem metadata: ext4
v
kernel filesystem driver
|
| mounted at /srv/data
v
pathnames beneath /srv/dataDiagram ini hanya menggambarkan mount biasa yang menggunakan block device. Linux juga mendukung virtual filesystem, network filesystem, stacked filesystem, serta filesystem yang memakai lebih dari satu perangkat.
Dari sini muncul tiga pertanyaan berbeda:
- Konten apa yang terdeteksi pada suatu block device?
- Filesystem ter-mount mana yang menangani sebuah pathname?
- Jenis filesystem apa yang saat ini dapat digunakan oleh kernel yang berjalan?
Tidak ada satu perintah yang menjawab semuanya sekaligus.
lsblk dan blkid memeriksa identitas storage
lsblk menampilkan daftar block device. Kolom filesystem diisi dari metadata yang tersedia, umumnya melalui udev atau hasil probing libblkid.
lsblk -o NAME,TYPE,FSTYPE,UUID,MOUNTPOINTSFSTYPE menunjukkan jenis konten yang dikenali pada block device. Sebuah partisi tetap bisa menampilkan FSTYPE=ext4 meskipun tidak ter-mount di mana pun. Kolom MOUNTPOINTS menambahkan informasi terkait mount, tetapi lsblk tetap bukan inventaris lengkap seluruh virtual mount atau network mount.
Untuk memeriksa perangkat tertentu secara langsung, blkid menampilkan signature konten dan atribut yang terdeteksi:
sudo blkid /dev/sdb1Volume ext4, misalnya, dapat menghasilkan TYPE="ext4" beserta UUID. Informasi tersebut menerangkan isi perangkat, bukan memastikan bahwa volume sedang ter-mount atau menunjukkan di mana volume terlihat.
Tidak semua nilai FSTYPE berarti filesystem biasa yang dapat di-mount sebagai pohon direktori. Partisi terenkripsi dapat menampilkan crypto_LUKS, sedangkan mapping device-mapper setelah dibuka baru berisi filesystem ext4 atau XFS yang sebenarnya. Swap juga memiliki signature yang dapat dikenali, tetapi tidak di-mount sebagai direktori.
Saat dijalankan tanpa hak root, blkid dapat mengembalikan data cache yang belum diverifikasi alih-alih membaca langsung dari perangkat. Jika media yang baru diformat ulang memiliki signature yang saling bertabrakan, probing tingkat rendah melalui blkid -p dan pemeriksaan wipefs -n dapat membantu menemukan metadata lama tanpa menghapusnya. Signature lama maupun nilai cache tidak boleh dianggap sebagai bukti mount yang aktif.
findmnt menunjukkan filesystem yang melayani sebuah path
Resolusi pathname mengikuti mount namespace milik proses pemanggil. Untuk memeriksa filesystem yang saat ini menaungi suatu direktori:
findmnt --target /srv/data -o TARGET,SOURCE,FSTYPE,OPTIONSOpsi --target mencari mount yang mencakup path tersebut, sekalipun path itu bukan mount point tersendiri. Gunakan --mountpoint jika yang ingin diperiksa adalah apakah direktori tertentu merupakan mount point yang persis.
Secara normal, findmnt mengambil informasi mount aktif dari /proc/self/mountinfo. Karena itu, FSTYPE yang ditampilkan mengacu pada filesystem ter-mount untuk pathname yang dipilih. Nilainya bukan sekadar salinan signature yang tersimpan pada block device.
df -Th juga melaporkan jenis filesystem dalam konteks penggunaan ruang pada filesystem ter-mount. Perintah ini cocok untuk memeriksa kapasitas, bukan untuk mendata semua perangkat yang sudah memiliki format filesystem.
Ini menjelaskan kasus yang sering membingungkan: lsblk menampilkan ext4 pada partisi yang belum di-mount, sedangkan findmnt --target /srv/data menampilkan filesystem milik direktori induknya. Signature ext4 memang ada, hanya saja partisi itu tidak sedang melayani path tersebut.
Virtual dan stacked filesystem tidak mengikuti asumsi satu disk untuk satu path
Sebuah mount tidak harus memiliki block device lokal tersendiri:
tmpfsmenyimpan data file pada storage berbasis memori yang dikelola kernel, dengan kemungkinan menggunakan swap.procdansysfsmenyajikan informasi proses dan kernel melalui antarmuka filesystem.nfsmenyediakan filesystem yang datanya berada di server jarak jauh.overlaymenggabungkan beberapa lapisan direktori menjadi satu tampilan filesystem, dan sering digunakan container.
Di dalam container, findmnt --target / bisa menampilkan overlay, sementara direktori backing di host tersimpan pada ext4 atau XFS. Memeriksa jenis block device host dengan lsblk dan memeriksa root mount container dengan findmnt berarti melihat dua lapisan yang berbeda.
Mount namespace menambah batas pemisah lain. /proc/self/mountinfo menggambarkan daftar mount yang terlihat oleh proses pembacanya. Proses di host dan proses di container bisa memiliki tampilan mount berbeda tanpa ada perubahan format disk.
/proc/filesystems adalah daftar kemampuan kernel
cat /proc/filesystemsFile ini memuat jenis filesystem yang dibangun langsung ke kernel yang sedang berjalan atau disediakan oleh modul yang sudah dimuat. Daftar tersebut bukan inventaris volume dan tidak berarti setiap jenis filesystem di dalamnya sedang digunakan.
Entri bertanda nodev tidak memerlukan block device untuk di-mount. Penanda ini bukan berarti filesystem tidak dapat menyimpan data secara persisten. Network filesystem, misalnya, dapat menyimpan data pada mesin lain.
Modul filesystem yang belum tampak dalam daftar mungkin tersedia setelah modulnya dimuat. Sebaliknya, keberadaan driver dalam daftar tidak membuktikan bahwa suatu perangkat memiliki filesystem valid dengan jenis tersebut.
Pilih perintah berdasarkan objek yang diperiksa
| Pertanyaan | Pemeriksaan yang sesuai |
|---|---|
| Block device apa yang tersedia dan signature apa yang terdeteksi? | lsblk -o NAME,TYPE,FSTYPE,UUID,MOUNTPOINTS |
| Metadata apa yang terdeteksi pada block device tertentu? | sudo blkid /dev/sdb1 |
| Filesystem ter-mount mana yang melayani path ini? | findmnt --target /srv/data -o TARGET,SOURCE,FSTYPE |
| Apa jenis dan penggunaan ruang filesystem yang ter-mount? | df -Th |
| Driver filesystem apa yang saat ini terdaftar? | cat /proc/filesystems |
Konfigurasi mount juga perlu dibedakan dari kondisi aktif. /etc/fstab menyatakan konfigurasi, termasuk volume yang mungkin belum di-mount. Saat mendiagnosis sebuah path, file konfigurasi itu tidak dapat menggantikan pemeriksaan kondisi runtime.
Diagnosis filesystem yang tepat dimulai dari objek yang hendak diperiksa. Untuk direktori data aplikasi, periksa dulu mount yang aktif pada path itu; kemudian telusuri sumbernya ke block device jika memang ada. Untuk disk yang baru dipasang, periksa signature perangkat terlebih dahulu, lalu cari tahu apakah dan di mana perangkat tersebut di-mount. Dengan urutan itu, label pada storage tidak keliru dianggap sebagai bukti filesystem yang benar-benar digunakan aplikasi.