NOMBRE¶
fdisk - Manipulador de tablas de particiones para Linux
SINOPSIS¶
fdisk [-b] [-u] [dispositivo]
fdisk -l [-b] [-u] [dispositivo ...]
fdisk -s partición ...
fdisk -v
DESCRIPCIÓN¶
Los discos duros pueden dividirse en uno o más discos lógicos llamados
las
particiones. Esta división se describe en la
tabla de
particiones y se encuentra en el sector número 0 del disco.
En el mundo BSD uno habla de `rodajas de disco' y de una `etiqueta de disco'.
Linux necesita por lo menos una partición, a saber, para su sistema de
ficheros raíz. Puede usar ficheros o particiones para el trasiego (swap),
pero las particiones son más eficientes. Así que, usualmente, uno
querrá una segunda partición dedicada al trasiego. En equipos
compatibles con Intel, la BIOS que arranca el sistema puede a menudo acceder
solamente a los primeros 1024 cilindros del disco. Por esta razón la
gente con discos grandes a menudo crean una tercera partición, de
sólo unos cuantos MB de grande, montada típicamente en
/boot,
para almacenar allí la imagen del núcleo y unos pocos ficheros
auxiliares que se necesitan en el momento del arranque, de forma que uno se
asegure de que estas cosas están accesibles para la BIOS. Por razones de
seguridad, facilidad de administración, copias de seguridad o pruebas,
uno puede querer hacer más particiones de las mínimas recomendadas
anteriormente.
fdisk (en la primera forma de llamarse) es un programa guiado por
menús para la creación y manipulación de tablas de
partición.
Entiende las tablas de partición tipo DOS y las etiquetas de disco de tipo
BSD o Sun.
El
dispositivo es usualmente 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
al disco entero.
La
partición es un nombre de
dispositivo seguido por un
número de partición. Por ejemplo,
/dev/hda1 es la primera
partición del primer disco duro IDE en el sistema. Los discos IDE pueden
tener hasta 63 particiones, los SCSI hasta 15. Vea también
/usr/src/linux/Documentation/devices.txt.
Una etiqueta de disco BSD/Sun puede describir 8 particiones, la tercera de las
cuales debería ser una partición del `disco entero'. No haga
comenzar una partición que realmente use su primer sector (como una
partición de trasiego) en el cilindro 0, pues eso destruiría la
etiqueta de disco.
Una tabla de partición tipo DOS puede describir un número ilimitado de
particiones. En el sector 0 hay sitio para la descripción de 4
particiones (llamadas `primarias'). Una de éstas puede ser una
partición extendida; ésta es como una caja que aloja particiones
lógicas, con descriptores que se encuentran en una lista enlazada de
sectores, cada uno de los cuales precede a las particiones lógicas
correspondientes. Las cuatro particiones primarias, presentes o no, cogen los
números del 1 al 4. Las particiones lógicas empiezan con el
número 5.
En una tabla de particiones de tipo DOS el sitio de comienzo y el tamaño de
cada partición se guarda de dos formas: como un número absoluto de
sectores (dados en 32 bits) y como una tripleta Cilindros/Cabezas/Sectores
(C/H/S) (dados en 10+8+6 bits). La primera forma está bien: con sectores
de 512 bytes, esto funcionará hasta 2 TB. La última forma tiene dos
problemas diferentes. Lo primero, estos campos C/H/S pueden llenarse sólo
cuando el número de cabezas y el de sectores por pista se conocen. En
segundo lugar, incluso si conocemos cuáles deberían ser estos
números, los 24 bits disponibles no bastan. DOS emplea solamente la forma
C/H/S, Windows usa ambas, Linux nunca utiliza C/H/S.
Si es posible,
fdisk obtendrá la geometría del disco
automáticamente. Ésta 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 algo que pueda describirse
de forma tan simplista como la forma Cilindros/Cabezas/Sectores), pero es la
geometría del disco que MS-DOS emplea para la tabla de particiones.
Usualmente todo marcha bien sin hacer nada más, y no hay problemas si Linux
es el único sistema en el disco. Sin embargo, si el disco tiene que
compartirse 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é
(falsa) geometría se requiere para la buena cooperación con otros
sistemas.
Cada vez que una tabla de particiones se muestra en la salida, se realiza una
comprobación de consistencia en las entradas de la tabla de particiones.
Esta comprobación verifica que los puntos de inicio y final físicos
y lógicos son idénticos, y que la partición empieza y acaba en
un límite de cilindro (excepto para la primera partición).
Algunas versiones de MS-DOS crean una primera partición que no empieza en
un límite de cilindro, sino en el sector 2 del primer cilindro. Las
particiones que comienzan en el cilindro 1 no pueden comenzar en un
límite de cilindro, pero esto es muy poco probable que cause la menor
dificultad a menos que tenga OS72 en su máquina.
Se realizan un sync() y una llamada ioctl() BLKRRPART (releer la tabla de
particiones del disco) antes de salir del programa cuando la tabla de
particiones ha sido actualizada. Hace tiempo solía ser necesario
rearrancar tras el empleo de fdisk. No creo que éste sea más el
caso; de hecho, rearrancar demasiado rápidamente puede provocar una
pérdida de datos aún no escritos. Observe que tanto el núcleo
como el hardware del disco pueden mantener datos en memoria tampón.
AVISO EN DOS 6.x¶
La orden FORMAT de DOS 6.x busca cierta 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 de la tabla de particiones. El FORMAT de DOS espera que
su FDISK borre los primeros 512 bytes del área de datos de una
partición cada vez que tenga lugar un cambio de tamaño. El FORMAT de
DOS mirará esta información extra incluso si se da la opción
/U; nosotros consideramos esto como un fallo del FORMAT y del FDISK de DOS.
La moraleja de esto es que si Ud. emplea cfdisk o fdisk para cambiar el
tamaño de una entrada de la tabla de particiones de DOS, entonces
también debería utilizar
dd para poner a cero los primeros
512 bytes de esa partición antes de emplear el FORMAT de DOS para
formatear la partición. Por ejemplo, si Ud. ha estado usando cfdisk para
crear una entrada en la tabla de particiones de DOS para /dev/hda1, entonces
(tras salir de cfdisk o fdisk y rearrancar Linux para que la información
de la tabla de particiones sea válida) Ud. debería emplear la orden
"dd if=/dev/zero of=/dev/hda1 bs=512 count=1" para poner a cero los
primeros 512 bytes de la partición.
SEA EXTREMADAMENTE CUIDADOSO si usa el programa
dd, puesto que un
pequeño error tecleando puede arruinar todos los datos de su disco.
Para los mejores resultados, Ud. siempre debería emplear un programa de
tabla de particiones específico del S.O. Por ejemplo, debería crear
particiones DOS con el programa FDISK de DOS y particiones de Linux con uno de
los programas de Linux fdisk o cfdisk.
OPCIONES¶
- -v
- Muestra el número de versión del programa
fdisk y acaba.
- -l
- Lista las tablas de particiones para /dev/hd[a-d],
/dev/sd[a-h], /dev/ed[a-d], y luego acaba.
- -b
- Cuando se listen tablas de particiones, también
muestra una columna `Begin' (Comienzo), como hacían versiones
anteriores de fdisk de forma predeterminada. (Nota: los valores de esta
columna, cuando se dan en unidades de número de cilindros, no pueden
ser mayores de 1023. No hay nada malo en que Begin y Start difieran, al
menos no en lo que respecta a Linux.)
- -u
- Cuando se listen tablas de particiones, da los tamaños
en número de sectores en vez de cilindros.
- -s partición
- Se muestra en la salida estándar el tamaño
de la partición (en bloques). Este valor se usa normalmente como un
argumento para el programa mkfs(8) para especificar el tamaño
de la partición que será formateada. (Versiones más
antiguas de fdisk harían esto solamente si el id. de la
partición fuera mayor que 10, en un intento de rehusar particiones
DOS; esta comprobación se ha quitado del programa.) Observe que
sfdisk -s da respuestas diferentes (esto es, correctas). Las
razones para la diferencia son que el núcleo y fdisk no
necesitan tener la misma idea sobre la numeración de las particiones
(p.ej., en el caso de que Ud. tenga rodajas BSD), y tienen ideas
diferentes sobre el tamaño de una partición extendida.
FALLOS¶
Hay algunos programas *disk por ahí. Cada uno tiene sus problemas y sus
cosas buenas. Pruébelos en el orden
cfdisk,
fdisk,
sfdisk.
AUTORES¶
A. V. Le Blanc (LeBlanc@mcc.ac.uk), Bernhard Fastenrath
(fasten@informatik.uni-bonn.de), Jakub Jelinek (jj@sunsite.mff.cuni.cz), y
muchos otros.