El comando Linux – fdisk


fdisk – Manipulador de tablas de particiones para Linux

Sinopsis

fdisk[-u][-b sectorsize ] [-C cyls ][-].H cabezas ][-S sectas ] dispositivo

fdisk -l[-u] [ device … ]

fdisk -s partición …

fdisk -v

Descripción

Los discos duros se pueden dividir en uno o más discos lógicos llamados particiones. Esta división se describe en la tabla de particiones que se encuentra en el sector 0 del disco.

En el mundo BSD, uno habla de “rebanadas de disco” y de una “etiqueta de disco”.

Linux necesita al menos una partición, es decir, para su sistema de ficheros raíz. Puede usar archivos swap y/o particiones swap, pero esta última es más eficiente. Por lo tanto, normalmente uno querrá una segunda partición Linux dedicada como partición swap. En hardware compatible con Intel, la BIOS que arranca el sistema a menudo sólo puede acceder a los primeros 1024 cilindros del disco. Por esta razón, las personas con discos grandes a menudo crean una tercera partición, sólo unos pocos MB de tamaño grande, normalmente montados en /boot, para almacenar la imagen del núcleo y algunos archivos auxiliares necesarios en el momento del arranque, para asegurarse de que este material es accesible a la BIOS. Puede haber razones de seguridad, facilidad de administración y copia de seguridad, o pruebas, para usar más que el número mínimo de particiones.

fdisk (en la primera forma de invocación) es un programa basado en menús para la creación y manipulación de tablas de particiones. Entiende las tablas de particiones de tipo DOS y las etiquetas de tipo BSD o SUN.

El dispositivo suele ser uno de los siguientes:

/dev/hda /dev/hdb /dev/sda /dev/sdb

(/dev/hd[a-h] para discos IDE, /dev/sd[a-p] para discos SCSI, /dev/ed[a-d] para discos ESDI, /dev/xd[ab] para discos XT). Un nombre de dispositivo se refiere a todo el disco.

La partición es un nombre de dispositivo seguido de un número de partición. Por ejemplo, /dev/hda1 es la primera partición en el primer disco duro IDE del sistema. Los discos pueden tener hasta 15 particiones. Véase también /usr/src/linux/Documentation/devices.txt.

Una etiqueta de tipo BSD/SUN puede describir 8 particiones, la tercera de las cuales debe ser una partición de “disco entero”. No inicie una partición que realmente utilice su primer sector (como una partición swap) en el cilindro 0, ya que esto destruirá la disklabel.

Una disklabel de tipo IRIX/SGI puede describir 16 particiones, la undécima de las cuales debe ser una partición completa de `volumen’, mientras que la novena debe ser etiquetada como `cabecera de volumen’. El encabezado de volumen también cubrirá la tabla de particiones, es decir, comienza en el bloque cero y se extiende por defecto sobre cinco cilindros. El espacio restante en el encabezado del volumen puede ser utilizado por las entradas del directorio del encabezado. Ninguna partición puede solaparse con el encabezado del volumen. Tampoco cambie su tipo y haga algún sistema de archivos en él, ya que perderá la tabla de particiones. Utilice este tipo de etiqueta sólo cuando trabaje con Linux en máquinas IRIX/SGI o en discos IRIX/SGI bajo Linux.

Una tabla de particiones de tipo DOS puede describir un número ilimitado de particiones. En el sector 0 hay espacio para la descripción de 4 particiones (llamadas “primarias”). Una de ellas puede ser una partición extendida; se trata de una caja que contiene particiones lógicas, con descriptores que se encuentran en una lista enlazada de sectores, cada uno precediendo a las particiones lógicas correspondientes. Las cuatro particiones primarias, presentes o no, obtienen los números del 1 al 4. Las particiones lógicas comienzan a numerar desde 5.

En una tabla de particiones tipo DOS el offset inicial y el tamaño de cada partición se almacenan de dos maneras: como un número absoluto de sectores (dado en 32 bits) y como un Cilindros/Cabezas/Sectores triple (dado en 10+8+6 bits). El primero está bien – con sectores de 512 bytes, esto funcionará hasta 2 TB. Este último tiene dos problemas diferentes. En primer lugar, estos campos C/H/S sólo pueden rellenarse cuando se conoce el número de cabezales y el número de sectores por pista. En segundo lugar, aunque sepamos cuáles deberían ser estos números, los 24 bits disponibles no son suficientes. DOS sólo usa C/H/S, Windows usa ambos, Linux nunca usa C/H/S.

