
Estoy ejecutando Ubuntu 11.04 y me pregunto cómo encontrar el tamaño de la unidad de asignación. ¿Existe algún comando en Ubuntu para encontrar esto? Además, dependiendo del tamaño de la unidad de asignación, ¿cambia la cantidad total de espacio en el disco duro utilizado por un archivo? He verificado los tamaños de los archivos usando ls
y du -b
y en ambos casos obtengo los mismos valores.
Incluyendo datos:
sudo tune2fs -l <file system>
Block count: 8052736
Reserved block count: 402636
Free blocks: 2797402
First block: 0
Block size: 4096
Reserved GDT blocks: 1022
Blocks per group: 32768
Inode blocks per group: 512
Flex block group size: 16
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
Journal backup: inode blocks
Entonces, si el tamaño del bloque es de 4096 bytes, los archivos de menos de 4096 ocupan 4096 bytes de almacenamiento en el disco duro, ¿qué pasa con los archivos de más de 4096 bytes, cuánto espacio ocupan? ¿Existe un comando para encontrar lo mismo?
Respuesta1
Edición de la publicación principal:
buscar tamaño de forma preventiva:
temp = int(tamaño/bloque) si mod(tamaño/bloque) != 0: temperatura += 1 temperatura = temperatura*bloque temperatura de impresión
para saber cuántos bloques tiene un archivo en el disco:
ls -s
donde tamaño de bloque es el tamaño del bloque de partición
y el tamaño en el disco es tamaño de bloque * número de bloques
Explicación sobre las diferencias terminológicas en el tamaño de bloque
sudo fdisk -l /dev/sda
donde /dev/sda es el disco duro en cuestión
Disco /dev/sda: 500,1 GB, 500107862016 bytes 255 cabezas, 63 sectores/pista, 60801 cilindros, total 976773168 sectores Unidades = sectores de 1 * 512 = 512 bytes Tamaño del sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes/512 bytes Identificador de disco: 0x000c1f6b Dispositivo Arranque Inicio Bloques finales Sistema de identificación /dev/sda1 * 63 498014 248976 83 Linux /dev/sda2 498015 976768064 488135025 5 Extendido /dev/sda5 498078 976768064 488134993+ 83 LinuxEsto te dice varias cosas. Alguien más ya lo dijo mejor así que cita en bloque:
El problema con esto es que hay cuatro unidades distintas que debes tener en cuenta. Para empeorar las cosas, dos de estas unidades llevan el mismo nombre. Estas son las diferentes unidades:
- Tamaño del bloque de hardware, "tamaño del sector"
- Tamaño de bloque del sistema de archivos, "tamaño de bloque"
- Tamaño del bloque de caché del búfer del kernel, "tamaño de bloque"
- Tamaño del bloque de la tabla de partición, "tamaño del cilindro"
Para diferenciar entre el tamaño de bloque del sistema de archivos y el tamaño del bloque de caché del búfer, seguiré la terminología FAT y usaré "tamaño de clúster" para el tamaño de bloque del sistema de archivos.
El tamaño del sector son las unidades con las que trata el hardware. Esto varía entre diferentes tipos de hardware, pero la mayoría del hardware estilo PC (disquetes, discos IDE, etc.) utiliza sectores de 512 bytes.
El tamaño del clúster es la unidad de asignación que utiliza el sistema de archivos y es lo que causa la fragmentación; estoy seguro de que lo sabe. En un sistema de archivos ext3 de tamaño moderado, esto suele ser de 4096 bytes, pero puedes comprobarlo con dumpe2fs. Recuerde que estos también suelen denominarse "bloques", sólo que aquí me refiero a ellos como clústeres.
El tamaño del clúster es lo que se devuelve en st_blksize en el búfer de estadísticas, para que los programas puedan calcular el uso real del disco de un archivo.
El tamaño del bloque es el tamaño de los buffers que el kernel usa internamente cuando almacena en caché sectores que han sido leídos desde dispositivos de almacenamiento (de ahí el nombre "dispositivo de bloque"). Dado que esta es la forma más primitiva de almacenamiento en el kernel, todos los tamaños de clúster del sistema de archivos deben ser múltiplos de este. Este tamaño de bloque es también a lo que casi siempre se refieren los programas de espacio de usuario. Por ejemplo, cuando ejecuta "du" sin las opciones -h o -H, devolverá cuántos de estos bloques ocupa un archivo. df también informará los tamaños en estos bloques, la columna "Bloques" en la salida de fdisk -l es de este tipo, y así sucesivamente. Es lo que más comúnmente se conoce como "bloque". En cada bloque caben dos sectores de disco.
El tamaño del cilindro solo se usa en la tabla de particiones y en el BIOS (y Linux no usa el BIOS).
"df" sólo funciona en sistemas de archivos, por lo que no, no se puede utilizar sin un sistema de archivos; sin un sistema de archivos, los datos que devolvería no existen. "du" opera en archivos individuales.
deaquí.
Respuesta2
stat
comando ejecutado con un punto de montaje como parámetro, muestra el tamaño del clúster del sistema de archivos en IO Block
la propiedad
stat /dev/shm/minifs-mounted
Mostrará
File: /dev/shm/minifs-mounted
Size: 1024 Blocks: 2 IO Block: 1024 directory
Device: 709h/1801d Inode: 2 Links: 3
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-12-27 14:03:15.000000000 -0300
Modify: 2022-12-27 14:01:50.000000000 -0300
Change: 2022-12-27 14:01:50.000000000 -0300
Birth: -
La información anterior pertenece a un sistema de archivos creado con
cd /dev/shm
dd if=/dev/zero bs=1M count=100 of=minifs.img
mkfs.ext4 -b 1024 ./minifs.img
mount -o loop minifs.img minifs-mounted
forzando un clúster de 1024 bytes de largo