Particiones con fdisk de Linux

 

Disco 0: disco duro IDE

# /sbin/fdisk /dev/hda         [En el disco 0, Windows sólo ha reconocido los sistemas de archivos de las unidades C: y :D]

El número de cilindros para este disco está establecido en 14946.
No hay nada malo en ello, pero es mayor que 1024, y en algunos casos
podría causar problemas con:
1) software que funciona en el inicio (p.ej. versiones antiguas de LILO)
2) software de arranque o particionamiento de otros sistemas operativos
   (p.ej. FDISK de DOS, FDISK de OS/2)

Orden (m para obtener ayuda): m         [Visualizo el menú de opciones]
Orden  Acción
   a   Conmuta el indicador de iniciable
   b   Modifica la etiqueta de disco bsd
   c   Conmuta el indicador de compatibilidad con DOS
   d   Suprime una partición
   l   Lista los tipos de particiones conocidos
   m   Imprime este menú
   n   Añade una nueva partición
   o   Crea una nueva tabla de particiones DOS vacía
   p   Imprime la tabla de particiones
   q   Sale sin guardar los cambios
   s   Crea una nueva etiqueta de disco Sun
   t   Cambia el identificador de sistema de una partición
   u   Cambia las unidades de visualización/entrada (cilindros o sectores)
   v   Verifica la tabla de particiones
   w   Escribe la tabla en el disco y sale         PELIGRO !
   x   Funciones adicionales (sólo para usuarios avanzados)

Orden (m para obtener ayuda): x         [Voy a echarle un vistazo al menú de opciones avanzadas]

Orden avanzada (m para obtener ayuda): m         [A ver que hay por aquí...]
Orden  Acción
   b   Mueve el principio de los datos de una partición
   c   Cambia el número de cilindros
   d   Imprime los datos en bruto de la tabla de particiones
   e   Lista las particiones extendidas
   f   Corrige el orden de las particiones
   g   Crea una tabla de particiones IRIX (SGI)
   h   Cambia el número de cabezas
   m   Imprime este menú
   p   Imprime la tabla de particiones
   q   Sale sin guardar los cambios
   r   Vuelve al menú principal
   s   Cambia el número de sectores por pista
   v   Verifica la tabla de particiones
   w   Escribe la tabla en el disco y sale         PELIGRO !

Orden avanzada (m para obtener ayuda): r         [Regreso al menú principal]

Orden (m para obtener ayuda): p         [Veamos la tabla de particiones...]

Disco /dev/hda: 122.9 GB, 122942324736 bytes
255 cabezas, 63 sectores/pista, 14946 cilindros       [255 cabezas !!! eso quiere decir que tengo 128 platos ???]
Unidades = cilindros de 16065 * 512 = 8225280 bytes      [NO, la BIOS accede a los sectores a través de LBA en lugar de utilizar]
                                                         [la geometría CHS, pues por BIOS sólo admitia (Cylinders:1024, Heads:256, Sectors:65), es decir 8 GB]
Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/hda1   *           1        1397    11214472+   c  W95 FAT32 (LBA)
/dev/hda2            1471       14947   108248616    5  Extendida
/dev/hda3            1397        1470      593271   82  Linux swap / Solaris
/dev/hda5            1471        2730    10110712+  83  Linux
/dev/hda6            2730       14947    98137840+   b  W95 FAT32

Las entradas de la tabla de particiones no están en el orden del disco

Orden (m para obtener ayuda): v         [La verifico, para comprobar que no tiene errores]
9132 sectores no asignados         [Se han perdido 4,5 MB, no es mucho en un disco de 120 GB - ¿Se particionó por Megas? - ¿Son sectores defectuosos?]
                                   [Posiblemente el problema sea la emulación de CHS por LBA. Observar el signo '+' que aparece el algunos listados de bloques: 11214472+]
                                   [Desde el menú de opciones avanzadas (opción x) puedo arriesgarme a reasignar el número de cilindors, cabezas y sectores/pista]
