Estoy reduciendo una partición de tarjeta SD de Linux usando la increíble guía de AOakley. Estoy intentando automatizarlo, pero parece que no hay ninguna herramienta de línea de comandos para determinar la cantidad de bytes que se utilizan en una partición.
Por ejemplo, gparted me dice que el espacio utilizado es 1,88 GB de 6,99 GB (nota, estoy usando /dev/loop0 que está montado en la segunda partición de /dev/sdb):
df
Está Mal:
% df /dev/loop0
Filesystem ... Use%
udev ... 0%
...y fdisk
no parted
imprimir el espacio usado.
¿Qué puedo usar desde la línea de comandos para determinar el espacio utilizado en una partición como gparted
lo hace?
RESPUESTA: Resumen a continuación: La partición es ext4
la que me permite usar dumpe2fs
y extraer: free blocks
, block count
(total), y block size
que se puede combinar para que coincida exactamente gparted
. Resulta que resize2fs
maneja la fragmentación durante la contracción. Consulte la página de manual para ext4
obtener más información (¡aunque el editor de la página de manual está un poco amargado con GiB vs. GB! :)
Respuesta1
df
es casi la herramienta adecuada, pero debe consultar el punto de montaje (o cualquier archivo a continuación) que pertenece al sistema de archivos que desea examinar, no al nodo del dispositivo. El nodo que utilizó, /dev/loop0
es un archivo especial que pertenece al udev
sistema de archivos virtual; por lo tanto tienes udev
.
Monte /dev/loop0
(o /dev/sdb2
, no estoy seguro de por qué es necesario /dev/loop0
) en algún lugar (puede ser ro
montar) e invoque df /the/mountpoint
. Luego df
le dirá qué informa el sistema de archivos sobre sí mismo.
dije " df
escasila herramienta adecuada" porque no hay garantía de que pueda reducir el sistema de archivos (y luego la partición) al tamaño informado por la herramienta. Qué df
impresiones puede ser su primera estimación (o más bien cero).
Necesita diferentes herramientas para cambiar el tamaño de diferentes sistemas de campo. En un mundo perfecto, dicha herramienta (o alguna herramienta que la acompañe) es capaz de indicarle el tamaño mínimo posible, o al menos el tamaño mínimo para el cual el cambio de tamaño tendrá éxito con seguridad. En realidad puedes encontrar esto:
Errores conocidos
El tamaño mínimo del sistema de archivos estimado porresize2fs
puede ser incorrecto, especialmente para sistemas de archivos con tamaños de bloque de 1k y 2k.
(fuente)
gparted
utiliza herramientas específicas del sistema de archivos. Lo ejecuté strace
y no vi evidencia de que lo use df
. Yo vi btrfs filesystem show …
, dumpe2fs …
, …
Resumen:
- Lo usaste
df
de manera incorrecta. - De todos modos, es mejor utilizar una herramienta específica para el sistema de archivos;
gparted
hace. No puedo decirte qué herramienta deberías usar porque no has especificado el sistema de archivos en cuestión.