Tamaño de un bloque

Tamaño de un bloque

Tengo una unidad flash y quiero comprender sus propiedades tal como se generan en fdisk. Lo inserté y verifiqué dmesgy pude ver que estaba montado, así /dev/sdb1que corrí fdiskpara ver qué se informa./dev/sdb

mike@mike-Qosmio-X770:~$ sudo fdisk -l
[sudo] password for mike: 

Disk /dev/sdb: 127 MB, 127926272 bytes
16 heads, 32 sectors/track, 488 cylinders, total 249856 sectors
 Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6b3ee723

   Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1   *          32      249854      124911+   b  W95 FAT32

Por lo que puedo decir, la unidad es una unidad flash formateada en FAT32 de 128 MB y solo tiene 1 partición. Comienza en "32" (presumiblemente se usa 0-31 para algunos FTL).

Informa que un "sector" tiene un tamaño de 512 bytes y hay 249,856 sectores (122 MB en total).

Ahora estoy confundido acerca del número de cilindros, culata y sectores/pistas. Sé que los cilindros/culatas tienen que ver con los tipos de almacenamiento en disco magnético. ¿Tienen algún significado estos cuando se trata de un dispositivo flash? ¿O se trata simplemente de información "sobrante" fdiskque realmente no tiene significado para un medio de almacenamiento no magnético? Si es lo último, ¿por qué dar valores?

Segunda pregunta, ¿cuál es el "tamaño" de un bloque? :

Blocks
 124911+

¿Y cuál es el significado del +conteo posterior al bloque?

Respuesta1

Tamaño de un bloque

Una pista tridimensional (la misma pista en todos los discos) se llama cilindro. Cada pista está dividida en 63 sectores. Cada sector contiene 512 bytes de datos. Por lo tanto, el tamaño del bloque en la tabla de particiones es 64 cabezas * 63 sectores * 512 bytes er... dividido por 1024... :-)

Fuente:Particionar con fdisk

Cada vez que Linux hace referencia al tamaño del bloque, casi siempre es 1024 bytes.- Linux usa bloques de 1024 bytes como unidades primitivas para el caché del búfer y todo. Las únicas veces que no lo hace es en controladores específicos del sistema de archivos, ya que algunos sistemas de archivos usan otras granularidades (por ejemplo, en un sistema de archivos ext3 de tamaño normal, el El tamaño del bloque del sistema de archivos suele ser de 4096 bytes). Sin embargo, casi nunca puedes ver el tamaño del bloque del sistema de archivos; Casi la única forma de verlo realmente es ser un hacker del kernel o ejecutar programas como dumpe2fs.

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:

  1. Tamaño del bloque de hardware, "tamaño del sector"
  2. Tamaño de bloque del sistema de archivos, "tamaño de bloque"
  3. Tamaño del bloque de caché del búfer del kernel, "tamaño de bloque"
  4. 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. Recuerda que estos también suelen denominarse "bloques", sólo que me refiero a ellos comogruposaquí. El tamaño del clúster es lo que se devuelve en st_blksizeel 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 dusin las opciones -h o -H, devolverá cuántos de estos bloques ocupa un archivo. dftambién informará los tamaños en estos bloques, la columna "Bloques" en la fdisk -lsalida 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).

Fuente:Tamaño del bloque de disco de Linux... ayuda por favor

Sectores 0-31

Para responder a su pregunta sobre los primeros 32 sectores, como la unidad flash es un dispositivo con formato FAT, al observar la definición del sistema de archivos FAT, se puede ver que un sistema de archivos FAT se compone de cuatro secciones diferentes:

a) Los Sectores Reservados;
b) La región de la Tabla de asignación de archivos (FAT);
c) La Región del Directorio Raíz, y;
d) La Región de Datos.

Descripción general de grasas

Los sectores reservados, ubicados al principio, son (en este caso) los sectores 0-31:

El primer sector reservado (sector lógico 0) es elSector de arranque(también conocido como Registro de arranque por volumen (VBR)). Incluye un área llamadaBloque de parámetros del BIOS(con información básica del sistema de archivos, en particular su tipo y punteros a la ubicación de las otras secciones) y generalmente contiene el código del cargador de arranque del sistema operativo.

Se puede acceder a información importante del sector de arranque a través de una estructura del sistema operativo llamadaBloque de parámetros del variador (DPB)en DOS y OS/2.

El recuento total de sectores reservados se indica mediante un campo dentro del sector de arranque,y suele ser 32 en sistemas de archivos FAT32.

Para los sistemas de archivos FAT32, los sectores reservados incluyen unSector de información del sistema de archivosen el sector lógico 1 y aSector de arranque de respaldoen el sector lógico 6.

