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.