Vamos a partir de un disco (virtual) sin particionar. Lo primero que vemos al acceder a parted es un error, ya que parted necesita que el disco tenga una etiqueta (LABEL) para poder trabajar con él:
# parted /dev/sdb GNU Parted 2.1 Usando /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Error: /dev/sdb: unrecognised disk label
Normalmente se utiliza la etiqueta ‘msdos’ ya que Microsoft y OS/2 es la que reconocen, así que la asignamos con el comando mklabel:
(parted) mklabel ¿Nuevo tipo de etiqueta de disco? msdos
En todo momento podéis ver los comandos disponibles escribiendo el signo de interrogación (?)
(parted) ? align-check TYPE N check partition N for TYPE(min|opt) alignment check NUMBER do a simple check on the file system cp [DESDE-DISPOSITIVO] DE-NUMERO A-NUMERO copia el sistema de ficheros a otra partición help [COMMAND] print general help, or help on COMMAND mklabel,mktable LABEL-TYPE create a new disklabel (partition table) mkfs NUMBER FS-TYPE make a FS-TYPE file system on partition NUMBER mkpart TIPO-PART [TIPO-SF] INICIO FIN crea una partición mkpartfs TIPO-PART TIPO-SF INICIO FIN crear una partición con un sistema de ficheros ... ... ...
print: listar discos duros, particiones y espacio libre
El comando print nos permite por un lado mostrar todos los dispositivos (discos duros) reconocidos por el sistema:
(parted) print devices /dev/sdb (268MB) /dev/sda (12,7GB)
También las particiones de cada uno y/o el espacio libre:
(parted) print free Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 268MB Sector size (logical/physical): 512B/512B Partition Table: msdos Numero Inicio Fin Tamaño Typo Sistema de ficheros Banderas 32,3kB 268MB 268MB Free Space
mkpart: crear una partición sin filesystem
Parted nos da la opción de crear una partición y al mismo tiempo el sistema de ficheros (lo vemos más adelante), pero de momento únicamente vamos a crear una partición estándar sin asignar filesystem. Podemos hacer dos cosas, o seguir el asistente o escribir la línea de comandos completa directamente. Para comenzar lo más sencillo es el asistente:
Partición primaria de 100MB que será usada como filesystem ext4
(parted) mkpart ¿Tipo de partición? primary/primaria/extended/extendida? primary ¿Tipo de sistema de ficheros? [ext2]? ext4 ¿Inicio? 1 ¿Fin? 100
Si ejecutamos un print list veremos la nueva partición lista para ser formateada con mkfs.ext4:
(parted) print Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 268MB Sector size (logical/physical): 512B/512B Partition Table: msdos Numero Inicio Fin Tamaño Typo Sistema de ficheros Banderas 1 1049kB 99,6MB 98,6MB primary
mkpartfs: crear una partición con filesystem
Como comentaba antes, parted permite dar formato a la partición en el proceso de creación, aunque claramente vemos al ejecutarlo que recomiendan encarecidamente hacer uso de las herramientas adecuadas para ello (mkfs.extX, e2fsprogs). Así que simplemente vamos a ver como hacerlo por curiosidad (además no soporta ni ext3 ni ext4, sólo ext2…):
WARNING: you are attempting to use parted to operate on (mkpartfs) a file system.
parted’s file system manipulation code is not as robust as what you’ll find in
dedicated, file-system-specific packages like e2fsprogs. We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
(parted) mkpartfs WARNING: you are att..... will be removed in an upcoming release. ¿Tipo de partición? primary/primaria/extended/extendida? primary ¿Tipo de sistema de ficheros? [ext2]? ext2 ¿Inicio? 100 ¿Fin? 200
Y ya tenemos la partición con sistema de ficheros ext2:
(parted) print Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 268MB Sector size (logical/physical): 512B/512B Partition Table: msdos Numero Inicio Fin Tamaño Typo Sistema de ficheros Banderas 1 1049kB 99,6MB 98,6MB primary 2 99,6MB 200MB 101MB primary ext2
# mount /dev/sdb2 /test # df -h | grep /test /dev/sdb2 90M 13K 86M 1% /test # umount /test
rm: eliminar una partición
Para eliminar una partición con parted es tan simple como ejecutar «rm» seguido del número de la partición:
(parted) print Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 268MB Sector size (logical/physical): 512B/512B Partition Table: msdos Numero Inicio Fin Tamaño Typo Sistema de ficheros Banderas 1 1049kB 99,6MB 98,6MB primary 2 99,6MB 200MB 101MB primary ext2
(parted) rm 2 /pre>
check: comprobación de un filesystem
Existen otras opciones, como por ejemplo hacer un check al sistema de ficheros, pero igual que con mkpartfs recomiendan utilizar herramientas propias del sistema como fsck. Además, no soportan sistemas de ficheros ext4 o ext3:
(parted) check 1 WARNING: you are attempting to use parted to operate on (check) a file system. parted's file system manipulation code is not as robust as what you'll find in dedicated, file-system-specific packages like e2fsprogs. We recommend you use parted only to manipulate partition tables, whenever possible. Support for performing most operations on most types of file systems will be removed in an upcoming release. Sin Implementación: El soporte para abrir el sistema de ficheros ext4 aún no está implementado.
Si revisáis la página man o la propia salida de ‘?’ veréis otras opciones, como mkfs para formatear sistemas de ficheros (como comentaba antes, no recomendable) y otras más interesantes como rescue, que permite recuperar una partición perdida indicando su posición de inicio y fin:
(parted) rescue INICIO FIN
Os recomiendo como siempre revisar la página man o la salida de ‘?’ para descubrir todas sus posibilidades, como redimensionar una partición con resize, moverla con move, etc. Eso sí, recordad que es preferible usar los comandos/herramientas propios del sistema para mayor seguridad en estos casos.