¿Qué significa la salida de fdisk?

10

Tengo una unidad flash y quiero entender las propiedades de la misma fdisk. Lo inserté y verifiqué dmesgy pude ver que estaba montado, /dev/sdb1así que 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 con formato FAT32 de 128 MB, solo tiene 1 partición. Comienza en "32" (presumiblemente se usa 0-31 para algunos FTL).

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

Ahora estoy confundido sobre el Cilindro, la cabeza y el recuento de sectores / pistas. Sé que los cilindros / culatas tienen que ver con los tipos de almacenamiento en disco magnético. ¿Hay algún significado para estos cuando se trata de un dispositivo flash? ¿O es solo información "sobrante" de la fdiskque realmente no tiene sentido un medio de almacenamiento no magnético? Si es más tarde, ¿por qué dar valores?

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

Blocks
 124911+

¿Y cuál es el significado de la cuenta +después del bloqueo?

Miguel
fuente
1
Buena pregunta, +1, nunca antes lo había pensado. ¿Qué quieres decir con "FTL"? Para mí eso significa más rápido que la luz, me imagino que te estás refiriendo a otra cosa.
terdon el
1
@terdon - FTL (capa de traducción Flash) lo que hace la nivelación de la ballena y otras cosas
Mike

Respuestas:

3

Tamaño de un bloque

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

Fuente: Particionamiento con fdisk

Cada vez que Linux se refiere al tamaño de bloque, casi siempre es de 1024 bytes : Linux usa bloques de 1024 bytes como sus unidades primitivas para la memoria 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 otros granularidades (por ejemplo, en un sistema de archivos ext3 de tamaño normal, el tamaño del bloque del sistema de archivos suele ser de 4096 bytes). Sin embargo, casi nunca puede ver el tamaño del bloque del sistema de archivos; Casi la única forma de verlo es ser un hacker del núcleo 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 de bloque de hardware, "tamaño de 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 núcleo, "tamaño de bloque"
  4. Tamaño del bloque de la mesa de partición, "tamaño del cilindro"

Para diferenciar entre el tamaño de bloque del sistema de archivos y el tamaño de bloque de la memoria 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 se ocupa el hardware. Esto varía entre diferentes tipos de hardware, pero la mayoría del hardware estilo PC (disquetes, discos IDE, etc.) usa 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 4096 bytes, pero puede verificarlo con dumpe2fs. Recuerde que estos también se suelen llamar " bloques ", solo que aquí me refiero a ellos como grupos . 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 de bloque es el tamaño de las memorias intermedias que el núcleo utiliza internamente cuando almacena en caché sectores que se han leído desde dispositivos de almacenamiento (de ahí el nombre de "dispositivo de bloque"). Dado que esta es la forma más primitiva de almacenamiento en el núcleo, todos los tamaños de clúster del sistema de archivos deben ser múltiplos de esto. Este tamaño de bloque también es 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 se conoce comúnmente como "bloque". Dos sectores de disco encajan en cada bloque.

El tamaño del cilindro solo se usa en la tabla de particiones y por el BIOS (y el BIOS no lo usa Linux).

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

Sectores 0-31

Para responder a su pregunta sobre los primeros 32 sectores, dado que la unidad flash es un dispositivo con formato FAT y luego ver 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 Tabla de asignación de archivos (FAT);
c) la región del directorio raíz, y;
d) La región de datos.

Resumen de grasa

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

El primer sector reservado (sector lógico 0) es el Sector de inicio (también conocido como Registro de inicio de volumen (VBR) ). Incluye un área llamada Bloque 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 llamada Drive Parameter Block (DPB) en DOS y OS / 2.

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

Para los sistemas de archivos FAT32, los sectores reservados incluyen un Sector de información del sistema de archivos en el sector lógico 1 y un Sector de arranque de respaldo en el sector lógico 6.

Mientras que muchos otros proveedores han seguido empleando una configuración de un solo sector (solo el sector lógico 0) para el cargador de arranque, el código del sector de arranque de Microsoft ha crecido hasta generar 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 consta de tres sectores lógicos 6, 7 y 8 también. En algunos casos, Microsoft también usa el sector 12 del área de sectores reservados para un cargador de arranque extendido.


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

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

Esto generalmente contiene dos copias (pueden variar) de la Tabla de asignación de archivos en aras de la verificación de redundancia, aunque rara vez se utiliza, incluso por las utilidades de reparación de discos.

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

Por lo general, las copias adicionales se mantienen en estrecha sincronización en las escrituras, y en las lecturas solo se usan 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 fines de diagnóstico.

Los primeros dos grupos (grupo 0 y 1) en el mapa contienen valores especiales.

La región del directorio raíz :

Esta es una tabla de directorio que almacena información sobre los archivos y directorios ubicados en el directorio raíz. Solo se usa con FAT12 y FAT16, e impone en el directorio raíz un tamaño máximo fijo que se asigna previamente en 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 lo tanto, para FAT32, la región de datos comienza aquí.

La región de datos :

Aquí es donde se almacenan los datos reales del archivo y el directorio 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) INT 1Eh durante el formato en máquinas compatibles con IBM, pero también se utilizan en la cartera de Atari. Los disquetes CP / M de 8 pulgadas generalmente vienen formateados previamente con un valor de 0xE5; a través de Digital Research, este valor también se usó en disquetes formateados Atari ST. Amstrad usó 0xF4 en su lugar. Algunos formateadores modernos limpian los discos duros con un valor de 0x00, mientras que un valor de 0xFF, el valor predeterminado de un bloque de flash no programado, se usa en discos de flash para reducir el desgaste. El último valor también se usa típicamente en discos ROM. (Algunas herramientas de formato avanzadas permiten configurar el byte de relleno de formato).

El tamaño de los archivos y subdirectorios se puede aumentar de forma arbitraria (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 grupos, por lo que si un archivo de 1 KiB reside en un grupo de 32 KiB, se desperdician 31 KiB.

FAT32 generalmente comienza la tabla de directorio raíz en el clúster número 2: el primer clúster de la región de datos.

Fuente: Wikipedia - Tabla de asignación de archivos

Greenonline
fuente
1

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

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

Acerca de la Geometría de Disco aquí está 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 del disco físico (de hecho, los discos modernos realmente no tienen nada como una geometría física, ciertamente no es algo que pueda describirse en forma simplista de Cilindros / Cabezas / Sectores), pero es la geometría del disco que MS-DOS utiliza para la tabla de particiones.

Por lo general, todo va bien por defecto, y no hay problemas si Linux es el único sistema en el disco. Sin embargo, si el disco debe compartirse con otros sistemas operativos, a menudo es una buena idea dejar que un disco de otro sistema operativo haga 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.

J baron
fuente