Ottieni la dimensione totale del mio disco rigido in Linux, usando la riga di comando, senza i permessi di root?


15

Sto cercando di scoprire la dimensione totale del mio disco rigido utilizzando df -h, ma stampa la dimensione di ogni partizione e richiede sudo.

Esiste un modo per ottenere la dimensione totale del mio disco rigido utilizzando la riga di comando, senza richiedere il permesso di root?


5
Nota: l'utilizzo dfè impreciso se il disco ha uno spazio non partizionato, non tutte le partizioni sono montate (ad es. Alcune partizioni Windows sulla stessa unità) o alcune partizioni non sono montate direttamente ma indirettamente tramite RAID, LVM o LUKS (crittografia). Mancheranno anche le partizioni di swap. Quindi consiglio di non usare dfper scoprire le dimensioni dell'HDD.
Philipp Wendler,

Risposte:


12

Un modo complicato è aggirare la necessità sudoleggendo il registro di sistema con:

dmesg | grep blocks

Tieni presente che questo potrebbe non essere l'ideale, quindi il tuo chilometraggio può variare ...


4
cat /sys/block/sda/size

Ma la dimensione è in unità a blocchi.
Ho trovato questa risposta qui .
Altre soluzioni qui .

Oppure puoi provare udisks

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

4

Se si desidera la dimensione in byte e solo il valore, ad esempio per lo scripting:

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

-b : output in byte.
-n : nessun titolo. Vogliamo solo il valore numerico puro.
--output SIZE : stampa solo la colonna size.
-d / dev / sdXn : il dispositivo di quale dimensione vogliamo conoscere. X è ad esempio d, n è ad esempio 1 per la prima partizione del disco d.

vantaggi:

  • i privilegi di root non sono necessari
  • grep non è necessario
  • lsblk è disponibile sulla maggior parte dei sistemi linux

3

Ad esempio, se si desidera utilizzare tali informazioni in uno script

sudo blockdev --getsz /dev/sda

potrebbe essere più semplice di fdisk o hdparm in quanto fornisce solo le informazioni pertinenti (basta moltiplicare per 512). Tuttavia, richiederà anche sudo.

Ovviamente potresti cambiare la configurazione di sudo in modo tale da consentire l'esecuzione di questo comando specifico senza richiedere la password (credo blockdev --getszsia abbastanza sicuro anche se eseguito da un normale utente non privilegiato).

Questo sarebbe fatto aggiungendo la seguente riga a /etc/sudoers:

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

Quando modifichi questo file, assicurati di usare il comando sudo visudoe non il solito editor. Altrimenti è molto facile commettere un errore di sintassi, il che comporterebbe l'impossibilità di utilizzare sudo (per risolvere questo problema, è necessario riavviare in modalità di ripristino).


1
Dalla pagina man: --getsize64 Print device size in bytes.. Anche qui .
Sparhawk,

1

Non sono al mio box Linux in questo momento, ma potresti provare:

hdparm -I /dev/sda

o

fdisk -l

che probabilmente richiederà anche un sudo.

Non ho visto da nessuna parte che df richiede root. È strano.


Forse "df" non è in PERCORSO. HVNSweeting, prova "sudo quale df" e poi prova come utente.
Milan Babuškov,

ciao, questo è quello che ottengo: hvnsweeting @ hvnbox: ~ $ blockdev --getsz / dev / sda / dev / sda: autorizzazione negata hvnsweeting @ hvnbox: ~ $ hdparm -I / dev / sda / dev / sda: autorizzazione negata hvnsweeting @hvnbox: ~ $ fdisk -l hvnsweeting @ hvnbox: ~ $
HVNSweeting

1
Tutto ciò che accede direttamente ai dispositivi (cioè, / dev / sda) avrà bisogno di sudo.
Philipp Wendler,

1

O hai una cattiva installazione o un assurdamente sysadmin paranoico. Non ho mai sentito parlare di dfrichiedere privilegi di root prima. E ho lavorato con diversi tipi di sistemi operativi unix / unix-like.

Comunque, questo ti darà la dimensione totale di tutte le partizioni del disco (la prima dfcolonna è /dev/hd...o /dev/sd...) in blocchi (kB):

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

o in GB:

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

0

Controllo dello spazio su disco da Gnome e Kubuntu

Disk Usage Analyzer è un'applicazione grafica basata su menu che riporta l'utilizzo del disco negli ambienti Gnome e Kubuntu. DUA (Disk Usage Analyzer) può eseguire la scansione dell'intero albero del file system o delle singole directory, sia locali che remote. DUA è anche dinamico, in quanto riporterà in tempo reale tutti i dispositivi montati e smontati.

Per accedere a Disk Usage Analyzer in Gnome, fai clic su: Applicazioni \ Accessori \ Disk Usage Analyzer è così semplice.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.