Orden (m para obtener ayuda): q         [Salgo de fdisk para ver otro disco]

Disco 1: otro disco duro IDE

# /sbin/fdisk /dev/hdb         [Windows no reconoció ninguna unidad, porque todas están formateadas con el sistema de archivos Unix/Linux]

El número de cilindros para este disco está establecido en 38792.
No hay nada malo en ello, pero es mayor que 1024, y en algunos casos
podría causar problemas con:
1) software que funciona en el inicio (p.ej. versiones antiguas de LILO)
2) software de arranque o particionamiento de otros sistemas operativos
   (p.ej. FDISK de DOS, FDISK de OS/2)

Orden (m para obtener ayuda): p         [Veo la tabla de particiones...]

Disco /dev/hdb: 20.0 GB, 20020396032 bytes
16 cabezas, 63 sectores/pista, 38792 cilindros
Unidades = cilindros de 1008 * 512 = 516096 bytes

Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/hdb1   *           1       10000     5039968+  83  Linux
/dev/hdb2           10001       38792    14511168   83  Linux

Orden (m para obtener ayuda): v         [Verifico...]
62 sectores no asignados         [31KB  :'(]

Orden (m para obtener ayuda): q         [Y salgo]

Disco 2: es una memoria USB

# /sbin/fdisk /dev/sda1         [1er dispositivo SCSI: Un Pen Drive USB]


Orden (m para obtener ayuda): p         [Veamos la tabla de particiones...]

Disco /dev/sda1: 255 MB, 255729664 bytes
8 cabezas, 62 sectores/pista, 1007 cilindros         [Una memoria RAM con cabezas !!! - No: se engaña a la BIOS para que la confunda con un disco duro]
Unidades = cilindros de 496 * 512 = 253952 bytes         [En cada cilindro hay 253952/210 = 248 KB]

  Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema         [No tiene tabla de particiones - parece obvio, pues en el fondo sigue siendo una RAM]

         [No obstante, vamos a escribir en su sector 0 una tabla de particiones con fdisk]
         [Vamos a crear 5 particiones, cada una con 100 cilindros (~25 MB) y lo que sobre pa' la última]

Orden (m para obtener ayuda): n         [Creamos una nueva partición ...]
Acción de la orden
e   Partición extendida
   p   Partición primaria (1-4)
p                [... primaria]
Número de partición (1-4): 1
Primer cilindro (1-1007, valor predeterminado 1): [pulso INTRO]
Se está utilizando el valor predeterminado 1
Último cilindro o +tamaño o +tamañoM o +tamañoK (1-1007, valor predeterminado 1007): 100

Orden (m para obtener ayuda): p         [Voy a verla...]

Disco /dev/sda1: 255 MB, 255729664 bytes
8 cabezas, 62 sectores/pista, 1007 cilindros
Unidades = cilindros de 496 * 512 = 253952 bytes

  Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1p1               1         100       24769   83  Linux

Orden (m para obtener ayuda): n         [Vamos a por la segunda partición ...]
Acción de la orden
e   Partición extendida
   p   Partición primaria (1-4)
p                                 [... también primaria]
Número de partición (1-4): 2
Primer cilindro (101-1007, valor predeterminado 101):
Se está utilizando el valor predeterminado 101
Último cilindro o +tamaño o +tamañoM o +tamañoK (101-1007, valor predeterminado 1007): 200

Orden (m para obtener ayuda): n         [Marchando una tercera partición ...]
Acción de la orden
e   Partición extendida
   p   Partición primaria (1-4)
p                                 [... primaria]
Número de partición (1-4): 3
Primer cilindro (201-1007, valor predeterminado 201):
Se está utilizando el valor predeterminado 201
Último cilindro o +tamaño o +tamañoM o +tamañoK (201-1007, valor predeterminado 1007): 300

Orden (m para obtener ayuda): n         [La 4a partición ...]
Acción de la orden
e   Partición extendida
   p   Partición primaria (1-4)
p                                 [también primaria, ya llevo 4 particiones primarias]
Se ha seleccionado la partición 4
Primer cilindro (301-1007, valor predeterminado 301):
Se está utilizando el valor predeterminado 301
Último cilindro o +tamaño o +tamañoM o +tamañoK (301-1007, valor predeterminado 1007): 400

Orden (m para obtener ayuda): p          [sólo me quedan 2. Voy a echar un vistazo a la tabla de particiones...]

Disco /dev/sda1: 255 MB, 255729664 bytes
8 cabezas, 62 sectores/pista, 1007 cilindros
Unidades = cilindros de 496 * 512 = 253952 bytes

  Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1p1               1         100       24769   83  Linux
/dev/sda1p2             101         200       24800   83  Linux
/dev/sda1p3             201         300       24800   83  Linux
/dev/sda1p4             301         400       24800   83  Linux


Orden (m para obtener ayuda): n          [Voy a por la 5a]
Primero debe suprimir alguna partición y añadir una partición extendida          [¡Ah claro!, que las hice todas primarias]

Orden (m para obtener ayuda): d          [borro la última partición ...]
Número de partición (1-5): 4

Orden (m para obtener ayuda): n          [... y la creo...]
Acción de la orden
e   Partición extendida
   p   Partición primaria (1-4)
e                                        [... EXTENDIDA]
Se ha seleccionado la partición 4
Primer cilindro (301-1007, valor predeterminado 301):
Se está utilizando el valor predeterminado 301
Último cilindro o +tamaño o +tamañoM o +tamañoK (301-1007, valor predeterminado 1007): 1007        [Aprovecho todos los cilindros]

Orden (m para obtener ayuda): p        [veamos ...]

Disco /dev/sda1: 255 MB, 255729664 bytes
8 cabezas, 62 sectores/pista, 1007 cilindros
Unidades = cilindros de 496 * 512 = 253952 bytes

  Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1p1               1         100       24769   83  Linux
/dev/sda1p2             101         200       24800   83  Linux
/dev/sda1p3             201         300       24800   83  Linux
/dev/sda1p4             301        1007      175336    5  Extendida


        [Ahora en la extendida debo crear las unidades lógicas. Allá vamos...]


Orden (m para obtener ayuda): n
Primer cilindro (301-1007, valor predeterminado 301):
Se está utilizando el valor predeterminado 301
Último cilindro o +tamaño o +tamañoM o +tamañoK (301-1007, valor predeterminado 1007): 400

Orden (m para obtener ayuda): n
Primer cilindro (401-1007, valor predeterminado 401):
Se está utilizando el valor predeterminado 401
Último cilindro o +tamaño o +tamañoM o +tamañoK (401-1007, valor predeterminado 1007):
Se está utilizando el valor predeterminado 1007

Orden (m para obtener ayuda): p

Disco /dev/sda1: 255 MB, 255729664 bytes
8 cabezas, 62 sectores/pista, 1007 cilindros
Unidades = cilindros de 496 * 512 = 253952 bytes

  Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1p1               1         100       24769   83  Linux
/dev/sda1p2             101         200       24800   83  Linux
/dev/sda1p3             201         300       24800   83  Linux
/dev/sda1p4             301        1007      175336    5  Extendida
/dev/sda1p5             301         400       24769   83  Linux
/dev/sda1p6             401        1007      150505   83  Linux


         [¡Ya están todas!]
         [Hagamos que la primera (sda1p1) y última patición (sda1p6) sean activas]


Orden (m para obtener ayuda): a         [Conmutamos el indicador de iniciable de la 1a]
Número de partición (1-6): 1

Orden (m para obtener ayuda): a
Número de partición (1-6): 6

Orden (m para obtener ayuda): p

Disco /dev/sda1: 255 MB, 255729664 bytes
8 cabezas, 62 sectores/pista, 1007 cilindros
Unidades = cilindros de 496 * 512 = 253952 bytes

  Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1p1   *           1         100       24769   83  Linux
/dev/sda1p2             101         200       24800   83  Linux
/dev/sda1p3             201         300       24800   83  Linux
/dev/sda1p4             301        1007      175336    5  Extendida
/dev/sda1p5             301         400       24769   83  Linux
/dev/sda1p6   *         401        1007      150505   83  Linux


         [Voy a cambiar unos cuantos sistemas de archivos]
         [Quiero que las 2 primeras particiones sean FAT32, y la tercera SWAP]


Orden (m para obtener ayuda): l         [Listamos los identificativos hexadecimales para los sistemas de archivos]

 0  Vacía              1e  Hidden W95 FAT16   80  Old Minix          be  arranque de Sol
 1  FAT12              24  NEC DOS            81  Minix / old Lin    bf  Solaris
 2  XENIX root         39  Plan 9             82  Linux swap / So    c1  DRDOS/sec (FAT-
 3  XENIX usr          3c  PartitionMagic     83  Linux              c4  DRDOS/sec (FAT-
 4  FAT16 <32M         40  Venix 80286        84  Unidad C: ocult    c6  DRDOS/sec (FAT-
 5  Extendida          41  PPC PReP Boot      85  Linux extendida    c7  Syrinx
 6  FAT16              42  SFS                86  Conjunto de vol    da  Datos sin SF
 7  HPFS/NTFS          4d  QNX4.x             87  Conjunto de vol    db  CP/M / CTOS / .
 8  AIX                4e  QNX4.x segunda     88  Linux plaintext    de  Utilidad Dell
 9  AIX bootable       4f  QNX4.x tercera     8e  Linux LVM          df  BootIt
 a  OS/2 Boot Manag    50  OnTrack DM         93  Amoeba             e1  DOS access
 b  W95 FAT32          51  OnTrack DM6 Aux    94  Amoeba BBT         e3  DOS R/O
 c  W95 FAT32 (LBA)    52  CP/M               9f  BSD/OS             e4  SpeedStor
 e  W95 FAT16 (LBA)    53  OnTrack DM6 Aux    a0  Hibernación de     eb  BeOS fs
 f  W95 Ext'd (LBA)    54  OnTrackDM6         a5  FreeBSD            ee  EFI GPT
10  OPUS               55  EZ-Drive           a6  OpenBSD            ef  EFI (FAT-12/16/
11  FAT12 oculta       56  Golden Bow         a7  NeXTSTEP           f0  inicio Linux/PA
12  Compaq diagnost    5c  Priam Edisk        a8  UFS de Darwin      f1  SpeedStor
14  FAT16 oculta <32M  61  SpeedStor          a9  NetBSD             f4  SpeedStor
16  FAT16 oculta       63  GNU HURD o SysV    ab  arranque de Dar    f2  DOS secondary
17  HPFS/NTFS oculta   64  Novell Netware     b7  BSDI fs            fd  Linux raid auto
18  SmartSleep de A    65  Novell Netware     b8  BSDI swap          fe  LANstep
1b  Hidden W95 FAT32   70  DiskSecure Mult    bb  Boot Wizard hid    ff  BBT
1c  Hidden W95 FAT32   75  PC/IX

Orden (m para obtener ayuda): t         [El comando t nos permite cambiar el identificador del sistema de una partición]
Número de partición (1-6): 1
Código hexadecimal (escriba L para ver los códigos): b
Se ha cambiado el tipo de sistema de la partición 1 por b (W95 FAT32)

Orden (m para obtener ayuda): t
Número de partición (1-6): 2
Código hexadecimal (escriba L para ver los códigos): b
Se ha cambiado el tipo de sistema de la partición 2 por b (W95 FAT32)

Orden (m para obtener ayuda): t
Número de partición (1-6): 3
Código hexadecimal (escriba L para ver los códigos): 82
Se ha cambiado el tipo de sistema de la partición 3 por 82 (Linux swap / Solaris)

Orden (m para obtener ayuda): p         [Veamos como queda la tabla de particiones...]

Disco /dev/sda1: 255 MB, 255729664 bytes
8 cabezas, 62 sectores/pista, 1007 cilindros
Unidades = cilindros de 496 * 512 = 253952 bytes

  Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1p1   *           1         100       24769    b  W95 FAT32
/dev/sda1p2             101         200       24800    b  W95 FAT32
/dev/sda1p3             201         300       24800   82  Linux swap / Solaris
/dev/sda1p4             301        1007      175336    5  Extendida
/dev/sda1p5             301         400       24769   83  Linux
/dev/sda1p6   *         401        1007      150505   83  Linux



         [Se acabó. Escribo en la tabla de particiones del dispositivo y salgo:]


Orden (m para obtener ayuda): w         [¿Estás completamente seguro?, Si no, escribe una q (quit)]
¡Se ha modificado la tabla de particiones!

Llamando a ioctl() para volver a leer la tabla de particiones.

ATENCIóN: La relectura de la tabla de particiones falló con el
error 22: Argumento inválido.
El núcleo todavía usa la tabla antigua.
La nueva tabla se usará en el próximo reinicio.

ATENCIóN: Si ha creado o modificado alguna de las
particiones DOS 6.x, consulte la página man de fdisk
para ver información adicional.
Se están sincronizando los discos.

         [Se produjo el error 22: Argumento inválido ¿qué es eso? Es el mismo error que se produce con disquetes]
         [La otra información es normal, nos informa de que en el próximo reinicio (remonte del dispositivo), utilizará la nueva tabla]

         [Reinicio el dispositivo (umount/mount) ...]

         [¡Pero todo sigue igual!]

		# df /dev/sda1
		S.ficheros         Bloques de 1K   Usado    Dispon Uso% Montado en
		/dev/sda1               248748        94    248654   1% /media/PEN_DRIVE
		# cat /proc/partitions
		major minor  #blocks  name

		   3     0  120060864 hda
		   3     1   11214472 hda1
		   3     2          1 hda2
		   3     3     593271 hda3
		   3     5   10110712 hda5
		   3     6   98137840 hda6
		   3    64   19551168 hdb
		   3    65    5039968 hdb1
		   3    66   14511168 hdb2
		   8     0     250880 sda
		   8     1     249736 sda1

         [No se ha borrado ni un sólo fichero del lápiz USB. Lo único que hemos hecho es escribir en el sector 0 una tabla]
         [de particiones que no utiliza para nada el sistema operativo.]


         [Con fdisk podemos comprobar que la tabla sigue ahí:]


Orden (m para obtener ayuda): p

Disco /dev/sda1: 255 MB, 255729664 bytes
8 cabezas, 62 sectores/pista, 1007 cilindros
Unidades = cilindros de 496 * 512 = 253952 bytes

  Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1p1   *           1         100       24769    b  W95 FAT32
/dev/sda1p2             101         200       24800    b  W95 FAT32
/dev/sda1p3             201         300       24800   82  Linux swap / Solaris
/dev/sda1p4             301        1007      175336    5  Extendida
/dev/sda1p5             301         400       24769   83  Linux
/dev/sda1p6   *         401        1007      150505   83  Linux

CONCLUSIÓN

No se pueden hacer particiones en un pendrive con fdisk.

Para desfacer el entuerto, borrar todas las particiones (d), escribir la nueva tabla en el pendrive (w), y reiniciar el dispositivo.
Nos queda una tabla de particiones como era en un principio, es decir, vacía.

Durante todo este proceso NO SE HA PERDIDO NINGUNA INFORMACIÓN en el pendrive: No se ha tocado ningún sector del sistema de archivos, sólo se ha manipulado el sector 0.

EPITAFIO

Después de rehacer la tabla de particiones, lo he formateado desde W2003 Server, al volver a Linux y ver que ha pasado con la tabla de particiones, nos sale algo como:

# /sbin/fdisk /dev/sda1

Orden (m para obtener ayuda): p

Disco /dev/sda1: 255 MB, 255729664 bytes
8 cabezas, 62 sectores/pista, 1007 cilindros
Unidades = cilindros de 496 * 512 = 253952 bytes

Esto no parece una tabla de particiones         [¡Y que lo digas!]
Probablemente ha seleccionado el dispositivo que no era.
  Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1p1   ?     3865176     4962698   272185273   6f  Desconocido
La partición 1 tiene distintos principios físicos/lógicos (¿no Linux?):  físicos=(361, 101, 36) lógicos=(3865175, 6, 10)
La partición 1 tiene distintos finales físicos/lógicos: físicos=(255, 115, 46) lógicos=(4962697, 0, 15)
La partición 1 no termina en un límite de cilindro.
/dev/sda1p2   ?     2707332     6274207   884585145   69  Desconocido
La partición 2 tiene distintos principios físicos/lógicos (¿no Linux?):  físicos=(100, 101, 32) lógicos=(2707331, 0, 48)
La partición 2 tiene distintos finales físicos/lógicos: físicos=(367, 115, 35) lógicos=(6274206, 5, 27)
La partición 2 no termina en un límite de cilindro.
/dev/sda1p3   ?     3666237     3667565      329392+  75  PC/IX
La partición 3 tiene distintos principios físicos/lógicos (¿no Linux?):  físicos=(288, 110, 37) lógicos=(3666236, 4, 61)
La partición 3 tiene distintos finales físicos/lógicos: físicos=(288, 110, 33) lógicos=(3667564, 6, 33)
La partición 3 no termina en un límite de cilindro.
/dev/sda1p4         5817906     5818017       27619    0  Vacía
La partición 4 tiene distintos principios físicos/lógicos (¿no Linux?):  físicos=(0, 0, 0) lógicos=(5817905, 4, 25)
La partición 4 tiene distintos finales físicos/lógicos: físicos=(0, 0, 0) lógicos=(5818016, 7, 20)
La partición 4 no termina en un límite de cilindro.

Las entradas de la tabla de particiones no están en el orden del disco

Orden (m para obtener ayuda): v
La partición 1 tiene distintos principios físicos/lógicos (¿no Linux?): físicos=(361, 101, 36) lógicos=(3865175, 6, 10)
La partición 1 tiene distintos finales físicos/lógicos: físicos=(255, 115, 46) lógicos=(4962697, 0, 15)
La partición 1 no termina en un límite de cilindro.
Partición 1: el cabeza 116 supera el máximo 8
Partición 1: sectores anteriores -1833469570 no concuerdan con total 126955
La partición 2 tiene distintos principios físicos/lógicos (¿no Linux?):  físicos=(100, 101, 32) lógicos=(2707331, 0, 48)
La partición 2 tiene distintos finales físicos/lógicos: físicos=(367, 115, 35) lógicos=(6274206, 5, 27)
La partición 2 no termina en un límite de cilindro.
Partición 2: el cabeza 116 supera el máximo 8
Partición 2: sectores anteriores -1182960784 no concuerdan con total 182419
La partición 3 tiene distintos principios físicos/lógicos (¿no Linux?): físicos=(288, 110, 37) lógicos=(3666236, 4, 61)
La partición 3 tiene distintos finales físicos/lógicos: físicos=(288, 110, 33) lógicos=(3667564, 6, 33)
La partición 3 no termina en un límite de cilindro.
Partición 3: el cabeza 111 supera el máximo 8
Partición 3: sectores anteriores 1819112148 no concuerdan con total 143214
Atención: la partición 2 se solapa con la partición 3.
El total de sectores asignados -1981426458 supera el máximo 499472         [curioso, fdisk utiliza complemento a 2 para contar los sectores]

El dispositivo funciona perfectamente, sólo es el sector 0 el que parece un poco tocado desde el punto de vista de fdisk.

Si queremos un sector 0 bonito, proceder como antes: borrar todas las particiones, escribir la nueva tabla en el pendrive, y reiniciar el dispositivo.
No se pierde ninguna información.