lunes, 14 de marzo de 2016

Manipulando particiones con fdisk

El programa fdisk nos permite interactuar directamente con los dispositivos que se comportan como discos (como discos duros o unidades flash) a muy bajo nivel. Con esta herramienta podemos editar, eliminar y crear particiones en el dispositivo. Para trabajar con nuestra unidad flash, tenemos primero que desmontarla (si es necesario) y luego invocar el programa fdisk como sigue:

[me@linuxbox ~]$ sudo umount /dev/sdb1
[me@linuxbox ~]$ sudo fdisk /dev/sdb

Fíjate que tenemos que especificar el dispositivo en términos del dispositivo completo, no por un número de partición. Después de que el programa arranque, veremos el siguiente prompt:

Command (m for help):

Introducir una “m” mostrará el menú del programa:

Command action
   a toggle a bootable flag
   b edit bsd disklabel
   c toggle the dos compatibility flag
   d delete a partition
   l list known partition types
   m print this menu
   n add a new partition
   o create a new empty DOS partition table
   p print the partition table
   q quit without saving changes
   s create a new empty Sun disklabel
   t change a partition's system id
   u change display/entry units
   v verify the partition table
   w write table to disk and exit
   x extra functionality (experts only)



Command (m for help):

La primera cosa que queremos hacer es examinar la tabla de particiones existente. Lo hacemos introduciendo “p” para imprimir la tabla de particiones del dispositivo:

Command (m for help): p

Disk /dev/sdb: 16 MB, 16006656 bytes
1 heads, 31 sectors/track, 1008 cylinders
Units = cylinders of 31 * 512 = 15872 bytes

   Device Boot Start  End Blocks Id System
/dev/sdb1          2 1008 15608+  b W95 FAT32

En este ejemplo, vemos un dispositivo de 16 MB con una única partición (1) que usa 1006 de los 1008 cilindros disponibles en el dispositivo. La partición está identificada como una partición FAT32 de Windows 95. Algunos programas usarán este identificador para limitar el tipo de operaciones que pueden hacerse en el disco, pero la mayoría de las veces no es crítico cambiarlo. Sin embargo, a modo de demostración, lo cambiaremos para indicar una partición Linux. Para hacerlo, primero debemos encontrar qué ID se usa para identificar una partición Linux. En la lista anterior vemos que se usa el ID “b” para especificar la partición existente. Para ver una lista de los tipos de partición disponibles, volveremos al menú del programa. Allí podemos ver la siguiente opción:

l list known partition types

Si introducimos una “l” en el prompt, se muestra una gran lista de los tipos posibles. Entre ellos, vemos “b” para nuestro tipo de partición existente y “83” para Linux.

Volviendo al menú, vemos la opción de cambiar la ID de una partición:

t change a partition's system id

Introducimos “t” en el prompt y luego la nueva ID:

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83
Changed system type of partition 1 to 83 (Linux)

Esto completa todos los cambios que necesitamos hacer. Hasta ahora, el dispositivo no ha sido tocado (todos los cambios han sido almacenados en la memoria, no en el dispositivo físico), así que escribiremos la tabla de particiones modificada en el dispositivo y saldremos. Para hacerlo, introducimos “w” en el prompt:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information.
Syncing disks.
[me@linuxbox ~]$

Si hubiéramos decidido dejar el dispositivo sin modificaciones, podríamos haber introducido “q” en el prompt, que habría salido del programa sin guardar los cambios. Podemos ignorar tranquilamente el ominoso sonido del mensaje de advertencia.

No hay comentarios:

Publicar un comentario