En los últimos años he constatado que varias tarjetas de memoria SD han dejado de servir debido a la carga continuada de escritura/lectura generado por un servicio que necesitaba constante acceso a ella. Servicios como un servidor de correo, una base de datos (mysql), Apache… genera una utilización constante de acceso a disco.
Por otro lado el lector SD de la raspberrypi no se puede quitar ya que es vital para el arranque.
Este artículo es una guía práctica para conectar un disco SATA por USB. Seguiremos usando una tarjeta SD pero será únicamente utilizada para el arranque e indicar que tendremos la swap y el disco externalizado.
Volcamos la imagen (RASPBIAN Debian Wheezy) en nuestra tarjeta SD y arrancamos la nuestra RPI.
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
reboot
|
Tomamos nota de las unidades de disco presentes en el sistema:
sudo fdisk –l
(inicialmente veremos dos particiones procedentes de la tarjeta SD, si conectamos el disco aparecerá en esta lista y tomamos nota de nombre de la unidad)
Disk /dev/mmcblk0: 31.9 GB, 31914983424 bytes
4 heads, 16 sectors/track, 973968 cylinders, total 62333952 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000981cb
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 62333951 31105536 83 Linux
|
Si conectamos un nuevo disco SATA por USB habrá que prepara las particiones y formatearlas. Creamos dos particiones, una swap y una para el sistema.
Si el disco conectado corresponde a esta unidad /dev/sda
sudo fdisk /dev/sda
d
[borramos todas las particiones que podrían existir]
n
[añadimos dos particiones una de 1024MB para la swap tipo 82 y otra para el Sistema con el resto de espacio tipo 83]
|
Formateamos la partición para el sistema:
Formateamos la partición para la swap:
Creamos la swap (de momento no está activada, lo haremos posteriormente)
sudo mkswap /dev/sda2
|
Copiamos el contenido del (File System) de la tarjeta SD al nuevo disco SATA:
sudo dd if=/dev/mmcblk0p2 of=/dev/sda1 bs=32M conv=noerror,sync
|
Verificamos que no hay errores (la partición no tiene que estar montada):
Expandimos el (file system) en la totalidad del diso:
Realizamos una copia de seguridad del fichero:
sudo cp /boot/cmdline.txt /boot/cmdline.backup
|
Cambios el disco boot:
sudo vi /boot/cmdline.txt
Cambiamos la partición de datos de la tarjeta SD para usar la que está en el disco SATA
Cambiamos:
/dev/mmcblk0p2 /
Por:
/dev/sda1
|
Montamos la unidad de disco de datos (nuestro nuevo disco SATA):
sudo mount /dev/sda1 /mnt
|
Cambiamos en fstab las particiones y el disco:
modificar el fichero ubicado en:
/mnt/etc/fstab
Cambiamos la unidad root: [/dev/mmcblk0p2 /
Por:
/dev/sda1
Lo mismo para la partición swap:
/dev/sda2
Ejemplo:
root@Postfix:~# cat /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2 << Cambiar
#/dev/mmcblk0p2 / ext4 defaults,noatime 0 1 << Cambiar
/dev/sda1 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that
|
A continuación sincronizamos y reiniciamos:
sudo sync
sudo shutdown -r now
|
Al reiniciar la Rasperry pi arrancará usando la tarjeta SD y transfiere que la utilización para que sea el disco externo SATA.
blkid
Proporciona información sobre tipo de contenido y se puede obtener UUID
root@horus:/etc# blkid
/dev/sda1: UUID="afc160c8-f7ab-4549-8e54-15cdf9d653a3" TYPE="swap"
/dev/sda5: UUID="feea7d6d-c24a-4cce-aa10-66ded61c05c9" TYPE="ext4"