GNU/Linux >> Linux Esercitazione >  >> Linux

Comando per vedere dove è montato un disco?

Esiste un semplice comando che accetta il nodo del dispositivo di un disco come input e mi dice dove (e se) quel disco è montato? È possibile ottenere il punto di montaggio da solo, così posso passarlo a un altro comando?

Sto lavorando su un sistema live Debian Squeeze con un'installazione minima (posso installare pacchetti extra se necessario).

Risposta accettata:

Sotto Linux, puoi ottenere informazioni sul punto di montaggio direttamente dal kernel in /proc/mounts . Il mount il programma registra informazioni simili in /etc/mtab . I percorsi e le opzioni possono essere diversi, come /etc/mtab rappresenta cosa mount passato al kernel mentre /proc/mounts mostra i dati come visti all'interno del kernel. /proc/mounts è sempre aggiornato mentre /etc/mtab potrebbe non essere se /etc era di sola lettura a un certo punto che non era previsto dagli script di avvio. Il formato è simile a /etc/fstab .

In entrambi i file, il primo campo separato da spazi bianchi contiene il percorso del dispositivo e il secondo campo contiene il punto di montaggio.

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

o se non hai awk:

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

Esistono numerosi casi limite in cui potresti non ottenere ciò che ti aspetti. Se il dispositivo è stato montato tramite un percorso diverso in /dev che designa lo stesso dispositivo, non te ne accorgerai in questo modo. In /proc/mounts , le cavalcature vincolanti sono indistinguibili dall'originale. Potrebbero esserci più corrispondenze se un punto di montaggio ne oscura un altro (questo è insolito).

In /proc/self o /proc/$pid , c'è un mounts per processo file che imita il file globale. Le informazioni di montaggio possono variare tra i processi, ad esempio a causa di chroot . C'è un file aggiuntivo chiamato mountinfo che ha un formato diverso e include più informazioni, in particolare i numeri principali e secondari del dispositivo. Dalla documentazione:

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

Quindi, se stai cercando un dispositivo per numero, puoi farlo in questo modo:

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. Il punto del comando esterno `cd`?

  2. mount Esempi di comandi in Linux

  3. mount:comando non trovato

  4. Comando Linux du senza attraversare i file system montati

  5. Dov'è il comando gem in RHEL6?

Comando Df in Linux (Controlla spazio su disco)

Come montare il disco NTFS su Linux

Comando Linux df per controllare lo spazio su disco

Esempi di comandi hdiutil in Mac

Accesso a un punto di montaggio ombreggiato

Controllare il punto di montaggio del volume logico (riga di comando)