GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Befehl, um zu sehen, wo eine Festplatte gemountet ist?

Gibt es einen einfachen Befehl, der den Geräteknoten einer Festplatte als Eingabe verwendet und mir mitteilt, wo (und ob) diese Festplatte gemountet ist? Ist es möglich, den Einhängepunkt selbst zu erhalten, damit ich ihn an einen anderen Befehl übergeben kann?

Ich arbeite an einem Debian Squeeze Live-System mit einer minimalen Installation (ich kann bei Bedarf zusätzliche Pakete installieren).

Akzeptierte Antwort:

Unter Linux können Sie Einhängepunktinformationen direkt vom Kernel in /proc/mounts erhalten . Der mount Programm zeichnet ähnliche Informationen in /etc/mtab auf . Die Pfade und Optionen können unterschiedlich sein, wie /etc/mtab stellt dar, was mount ist an den Kernel übergeben, wohingegen /proc/mounts zeigt die Daten, wie sie im Kernel zu sehen sind. /proc/mounts ist immer aktuell, wohingegen /etc/mtab möglicherweise nicht, wenn /etc war irgendwann schreibgeschützt, was von den Boot-Skripten nicht erwartet wurde. Das Format ähnelt /etc/fstab .

In beiden Dateien enthält das erste durch Leerzeichen getrennte Feld den Gerätepfad und das zweite Feld den Einhängepunkt.

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

oder wenn Sie kein awk haben:

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

Es gibt eine Reihe von Grenzfällen, in denen Sie möglicherweise nicht das erhalten, was Sie erwarten. Wenn das Gerät über einen anderen Pfad in /dev gemountet wurde das dasselbe Gerät bezeichnet, werden Sie es so nicht bemerken. In /proc/mounts , Bindungshalterungen sind vom Original nicht zu unterscheiden. Es kann mehr als eine Übereinstimmung geben, wenn ein Einhängepunkt einen anderen überschattet (dies ist ungewöhnlich).

In /proc/self oder /proc/$pid , gibt es pro Prozess ein mounts Datei, die die globale Datei nachahmt. Die Einhängeinformationen können je nach Prozess variieren, zum Beispiel aufgrund von chroot . Es gibt eine zusätzliche Datei namens mountinfo die ein anderes Format hat und mehr Informationen enthält, insbesondere die Haupt- und Nebennummern des Geräts. Aus der Dokumentation:

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

Wenn Sie also anhand der Nummer nach einem Gerät suchen, können Sie dies folgendermaßen tun:

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. Der Sinn des externen Befehls „cd“?

  2. Debian – Zugriff auf Originalinhalte von Mount Point?

  3. So verschieben Sie /tmp auf eine separate Festplatte als separaten Einhängepunkt (Online)

  4. mount-Befehlsbeispiele in Linux

  5. So verschieben Sie /var auf eine separate Festplatte als separaten Einhängepunkt (Online)

Df-Befehl in Linux (Speicherplatz prüfen)

So mounten Sie eine NTFS-Festplatte unter Linux

Ein gebundenes Reittier?

Einen Befehl ausführen, wo eine Datei gefunden wird?

Linux-df-Befehl zum Überprüfen des Speicherplatzes

Löschen eines Linux-Laptops