Formatear disco en ext4 para NAS¶
A la hora de conectar una unidad externa a nuestra Raspberry Pi, hay que tener en cuenta como formatear el disco duro o memoria USB, el formato recomendado es ext4. Este es uno de los formatos nativos de GNU/Linux, Raspbian y Raspberry Pi y será el que nos de un rendimiento mejor. Al menos mejor que los de Windows, que solo harán que el servidor sea más lento y dé más problemas, como exFAT o NTFS.
Esto tiene el inconveniente de que el disco solo lo podremos usar desde un ordenador con Linux como la Raspberry Pi ya que Windows no reconoce este formato.
Empezamos… El primer paso es conectar tu disco USB a la Rasbperry. Una vez conectado, lista todas las particiones disponibles. Para ello ejecuta la siguiente instrucción:
lsblk -o UUID,NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL
Resultado:
UUID NAME FSTYPE SIZE MOUNTPOINT LABEL MODEL
sda 57.8G Ultra_Fit
177D-DCE9 └─sda1 exfat 57.8G
mmcblk0 29.8G
1075-FB60 ├─mmcblk0p1 vfat 256M /boot bootfs
f1b52c67-be6e-4ddd-8c08-2a06522a0646 └─mmcblk0p2 ext4 29.5G / rootfs
Como ves con este simple comando tienes suficiente información como para saber cual es el dispositivo en cuestión.
Dependiendo del formato que quieras dar a esa unidad externa, tendrás que utilizar algunos paquetes extra. Así por ejemplo,
Para exFAT, tendrás que instalar el paquete «exfat-fuse»
En el caso de NTFS, tendrás que instalar paquete «ntfs-3g»
Particionando el USB¶
EL primer paso que tienes que hacer es crear una tabla de particiones. Para esto tienes dos opciones o bien puedes utilizar fdisk o bien parted. En este caso, yo me voy a decantar por esta segunda opción.
Para crear la tabla de particiones debes elegir entre la tradicional MBR (en parted se identifica como msdos) o GPT. Aquí depende de donde vayas a utilizar tu memoria USB. Las versiones mas antiguas de los diferentes sistemas operativos no soportan GPT, como puede ser el caso de Windows XP.
Sin embargo, la fiabilidad de GPT es mucho mayor que MBR, porque la primera crea copias redundantes de la tabla de particiones, mientras que la segunda, solo la crea en los primeros sectores del disco. Así, me voy a decantar por una tabla de particiones GPT. Para crear la tabla de particiones, ejecuta la siguiente instrucción:
sudo parted /dev/sda mklabel gpt
Ahora hay que crear la partición primaria. En este caso, como vamos a utilizar toda el USB la solución es bien sencilla, tan solo tienes que ejecutar la siguiente instrucción:
sudo parted -a optimal /dev/sda mkpart primary 0% 100%
La opción -a optimal se refiere a la alineación de la partición.
Para comprobar el estado de nuestra unidad ejecutamos de nuevo lsblk con los parámetros anteriores, ya el resultado que nos muestra es el siguiente:
UUID NAME FSTYPE SIZE MOUNTPOINT LABEL MODEL
sda 57.8G Ultra_Fit
9A3A1B913A1B6991 └─sda1 ntfs 57.8G USB
mmcblk0 29.8G
1075-FB60 ├─mmcblk0p1 vfat 256M /boot bootfs
f1b52c67-be6e-4ddd-8c08-2a06522a0646 └─mmcblk0p2 ext4 29.5G / rootfs
Formateando el USB¶
Desmonta la unidad /dev/sda con sudo umount /dev/sda, y a continuación solo tienes que formatearla utilizando el formato que consideras. Mucho cuidado con este paso, anda con ojo y no te equivoques. Existen diferentes formatos que le puedes dar a tu memoria usb. Elige el formato en función del uso que le vayas a dar a esa unidad USB.
Así por ejemplo, si solo la vas a utilizar con dispositivos Linux, puedes darle formato ext4. Esto es tan sencillo como ejecutar la siguiente instrucción:
sudo mkfs.ext4 /dev/sda1
En el caso de que lo quisieras con formato FAT32 por aquello de la compatibilidad con sistemas operativos antiguos, en lugar de la instrucción anterior, tendrás que utilizar lo siguiente:
sudo mkfs.vfat -F 32 /dev/sda1
Por último si quisieras darle formato NTFS, una vez instalado el paquete ntfs-3g (prueba primero a ver si ya lo lleva las últimas versiones de Raspbian), formateas con la siguiente instrucción:
sudo mkfs.ntfs /dev/sda1
Indicarte que el formateo con NTFS es significativamente mas lento que los dos anteriores (y se nota).
En el caso de que te hayas decidido finalmente por ext4, si ejecutas lsblk, el resultado que encontrarás será algo así:
UUID NAME FSTYPE SIZE MOUNTPOINT LABEL MODEL
sdb 14.3G Ultra Fit
16D2-035F ├─sdb1 vfat 42.9M /boot boot
d065-6316 └─sdb2 ext4 14.3G / rootfs
sdc 14.3G Ultra Fit
16D2-035F └─sdc1 ext4 14.3G
Montaje¶
Una vez ya tienes particionado y formateado tu USB solo te queda montarlo. Montar una unidad, no es mas que hacerla visible a tu sistema operativo. A partir de montar tu USB ya podrás interactuar con él.
El primer paso es preparar el punto de montaje en tu Raspberry Pi. Para ello, ejecuta lo siguiente:
sudo mkdir /mnt/usbdisk
sudo chown -R usuario:usuario /mnt/usbdisk
Para montar el USB tan solo tienes que ejecutar la siguiente instrucción en un terminal:
sudo mount /dev/sda1 /mnt/usbdisk
Mientras que para desmontar la unidad ejecuta:
sudo umount /dev/sda1
El inconveniente de proceder de esta manera es que cada vez que se inicie la Raspberry Pi, tendrás que montar esta unidad. La otra opción es que se monte de forma automática, que es lo que te voy a contar a continuación.
Montaje automático¶
En el caso de que quieras dejar tu memoria USB fija en la Raspberry Pi, seguro que querrás que cada vez que inicies la Raspberry Pi, tengas a tu disposición esa memoria USB. En definitiva, si quieres que la memoria USB se monte de forma automática en el arranque, tienes que seguir los siguientes pasos:
Ejecuta sudo blkid que te da información suficientemente detalllada y que vas a utilizar para el siguiente paso. El resultado es algo como:
/dev/mmcblk0p2: LABEL="rootfs" UUID="da446b36-5471-4511-8f90-c08e4ba7eb83" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="958430f3-02"
/dev/mmcblk0p1: LABEL_FATBOOT="bootfs" LABEL="bootfs" UUID="0986-A444" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="958430f3-01"
/dev/sda1: UUID="1272bfdd-c6a1-43b7-badd-42a9f53b5bcf" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="f3bee65c-9b30-4d29-808c-4b02ed49fd9e"
Ahora toca añadir a /etc/fstab la información necesaria para montar la unidad SSD de forma automática cada vez que inicies la Raspberry. Primero imprescindible una copia de seguridad por si metemos la pata:
sudo cp /etc/fstab fstab.old
Puedes utilizar nano o vim o cualquier otro editor de texto, y añadir al final lo siguiente:
PARTUUID="f3bee65c-9b30-4d29-808c-4b02ed49fd9e" /mnt/usbdisk ext4 defaults,auto,umask=000,users,rw,nofail 0 0
Damos permisos de escsritura al nuevo disco:
sudo chmod 777 /mnt/usbdisk
Y por último creamos un enlace simbólico para acceder cómodamente desde nuesro home:
ln -s /mnt/usbdisk/ /home/usuario/usbdisk
Con esto ya lo tienes todo completamente terminado. Has podido particionar y formatear un USB en tu Raspberry Pi. Además has configurado la Raspberry Pi, para que cuando se inicie se monte directamente esa memoria USB y puedas utilizarla de inmediato.
