Es posible que esto te suene raro, pero es posible que en alguna ocasión necesites formatear un USB en tu Rasbperry Pi, o una memoria micro SD. Si, yo no había caído en este asunto, hasta que he tenido que hacerlo. Desde luego, que en principio, no me planteo hacerlo. Lo haría directamente desde mi equipo principal. Pero que sucede si tienes conectado el USB a tu Rasperry y tu no tienes acceso a élla. ¿Como podrías hacerlo?
Lo cierto es que, como ya te he comentado tanto en algún que otro artículo, así como en el capítulo 52 del podcast sobre tu propia red virtual, es realmente sencillo, tener tu propia red virtual. Acceder a tu red virtual, es igualmente sencillo aunque tengas una ip dinámica. En este caso, es posible tener una memoria USB o una micro SD o un disco duro USB conectado a la Raspberry. En este artículo, te cuento como puedes formatear una memoria USB desde tu Raspberry Pi, con diferentes formatos.
Formatear un USB en tu Raspberry Pi
Antes me meternos en esto de formatear un USB, o cualquier otro tipo de memoria desde tu Raspberry Pi, indicarte que lo principal, y a lo que debes prestar mas atención, es a identificar la unidad a formatear. Aunque esto de identificar la memoria que quieres formatear, te pueda parecer algo trivial, es muy importante. Y es importante porque como te equivoques al indicar lo que quieres formatear, en lugar de conseguir formatear una memoria cualquiera, es posible que formatees la unidad que hace de soporte para tu Raspberry Pi.
Identificando la unidad a formatear
El primer paso es conectar tu chisme 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
Esto te dará como resultado algo como le que te muestro a continuación,
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 vfat 42.9M boot
2907-5e46 └─sdc2 ext4 1.6G rootfs
Como puedes ver tengo conecados tres unidades a la Raspberry Pi. En particular se trata de dos memorias USB modelo Ultra Fit y un disco SSD externo. En mi caso quiero formatear la unidad sdc
. A pesar de que tengo dos memorias USB iguales, lo cierto es que la que quiero formatear, sdc
no está montada con lo que me facilita enormemente la identificación.
Como ves con este simple comando tienes suficiente información como para saber cual es el dispositivo en cuestión. Para este ejemplo, he recortado los UUID, para que no ocuparan tanto espacio.
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
exfat-fuse
- En el caso de NTFS, tendrás que instalar
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/sdc 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/sdc 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, yu el resultado que nos muestra es el siguiente,
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 14.3G
Formateando el USB
Desmonta la unidad /dev/sdc
con sudo umount /dev/sdc
, 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/sdc1
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/sdc1
Por último si quisieras darle formato NTFS
, primero tendrás que instalar el paquete ntfs-3g
, que puedes hacer con tan solo ejecutar,
sudo apt install ntfs-3g
Posteriormente para dar el formato ejecuta la siguiente instrucción,
sudo mkfs.ntfs /dev/sdc1
Indicarte que el formateo con NTFS
es significativamente mas lento que los dos anteriores.
En el caso de que te hayas decidido finalmente por ext4
, si ejecutas lsblk
, el resultado que encontrarás será algo como lo que muestro a continuación,
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/verbatim
sudo chown -R pi:pi /mnt/verbatim
Para montar el USB tan solo tienes que ejecutar la siguiente instrucción en un terminal,
sudo mount /dev/sdc1 /mnt/verbatim
Mientras que para desmontar la unidad ejecuta,
sudo umount /dev/sdc1
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 pasos que te indico a continuación.
Ejecuta blkid
, que te da información suficientemente detalllada y que vas a utilizar para el siguiente paso. El resultado de ejecutar esta instrucción es algo como,
/dev/sdb1: LABEL="boot" UUID="16D2-035F" TYPE="vfat" PARTUUID="9d7279a6-01"
/dev/sdb2: LABEL="rootfs" UUID="d065-6316" TYPE="ext4" PARTUUID="9d7279a6-02"
dev/sdc1: UUID="9bc6-fcf1" TYPE="ext4" PARTLABEL="primary" PARTUUID="3c95cb91-10"
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. Puedes utilizar nano
o vim
o cualquier otro editor de texto, y añadir al final lo siguiente,
PARTUUID="3c95cb91-10" /mnt/verbatim ext4 defaults,auto,umask=000,users,rw,nofail 0 0
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 para que la puedas utilizar de inmediato.
Más información,