Mientras que muchos otros proveedores han seguido empleando una configuración de un solo sector (solo sector lógico 0) para el cargador de arranque, el código del sector de arranque de Microsoft ha crecido hasta generarse en los sectores lógicos 0 y 2 desde la introducción de FAT32, con el sector lógico 0 dependiendo de subrutinas en el sector lógico 2. El área del sector de arranque de respaldo también consta de tres sectores lógicos 6, 7 y 8. En algunos casos, Microsoft también utiliza el sector 12 del área de sectores reservados para un cargador de arranque extendido.


Solo información adicional, no relevante para la pregunta OP

La Región FAT, estará en el sector 32:

Por lo general, contiene dos copias (puede variar) de la tabla de asignación de archivos para verificar la redundancia, aunque rara vez se usa, incluso por las utilidades de reparación de discos.

Estos son mapas de la región de datos, que indican qué clústeres utilizan los archivos y directorios. En FAT12 y FAT16 siguen inmediatamente a los sectores reservados.

Normalmente, las copias adicionales se mantienen estrechamente sincronizadas en las escrituras y en las lecturas solo se utilizan cuando se producen errores en la primera FAT. En FAT32, es posible cambiar del comportamiento predeterminado y seleccionar una única FAT de las disponibles para utilizarla con fines de diagnóstico.

Los dos primeros grupos (clúster 0 y 1) del mapa contienen valores especiales.

La región del directorio raíz:

Esta es una tabla de directorios que almacena información sobre los archivos y directorios ubicados en el directorio raíz. Sólo se utiliza con FAT12 y FAT16 e impone en el directorio raíz un tamaño máximo fijo que se asigna previamente en el momento de la creación de este volumen. FAT32 almacena el directorio raíz en la región de datos, junto con archivos y otros directorios, lo que le permite crecer sin esa restricción. Por tanto, para FAT32, la región de datos comienza aquí.

La región de datos:

Aquí es donde se almacenan los datos reales de archivos y directorios y ocupan la mayor parte de la partición. Tradicionalmente, las partes no utilizadas de la región de datos se inicializan con un valor de relleno de 0xF6 según la tabla de parámetros de disco (DPT) de INT 1Eh durante el formateo en máquinas compatibles con IBM, pero también se usan en Atari Portfolio. Los disquetes CP/M de 8 pulgadas normalmente venían preformateados con un valor de 0xE5; A través de Digital Research, este valor también se utilizó en disquetes formateados en Atari ST. Amstrad usó 0xF4 en su lugar. Algunos formateadores modernos limpian los discos duros con un valor de 0x00, mientras que en los discos flash se utiliza un valor de 0xFF, el valor predeterminado de un bloque flash no programado, para reducir el desgaste. Este último valor también se suele utilizar en discos ROM. (Algunas herramientas de formato avanzadas permiten configurar el byte de relleno del formato).

El tamaño de los archivos y subdirectorios se puede aumentar arbitrariamente (siempre que haya grupos libres) simplemente agregando más enlaces a la cadena del archivo en el FAT. Sin embargo, tenga en cuenta que los archivos se asignan en unidades de clústeres, por lo que si un archivo de 1 KiB reside en un clúster de 32 KiB, se desperdician 31 KiB.

FAT32 normalmente comienza la tabla del directorio raíz en el grupo número 2: el primer grupo de la región de datos.

Fuente:Wikipedia - Tabla de asignación de archivos

Respuesta2

Supongo que los sectores 1-31 están reservados para información de arranque e información de la tabla de particiones. La partición /dev/sdb1 comienza en el bloque/sector 32 y llega a 249854. Es una partición lógica en el disco físico.

El 124911+ le proporciona el recuento de bloques entre 32 y 249854.

Acerca de la geometría del disco, esto es lo que man fdsikdice al respecto:

Si es posible, fdisk obtendrá la geometría del disco automáticamente. Esta no es necesariamente la geometría física del disco (de hecho, los discos modernos no tienen nada parecido a una geometría física, ciertamente no es algo que pueda describirse en forma simplista de Cilindros/Cabezales/Sectores), pero es la geometría del disco que MS-DOS usos para la tabla de particiones.

Por lo general, todo va bien de forma predeterminada y no hay problemas si Linux es el único sistema en el disco. Sin embargo, si el disco debe compartirse con otros sistemas operativos, suele ser una buena idea dejar que un fdisk de otro sistema operativo cree al menos una partición. Cuando Linux arranca, mira la tabla de particiones e intenta deducir qué geometría (falsa) se requiere para una buena cooperación con otros sistemas.

información relacionada