Si es posible, fdisk obtendrá la geometría del disco automáticamente. Esto no es necesariamente la geometría física del disco (de hecho, los discos modernos no tienen realmente nada como una geometría física, ciertamente no es algo que se pueda describir en la 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 tiene que ser compartido con otros sistemas operativos, a menudo es una buena idea dejar que un fdisk 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.

Cada vez que se imprime una tabla de particiones, se realiza una verificación de consistencia en las entradas de la tabla de particiones. Esta comprobación verifica que los puntos de inicio y final físico y lógico son idénticos y que la partición comienza y termina en el límite de un cilindro (excepto en la primera partición).

Algunas versiones de MS-DOS crean una primera partición que no comienza en el límite de un cilindro, sino en el sector 2 del primer cilindro. Las particiones que comienzan en el cilindro 1 no pueden comenzar en el límite de un cilindro, pero es poco probable que esto cause dificultades a menos que tenga OS/2 en su máquina.

Un sync() y un BLKRRPART ioctl() (releer la tabla de particiones desde el disco) se realizan antes de salir cuando la tabla de particiones ha sido actualizada. Hace mucho tiempo era necesario reiniciar después del uso de fdisk. No creo que este ya no sea el caso – de hecho, reiniciar demasiado rápido podría causar la pérdida de datos que aún no se han escrito. Tenga en cuenta que tanto el kernel como el hardware del disco pueden almacenar datos en el búfer.

Dos 6.x Advertencia

El comando DOS 6.x FORMATO busca alguna información en el primer sector del área de datos de la partición y trata esta información como más fiable que la información de la tabla de particiones. DOS FORMATO espera que DOS FDISK borre los primeros 512 bytes del área de datos de una partición siempre que se produzca un cambio de tamaño. DOS FORMATO mirará esta información adicional incluso si se da la bandera /U — consideramos esto un error en DOS FORMATO y DOS FDISK.

La conclusión es que si usa cfdisk o fdisk para cambiar el tamaño de una entrada de tabla de partición DOS, entonces también debe usar dd para poner a cero los primeros 512 bytes de esa partición antes de usar DOS FORMAT para formatear la partición. Por ejemplo, si estaba usando cfdisk para hacer una entrada en la tabla de particiones DOS para /dev/hda1, entonces (después de salir de fdisk o cfdisk y reiniciar Linux para que la información de la tabla de particiones sea válida) usaría el comando “dd if=/dev/zero of=/dev/hda1 bs=512 count=1” para poner a cero los primeros 512 bytes de la partición.

TENGA MUCHO CUIDADO si utiliza el comando dd , ya que un pequeño error tipográfico puede hacer que todos los datos de su disco sean inútiles.

Para obtener los mejores resultados, siempre debe utilizar un programa de tabla de particiones específico del sistema operativo. Por ejemplo, debería hacer particiones DOS con el programa DOS FDISK y particiones Linux con el programa Linux fdisk o Linux cfdisk.

Opciones

-b sectorsize

Especifique el tamaño del sector del disco. Los valores válidos son 512, 1024 o 2048. (Los kernels recientes conocen el tamaño del sector. Use esto sólo en kernels viejos o para anular las ideas del kernel.)

-C cyls

Especifique el número de cilindros del disco. No tenemos idea de por qué alguien querría hacerlo.

-H cabezas

Especifique el número de cabezales del disco. (No el número físico, por supuesto, sino el número usado para las tablas de particiones.) Los valores razonables son 255 y 16.

-S sects

Especifique el número de sectores por pista del disco. (No el número físico, por supuesto, sino el número usado para las tablas de particiones.) Un valor razonable es 63.

-l

Enumere las tablas de particiones para los dispositivos especificados y, a continuación, salga. Si no se dan dispositivos, se utilizan los mencionados en /proc/partitions (si existen).

-u

Al enumerar las tablas de particiones, indique los tamaños en sectores en lugar de cilindros.

-s partición

El tamaño de la partición (en bloques) se imprime en la salida estándar.

-v

Imprimir el número de versión del programa fdisk y salir.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *