Stat Laufwerke ohne lsblk?

11

Ich habe ein minimalistisches Busybox-System, das ich kürzlich verwenden wollte, und ich habe ein kleines Problem gefunden: Es hat keinen lsblkBefehl. Gibt es einen anderen Befehl zum Auflisten von Datenträgern, Partitionen und Größen wie lsblk?

Einige, die auch nicht funktionieren:

  • lsblk
  • lsusb
  • fdisk -l
  • cfdisk
Der Doktor
quelle
Gut. Wenn Sie sich die Handbücher ansehen, sollte es Ihnen das fdiskDienstprogramm geben - man.he.net/man1/busybox - könnten Sie bitte ausführen /bin/busybox --help, um die Liste der verfügbaren Befehle anzuzeigen ?
dffunktioniert nicht?
Ramesh

Antworten:

11

Wenn ich die Wiki-Seite von Busybox durchschaue , sehe ich, dass sie den dfBefehl zum Ermitteln der Festplattennutzung unterstützt.

Sie können den folgenden Befehl versuchen.

df -h - Zeigt freien Speicherplatz auf gemounteten Dateisystemen an.

Von dem Mann Seite von Busybox haben sie Beispiele dafür , wie die verwenden dfBefehl.

Wie @nwildner jedoch betonte, zeigt der df Speicher auf einem gemounteten Dateisystem an und nicht die Schemata, die sich auf Partitionen beziehen. Um dies herauszufinden, können Sie die folgende Datei überprüfen.

cat /proc/partitions

Wie Sie bereits erwähnt haben, fdisk -lfunktioniert dies nicht. Die obige Datei enthält möglicherweise die Partitionsinformationen.

Testen

fdisk -l hat die folgende Ausgabe in meinem System erzeugt.

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        9726    78019672+  8e  Linux LVM

Jetzt kann ich die Partitionsinformationen abrufen, wenn ich cat verwende /proc/partitions. Die Ausgabe ist,

major minor  #blocks  name

   8     0   78125000 sda
   8     1     104391 sda1
   8     2   78019672 sda2
 253     0   78019156 dm-0
 253     1   72581120 dm-1
 253     2    5406720 dm-2

Die Hauptzahl ist 8, was angibt, dass es sich um ein Festplattengerät handelt. Die kleineren sind Ihre Partitionen auf demselben Gerät. 0 ist die gesamte Festplatte, 1 ist die primäre, 2 ist erweitert und 5 ist die logische Partition. Der Rest ist natürlich Blockgröße und Name der Festplatte / Partition.

Sie sind sich nicht sicher, ob es sich um einen intelligenten Vorschlag handelt, aber haben Sie versucht sudo fdisk -l, festzustellen, ob er funktioniert?

EDIT # 1

Sie können auch ausführen $ df -T. Dies ist ein weiterer Befehl, für dessen Ausführung keine Superuser-Berechtigungen erforderlich sind. Dies wird jedoch für jeden Einhängepunkt gemeldet.

Ein weiterer Befehl, der nützlich sein kann, ist # file -sL /dev/sdXY. Dies hat den Nachteil, dass es nicht mit dem Vollblockgerät funktioniert. Erfordert die genaue Übergabe des Geräts. Die Ausgabe ist allerdings recht ordentlich:

Verweise

Wie bestimme ich das Dateisystem eines nicht gemounteten Geräts?

Ramesh
quelle
2
Zeigt dfjedoch die Speichernutzung auf einem bereitgestellten Dateisystem an, keine Schemata, die sich auf Partitionen beziehen.
1
@nwildner, hat die Antwort aktualisiert. Bitte überprüfen Sie und lassen Sie es mich wissen :)
Ramesh
Ich bin als root angemeldet. Werden / proc / partitions nicht gemountete Partitionen anzeigen?
TheDoctor
@ TheDoctor, ich fürchte, es werden die nicht gemounteten Partitionen nicht angezeigt.
Ramesh
2
Nein, df -Tscheint auch nicht zu funktionieren. Es heißt nur, dass ich die Optionen -p, -k, -m, -h
TheDoctor vom
4

Sieht so aus, als hätten die anderen Antwortenden nicht auf BusyBox getestet. Hier sind die einzigen Befehle, die auf der BusyBox in meinen initramfs funktionierten:

  • cat /proc/partitions zeigt die Festplatten- und Partitionsgrößen in Blöcken (KiB)

  • blkid zeigt die Partitionsbezeichnungen, UUIDs und Typen (EXT4, NTFS usw.)

Navin
quelle
0

Die Besetzt-Box-Befehle sind normalerweise etwas eingeschränkter als Vollversionen, die in größeren Distributionen enthalten sind, und die vorherige Antwort hat dies nicht ganz angesprochen, wie ich herausgefunden habe, als ich das gleiche Problem hatte.

Ich habe die Informationen gefunden, die ich (und vieles mehr) für extDateisysteme benötigte, tune2fsdie auf dem eingebetteten Linux verfügbar waren, das ich gerade verwende. Sie wissen nicht, wie Sie dies für andere Arten von nicht gemounteten Dateisystemen tun sollen.

tune2fs -l /dev/sdbXY | grep 'Block' | tr -s ' ' | cut -f3 -d' '
488378112
4096
group:

Dadurch erhalten Sie diese Ausgabe, da tr -swiederholte Leerzeichen entfernt werden und cut -f3 -d ' 'Sie das dritte Ausgabefeld erhalten. Entfernen Sie einfach aufeinanderfolgende Rohre, um mehr über die Vorgänge zu erfahren.

Die erste Zahl ist die Anzahl der Blöcke und die zweite die Blockgröße. Multiplizieren Sie sie, um Ihre Antwort in Bytes zu erhalten. Das Wort group:ist nur eine Anomalie der Filterung und kann ignoriert werden.

Amias
quelle