
Wie liste ich ALLE angeschlossenen Festplattenlaufwerke skriptfreundlich auf? Alle – bedeutet sowohl gemountet als auch nicht gemountet. Skriptfreundlich – bedeutet etwas, das ich zum (U)Mounten in meinem Shell-Skript mit minimalem Grep- oder Sed-Vorgang verwenden kann.
Meine Aufgabe ist es, ein Skript zu schreiben, das beim Start herausfindet, wo sich die Festplatte befindet (falls sie überhaupt angeschlossen ist) und sie einbindet. In meinem Skript brauche ich eine Möglichkeit, eine Liste der verfügbaren Geräte unter /dev abzurufen. Welches Tool soll ich in meinem Skript verwenden?
Hier sind die Optionen, die ich in Betracht gezogen habe:
fdisk -l
gibt viel mehr Informationen als ich brauche - es ist ein bisschen schwierig, die Ausgabe in der Shell zu analysierenparted -l
listet nicht gemountete Partitionen nicht auf und gibt außerdem viele zusätzliche Informationen auscat /proc/partitions
beste Ausgabe, listet aber nicht gemountete Partitionen nicht auf
Welches Werkzeug passt am besten zu meiner Aufgabe?
Um ein wenig zu verdeutlichen, woher ich komme, hier ist meine Situation:
An manchen PCs schließen Benutzer eine Festplatte über USB oder SATA an. Dann startet der Benutzer den PC neu. Ich weiß nichts über das Festplattengerät, ich kann nur annehmen, dass es eine Partition mit dem Dateisystem ext4 hat. Das Gerät könnte als /dev/sda oder /dev/sdb erscheinen. Ich habe su-Zugriff auf das Gerät und kann mein Skript zu /etc/rc.local oder irgendwo anders hinzufügen, aber ich habe diesen Zugriff nur, bevor ich den PC an den Benutzer übergebe.
Antwort1
Das ergibt möglicherweise blkid
Zeilen der Form:
/dev/sdXX: UUID="<UUID>" TYPE="<fstype>"
Sie können diese UUIDs auch in verwenden fstab
: UUID="<UUID>"
Sie können den Gerätepfad ersetzen /dev/sdXX
.
Antwort2
Auf Distributionen mit Udisks
udisks --enumerate-device-files | grep -v ^/dev/disk