Czy uzyskać całkowity rozmiar mojego dysku twardego w systemie Linux przy użyciu wiersza polecenia bez uprawnień roota?

16

Próbuję ustalić całkowity rozmiar mojego twardego dysku df -h, ale drukuje on rozmiar każdej partycji i wymaga sudo.

Czy jest jakiś sposób, aby uzyskać całkowity rozmiar mojego dysku twardego za pomocą wiersza poleceń, bez konieczności posiadania uprawnień roota?

HVNSweeting
źródło
5
Uwaga: Używanie dfjest nieprecyzyjne, jeśli dysk ma niepodzielone miejsce na partycje, nie wszystkie partycje są zamontowane (np. Niektóre partycje Windows na tym samym dysku) lub niektóre partycje nie są montowane bezpośrednio, ale pośrednio przez RAID, LVM lub LUKS (szyfrowanie). Będzie również brakowało partycji wymiany. Dlatego zalecam nie używać dfdo sprawdzania rozmiaru dysku twardego.
Philipp Wendler

Odpowiedzi:

13

Hacky sposób polega na ominięciu potrzeby sudopoprzez odczytanie dziennika systemu za pomocą:

dmesg | grep blocks

Pamiętaj, że może to nie być idealne, więc przebieg może się różnić ...

Sirex
źródło
5

Jeśli chcesz rozmiar w bajtach i tylko wartość np. Dla skryptu:

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

-b : Dane wyjściowe w bajtach.
-n : Brak nagłówków. Chcemy tylko czystej liczby.
--output SIZE : Wydrukuj tylko kolumnę rozmiaru.
-d / dev / sdXn : urządzenie, którego rozmiar chcemy znać. X to np. D, n to np. 1 dla pierwszej partycji dysku d.

Zalety:

  • uprawnienia roota nie są potrzebne
  • grep nie jest potrzebny
  • lsblk jest dostępny w większości systemów Linux
Sean Loony
źródło
4
cat /sys/block/sda/size

Ale rozmiar jest w jednostce blokowej . Tutaj
znalazłem tę odpowiedź . Inne rozwiązania tutaj .

Lub możesz spróbować udisk

udisks --show-info /dev/sda | egrep "^[[:space:]]*size" | awk '{print $2}'
Gery
źródło
3

Jeśli chcesz użyć tych informacji w skrypcie, na przykład przy użyciu

sudo blockdev --getsz /dev/sda

może być łatwiejsze niż fdisk lub hdparm, ponieważ zapewnia tylko istotne informacje (wystarczy pomnożyć przez 512). Będzie to jednak wymagać sudo.

Możesz oczywiście zmienić konfigurację sudo, tak aby umożliwiała wykonanie tej konkretnej komendy bez pytania o hasło (myślę, że blockdev --getszjest całkiem bezpieczna, nawet jeśli jest wykonywana przez zwykłego nieuprzywilejowanego użytkownika).

Można to zrobić, dodając następujący wiersz /etc/sudoers:

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

Podczas edycji tego pliku pamiętaj, aby użyć polecenia, sudo visudoa nie zwykłego edytora. W przeciwnym razie bardzo łatwo jest popełnić błąd składniowy, który spowodowałby, że nie byłby już w stanie korzystać z sudo (aby to naprawić, musiałbyś zrestartować komputer w trybie ratunkowym).

Philipp Wendler
źródło
1
Od strony man: --getsize64 Print device size in bytes.. Również tutaj .
Sparhawk
1

Nie jestem teraz przy moim Linux-ie, ale możesz spróbować:

hdparm -I /dev/sda

lub

fdisk -l

co prawdopodobnie będzie wymagać sudo.

Nigdzie nie widziałem, że df wymaga rootowania. To dziwne.

CaseyB
źródło
Może „df” nie ma w ścieżce. HVNSweeting, spróbuj „sudo which df”, a następnie spróbuj tego jako użytkownik.
Milan Babuškov
cześć, oto co otrzymuję: hvnsweeting @ hvnbox: ~ $ blockdev --getsz / dev / sda / dev / sda: Odmowa dostępu hvnsweeting @ hvnbox: ~ $ hdparm -I / dev / sda / dev / sda: Odmowa dostępu hvnsweeting @hvnbox: ~ $ fdisk -l hvnsweeting @ hvnbox: ~ $
HVNSweeting
1
Wszystko, co uzyskuje bezpośredni dostęp do urządzeń (tj. / Dev / sda) będzie wymagało sudo.
Philipp Wendler
1

Masz albo złą instalację, albo absurdalnie paranoicznego administratora systemu. Nigdy wcześniej nie słyszałem o dfwymaganiach uprawnień roota. Pracowałem z kilkoma różnymi odmianami systemów operacyjnych typu unix / unix.

W każdym razie daje to całkowity rozmiar wszystkich partycji dysku (pierwsza dfkolumna to /dev/hd...lub /dev/sd...) w blokach (kB):

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

lub w GB:

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

Sprawdzanie miejsca na dysku od Gnome i Kubuntu

Disk Usage Analyzer to graficzna aplikacja oparta na menu, która zgłasza użycie dysku w środowiskach Gnome i Kubuntu. DUA (Disk Usage Analyzer) może skanować całe drzewo systemu plików lub poszczególne katalogi, lokalne lub zdalne. DUA jest również dynamiczny, ponieważ będzie raportować w czasie rzeczywistym wszystkie urządzenia, które są zamontowane i odmontowane.

Aby uzyskać dostęp do Disk Usage Analyzer w Gnome, kliknij: Applications \ Accessories \ Disk Usage Analyzer to takie proste.

Ricky
źródło