fdisk es un comando muy conocido en sistemas linux y nos sirve para revisar el particionamiento de nuestros discos duros, ya sean mecánicos o solidos, así como unidades extraíbles.
Podemos invocarlo desde la consola como root tipeando:
fdisk -l
Veremos algo como esto:
Disco /dev/sda: 320.1 GB, 320072933376 bytes 255 cabezas, 63 sectores/pista, 38913 cilindros, 625142448 sectores en total Unidades = sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico / físico): 512 bytes / 512 bytes Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes Identificador del disco: 0x000abaca Dispositivo Inicio Comienzo Fin Bloques Id Sistema /dev/sda1 * 2048 625141759 312569856 83 Linux Disco /dev/sdb: 128.0 GB, 128035676160 bytes 255 cabezas, 63 sectores/pista, 15566 cilindros, 250069680 sectores en total Unidades = sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico / físico): 512 bytes / 512 bytes Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes Identificador del disco: 0x0007e6cd Dispositivo Inicio Comienzo Fin Bloques Id Sistema /dev/sdb1 2048 248117247 124057600 83 Linux /dev/sdb2 248119294 250068991 974849 5 Extendida /dev/sdb5 248119296 250068991 974848 82 Linux swap / Solaris
Ahí podemos apreciar los discos que tiene el sistema actualmente.
Indica el disco primario como /dev/sda de 320 GB con una partición Linux como /dev/sda1/ además de mostrar detalles técnicos del disco.
Podemos ver además un disco secundario como /dev/sdb con 3 particiones: /dev/sdb1, /dev/sdb2 y /dev/sdb3, ésta última destinada a la memoria de intercambio (swap) y las dos primeras particionadas con particiones Linux, (ID 83 Linux Native Partition) sdb1 es lógica y sdb2 es extendida.
No solo podemos ver información de las particiones sino que también podemos crear, editar y eliminar particiones, veremos un ejemplo…
Formatear y montar un disco secundario con fdisk:
Vamos a tomar como ejemplo un disco secundario que se ha añadido al sistema pero que no está ni montado ni formateado:
fdisk -l
Esta sería una salida del comando, por ejemplo:
Disk /dev/sda: 80.0 GB, 80000000000 bytes 255 heads, 63 sectors/track, 9726 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 268 2048287+ 82 Linux swap /dev/sda3 269 399 1052257+ 83 Linux /dev/sda4 400 9726 74919127+ 5 Extended /dev/sda5 400 9726 74919096 83 Linux Disk /dev/sdb: 80.0 GB, 80000000000 bytes 255 heads, 63 sectors/track, 9726 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System
Como podemos ver, el disco primario /dev/sda sí tiene particiones, 5 para ser precisos. Mientras que /dev/sdb no tiene ninguna.
Procedemos usando el comando fdisk sobre el disco destino.
fdisk /dev/sdb
The number of cylinders for this disk is set to 9726. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): n Command action e extended p primary partition (1-4)
Crearemos una partición primaria por lo tanto presionamos p
Como vamos a usar todo el disco y la partición irá desde el comienzo hasta el final del mismo procedemos con los valores por defecto presionando 1 de manera que quede como partición 1 desde el primer cilindro hasta el último:
Partition number (1-4) Value out of range. Partition number (1-4): 1 First cylinder (1-9726, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-9726, default 9726): Using default value 9726
Procedemos ahora presionando w
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Ahora podemos ver que ya tenemos el disco secundario particionado:
fdisk -l
Deberían ver algo así:
Disk /dev/sda: 80.0 GB, 80000000000 bytes 255 heads, 63 sectors/track, 9726 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 268 2048287+ 82 Linux swap /dev/sda3 269 399 1052257+ 83 Linux /dev/sda4 400 9726 74919127+ 5 Extended /dev/sda5 400 9726 74919096 83 Linux Disk /dev/sdb: 80.0 GB, 80000000000 bytes 255 heads, 63 sectors/track, 9726 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 9726 78124063+ 83 Linux
Ahora formatearemos la partición con el sistema de archivos ext3 ejecutando mkfs.ext3 /dev/sdb1 (sdb es el disco secundario sobre el que estamos trabajando y 1 es la primera y única pertición que nosotros creamos recién:
mkfs.ext3 /dev/sdb1
Output de ejemplo:
mke2fs 1.35 (28-Feb-2004) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 9781248 inodes, 19531015 blocks 976550 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=20971520 597 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 25 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
Ahora vamos a añadirlo al fstab para que quede montado de forma permanente en el sistema:
nano -w /etc/fstab
Montamos el disco secundario en /mnt/disco2 agregando esta línea al final del archivo:
/dev/sdb1 /mnt/disco2 ext3 defaults 1 2
Debería quedar así:
# This file is edited by fstab-sync - see 'man fstab-sync' for details /dev/sda5 / ext3 defaults 1 1 /dev/sda1 /boot ext3 defaults 1 2 /dev/sda3 /tmp ext3 rw,noexec,nosuid,nodev 1 0 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs rw,noexec,nosuid,nodev 0 0 /dev/sda2 swap swap defaults 0 0 /tmp /var/tmp ext3 rw,noexec,nosuid,nodev,bind 0 0 /dev/hda /media/cdrom auto pamconsole,exec,noauto,managed 0 0 /dev/sdb1 /mnt/disco2 ext3 defaults 1 2
Como ven, lo que hicimos fue añadir la siguiente línea: /dev/sdb1 /mnt/disco2 ext3 defaults 1 2
se especifica el disco y la partición a montar en un punto de montaje que es, en el ejemplo: /mnt/disco2 con sistema de archivos ext3
Ahora creamos el directorio que oficiará de punto de montaje para el nuevo disco:
mkdir /mnt/disco2/
Ya solo nos queda montarlo:
mount /dev/sdb1 /mnt/disco2
Todo listo, ya tenemos un nuevo disco particionado, formateado y montado listo para usar 🙂