¿Obtener el tamaño total de mi disco duro en Linux, usando la línea de comandos, sin permisos de root?


15

Estoy tratando de averiguar el tamaño total de mi disco duro usando df -h, pero imprime el tamaño de cada partición y lo requiere sudo.

¿Hay alguna forma de obtener el tamaño total de mi disco duro usando la línea de comando, sin requerir permiso de root?


55
Nota: El uso dfes impreciso si el disco tiene espacio no particionado, no todas las particiones están montadas (por ejemplo, algunas particiones de Windows en la misma unidad) o algunas particiones no están montadas directa sino indirectamente a través de RAID, LVM o LUKS (cifrado). También perderá las particiones de intercambio. Por lo tanto, recomiendo no usar dfpara averiguar el tamaño del disco duro.
Philipp Wendler

Respuestas:


12

Una forma hacky es evitar la necesidad de sudoleer el registro del sistema con:

dmesg | grep blocks

Tenga en cuenta que esto puede no ser ideal, por lo que su kilometraje puede variar ...


4
cat /sys/block/sda/size

Pero el tamaño está en unidades basadas en bloques
. Encontré esta respuesta aquí .
Otras soluciones aquí .

O puedes probar los udiscos

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

4

Si desea el tamaño en bytes y solo el valor, por ejemplo, para secuencias de comandos:

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

-b : salida en bytes.
-n : Sin encabezados. Solo queremos el valor numérico puro.
- tamaño de salida : solo imprime la columna de tamaño.
-d / dev / sdXn : el dispositivo de qué tamaño queremos saber. X es, por ejemplo, d, n es, por ejemplo, 1 para la primera partición del disco d.

Ventajas:

  • no se necesitan privilegios de root
  • grep no es necesario
  • lsblk está disponible en la mayoría de los sistemas Linux

3

Si desea utilizar esa información en un script, por ejemplo, utilizando

sudo blockdev --getsz /dev/sda

puede ser más fácil que fdisk o hdparm, ya que solo le brinda la información relevante (simplemente multiplique por 512). Sin embargo, también requerirá sudo.

Por supuesto, podría cambiar la configuración de sudo de modo que permita ejecutar este comando específico sin solicitar la contraseña (supongo que blockdev --getszes bastante seguro incluso cuando lo ejecuta un usuario normal sin privilegios).

Esto se haría agregando la siguiente línea a /etc/sudoers:

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

Cuando edite este archivo, asegúrese de usar el comando sudo visudoy no su editor habitual. De lo contrario, es muy fácil cometer un error de sintaxis, lo que daría como resultado que ya no se pueda usar sudo (tendrías que reiniciar en modo de rescate para solucionarlo).


1
Desde la página del manual: --getsize64 Print device size in bytes.. También aquí .
Sparhawk

1

No estoy en mi caja de Linux en este momento, pero podrías intentar:

hdparm -I /dev/sda

o

fdisk -l

que probablemente también requiera un sudo.

No he visto en ninguna parte que df requiera root. Eso es extraño.


Quizás "df" no está en RUTA. HVNSweeting, intente "sudo which df" y luego intente eso como usuario.
Milan Babuškov

hola, esto es lo que obtengo: hvnsweeting @ hvnbox: ~ $ blockdev --getsz / dev / sda / dev / sda: Permiso denegado hvnsweeting @ hvnbox: ~ $ hdparm -I / dev / sda / dev / sda: Permiso denegado hvnsweeting @hvnbox: ~ $ fdisk -l hvnsweeting @ hvnbox: ~ $
HVNSweeting

1
Todo lo que accede a los dispositivos directamente (es decir, / dev / sda) necesitará sudo.
Philipp Wendler

1

O tienes una mala instalación o un administrador de sistemas absurdamente paranoico. He Nunca oí de dfque requiere privilegios de root antes. Y he trabajado con bastantes sabores diferentes de sistemas operativos tipo UNIX / UNIX.

De todos modos, esto le dará el tamaño total de todas las particiones de disco (la primera dfcolumna es /dev/hd...o /dev/sd...) en bloques (kB):

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

o en GB:

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

0

Comprobación del espacio en disco de Gnome y Kubuntu

Disk Usage Analyzer es una aplicación gráfica basada en menús que informa el uso del disco en entornos Gnome y Kubuntu. DUA (Disk Usage Analyzer) puede escanear todo el árbol del sistema de archivos o directorios individuales, locales o remotos. DUA también es dinámico, ya que informará en tiempo real de cualquier dispositivo montado y desmontado.

Para acceder al Analizador de uso de disco en Gnome, haga clic en: Aplicaciones \ Accesorios \ El Analizador de uso de disco es así de simple.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.