Un modo complicato è aggirare la necessità di sudo
leggendo il registro di sistema con:
dmesg | grep blocks
Tieni presente che questo potrebbe non essere l'ideale, quindi il tuo chilometraggio potrebbe variare...
Se vuoi la dimensione in byte e solo il valore, ad es. per lo scripting:
lsblk -b --output SIZE -n -d /dev/sdX
12220202
-b :Output in byte.
-n :Nessuna intestazione. Vogliamo solo il valore numerico puro.
--DIMENSIONE dell'output :Stampa solo la colonna delle dimensioni.
-d /dev/sdXn :il dispositivo di cui vogliamo conoscere le dimensioni. X è ad es. 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
Se si desidera utilizzare tali informazioni in uno script, ad esempio, utilizzando
sudo blockdev --getsz /dev/sda
potrebbe essere più semplice di fdisk o hdparm in quanto fornisce solo le informazioni rilevanti (basta moltiplicare per 512). Tuttavia, richiederà anche sudo.
Ovviamente potresti cambiare la configurazione di sudo in modo tale da consentire di eseguire questo comando specifico senza chiedere la password (immagino blockdev --getsz
è 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 visudo
e non il tuo solito editore. Altrimenti è molto facile commettere un errore di sintassi, che comporterebbe l'impossibilità di utilizzare sudo (dovresti riavviare in modalità di ripristino per risolvere questo problema).