GNU/Linux >> Belajar Linux >  >> Linux

Perintah Untuk Melihat Di Mana Disk Dipasang?

Apakah ada perintah sederhana yang mengambil simpul perangkat disk sebagai input, dan memberi tahu saya di mana (dan apakah) disk itu dipasang? Apakah mungkin untuk mendapatkan titik pemasangan dengan sendirinya, sehingga saya dapat meneruskannya ke perintah lain?

Saya sedang mengerjakan sistem live Debian Squeeze dengan instalasi minimal (saya dapat menginstal paket tambahan jika perlu).

Jawaban yang Diterima:

Di Linux, Anda bisa mendapatkan informasi mount point langsung dari kernel di /proc/mounts . mounts program mencatat informasi serupa di /etc/mtab . Jalur dan opsi mungkin berbeda, seperti /etc/mtab mewakili apa mounts diteruskan ke kernel sedangkan /proc/mounts menunjukkan data seperti yang terlihat di dalam kernel. /proc/mounts selalu up-to-date sedangkan /etc/mtab mungkin tidak jika /etc hanya-baca di beberapa titik yang tidak diharapkan oleh skrip boot. Formatnya mirip dengan /etc/fstab .

Di kedua file, bidang pertama yang dipisahkan spasi berisi jalur perangkat dan bidang kedua berisi titik pemasangan.

awk -v needle="$device_path" '$1==needle {print $2}' /proc/mounts

atau jika Anda tidak memiliki awk:

grep "^$device_path " /proc/mounts | cut -d ' ' -f 2

Ada sejumlah kasus tepi di mana Anda mungkin tidak mendapatkan apa yang Anda harapkan. Jika perangkat dipasang melalui jalur yang berbeda di /dev yang menunjuk perangkat yang sama, Anda tidak akan melihatnya seperti ini. Di /proc/mounts , bind mount tidak dapat dibedakan dari aslinya. Mungkin ada lebih dari satu kecocokan jika titik pemasangan membayangi yang lain (ini tidak biasa).

Di /proc/self atau /proc/$pid , ada mounts per-proses file yang meniru file global. Informasi pemasangan dapat bervariasi antar proses, misalnya karena chroot . Ada file tambahan bernama mountinfo yang memiliki format berbeda dan mencakup lebih banyak informasi, khususnya nomor mayor dan minor perangkat. Dari dokumentasi:

36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
(1)(2)(3)   (4)   (5)      (6)      (7)   (8) (9)   (10)         (11)

(1) mount ID:  unique identifier of the mount (may be reused after umount)
(2) parent ID:  ID of parent (or of self for the top of the mount tree)
(3) major:minor:  value of st_dev for files on filesystem
(4) root:  root of the mount within the filesystem
(5) mount point:  mount point relative to the process's root
(6) mount options:  per mount options
(7) optional fields:  zero or more fields of the form "tag[:value]"
(8) separator:  marks the end of the optional fields
(9) filesystem type:  name of filesystem of the form "type[.subtype]"
(10) mount source:  filesystem specific information or "none"
(11) super options:  per super block options

Jadi, jika Anda mencari perangkat berdasarkan nomor, Anda dapat melakukannya seperti ini:

awk -v dev="$major:minor" '$3==dev {print $5}'
awk -v dev="$(stat -L -c %t:%T /dev/block/something)" '$3==dev {print $5}'

Linux
  1. mount:perintah tidak ditemukan

  2. Perintah Linux du tanpa melintasi sistem file yang terpasang

  3. Di mana perintah permata di RHEL6?

  1. Gunung Pengikat?

  2. Di mana / haruskah disk permanen ekstra dipasang?

  3. Menghapus laptop Linux

  1. Inti Dari Perintah Eksternal `cd`?

  2. Debian – Akses ke Konten Asli Mount Point?

  3. Jalankan Perintah Di Mana File Ditemukan?