Abrufen der Gesamtgröße meiner Festplatte unter Linux über die Befehlszeile ohne Root-Berechtigungen?

15

Ich versuche, die Gesamtgröße meiner Festplatte mit herauszufinden df -h, aber es gibt die Größe jeder Partition aus und erfordert sudo.

Gibt es eine Möglichkeit, die Gesamtgröße meiner Festplatte über die Befehlszeile abzurufen, ohne eine Root-Berechtigung zu benötigen?

HVNSweeting
quelle
5
Hinweis: Die Verwendung dfist ungenau, wenn auf der Festplatte nicht partitionierter Speicherplatz vorhanden ist und nicht alle Partitionen bereitgestellt wurden (z. B. einige Windows-Partitionen auf demselben Laufwerk) oder einige Partitionen nicht direkt, sondern indirekt über RAID, LVM oder LUKS (Verschlüsselung) bereitgestellt wurden. Es wird auch die Swap-Partition (en) verpassen. Daher empfehle ich, nicht zu verwenden df, um die Festplattengröße herauszufinden.
Philipp Wendler

Antworten:

12

Ein hackiger Weg besteht darin, die Notwendigkeit zu umgehen, sudoindem Sie das Systemprotokoll auslesen mit:

dmesg | grep blocks

Bitte beachten Sie, dass dies möglicherweise nicht ideal ist, so dass Ihre Laufleistung variieren kann ...

Sirex
quelle
4
cat /sys/block/sda/size

Aber die Größe ist in blockbasierten Einheiten angegeben.
Diese Antwort habe ich hier gefunden .
Andere Lösungen hier .

Oder Sie können udisks versuchen

udisks --show-info /dev/sda | egrep "^[[:space:]]*size" | awk '{print $2}'
Gery
quelle
3

Wenn Sie diese Informationen beispielsweise in einem Skript verwenden möchten, verwenden Sie

sudo blockdev --getsz /dev/sda

ist möglicherweise einfacher als fdisk oder hdparm, da nur die relevanten Informationen angezeigt werden (einfach mit 512 multiplizieren). Es wird jedoch auch sudo benötigt.

Sie können natürlich die Konfiguration von sudo so ändern, dass dieser spezielle Befehl ausgeführt werden kann, ohne nach dem Kennwort zu fragen (ich denke, es blockdev --getszist ziemlich sicher, auch wenn es von einem normalen, nicht privilegierten Benutzer ausgeführt wird).

Dies würde durch Hinzufügen der folgenden Zeile erfolgen /etc/sudoers:

ALL ALL= NOPASSWD:/sbin/blockdev --getsz /dev/*

Verwenden Sie beim Bearbeiten dieser Datei unbedingt den Befehl sudo visudound nicht den üblichen Editor. Andernfalls ist es sehr einfach, einen Syntaxfehler zu machen, der dazu führen würde, dass sudo nicht mehr verwendet werden kann (Sie müssten in den Rettungsmodus neu starten, um dies zu beheben).

Philipp Wendler
quelle
1
Aus der Manpage: --getsize64 Print device size in bytes.. Auch hier .
Sparhawk
3

Wenn Sie die Größe in Bytes und nur den Wert wünschen, zB für die Skripterstellung:

lsblk -b --output SIZE -n -d /dev/sdX
12220202

-b : Ausgabe in Bytes.
-n : Keine Überschriften. Wir wollen nur den reinen Zahlenwert.
--output SIZE : Druckt nur die Größenspalte .
-d / dev / sdXn : Das Gerät, dessen Größe wir wissen wollen. X ist z. B. d, n ist z. B. 1 für die erste Partition von Platte d.

Vorteile:

  • Root-Rechte sind nicht erforderlich
  • grep wird nicht benötigt
  • lsblk ist auf den meisten Linux-Systemen verfügbar
Sean Loony
quelle
1

Ich bin gerade nicht in meiner Linux-Box, aber Sie könnten versuchen:

hdparm -I /dev/sda

oder

fdisk -l

das wird wohl auch ein sudo erfordern.

Ich habe nirgendwo gesehen, dass df root benötigt. Das ist seltsam.

CaseyB
quelle
Vielleicht ist "df" nicht in PATH. HVNSweeting, versuche "sudo which df" und versuche das dann als User.
Milan Babuškov
hi, das bekomme ich: hvnsweeting @ hvnbox: ~ $ blockdev --getsz / dev / sda / dev / sda: Berechtigung verweigert @hvnbox: ~ $ fdisk -l hvnsweeting @ hvnbox: ~ $
HVNSweeting
1
Alles, was direkt auf die Geräte zugreift (zB / dev / sda), benötigt sudo.
Philipp Wendler
1

Sie haben entweder eine schlechte Installation oder einen absurd paranoiden Sysadmin. Ich habe noch nie davon gehört df, Root-Rechte zu benötigen. Und ich habe mit ziemlich vielen verschiedenen Varianten von Unix / Unix-ähnlichen Betriebssystemen gearbeitet.

Auf jeden Fall erhalten Sie die Gesamtgröße aller Festplattenpartitionen (erste dfSpalte ist /dev/hd...oder /dev/sd...) in Blöcken (kB):

df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s}'

oder in GB:

df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s/1048576}'
Dave Sherohman
quelle
0

Überprüfen des Speicherplatzes in Gnome und Kubuntu

Disk Usage Analyzer ist eine grafische menügesteuerte Anwendung, die die Festplattennutzung in Gnome- und Kubuntu-Umgebungen meldet. DUA (Disk Usage Analyzer) kann den gesamten Dateisystembaum oder einzelne lokale oder entfernte Verzeichnisse durchsuchen. DUA ist auch dynamisch, da es in Echtzeit alle Geräte meldet, die gemountet und nicht gemountet sind.

Um in Gnome auf Disk Usage Analyzer zuzugreifen, klicken Sie auf: Programme \ Zubehör \ Disk Usage Analyzer so einfach ist das.

Ricky
quelle