![Linux (debian 9): partición raíz llena: mover directorios desde/hacia una unidad externa](https://rvso.com/image/1711443/Linux%20(debian%209)%3A%20partici%C3%B3n%20ra%C3%ADz%20llena%3A%20mover%20directorios%20desde%2Fhacia%20una%20unidad%20externa.png)
Tengo un sistema Debian 9 que está instalado en un único dispositivo de almacenamiento.
El tamaño del dispositivo es un poco menos de 4 GB y hay una única partición en la que se ha escrito la imagen de Debian.
No puedo quitar este dispositivo. Es parte de un sistema integrado y está conectado permanentemente.
Sin embargo, puedo agregar una tarjeta SD al sistema, ya que se proporciona una ranura adicional para la expansión del usuario si se requiere un FS más grande.
Mi intención es crear una única partición en una tarjeta SD, probablemente de 16 GB.
Me gustaría saber ¿qué directorios es seguro mover a la tarjeta SD? ¿Y cómo puedo hacer esto?
Por ejemplo, muchos sistemas Linux mueven la carpeta /home a un dispositivo físico separado o a una partición separada.
Entonces sé que puedo crear un directorio/home en la raíz del sistema de archivos SD. Lo que no sé hacer es cómo decirle al sistema Debian que /home se ha movido. ¿Presumiblemente necesito copiar todo el contenido de /home en el sistema de archivos original a la nueva tarjeta SD antes de decirle a Debian que se ha movido?
Supongo que también puedo mover las carpetas/tmp y/var.
¿Hay algo más que pueda mover con seguridad? ¿Supongo que no debería mover /bin, /sbin o /root bajo ninguna circunstancia?
He trabajado con sistemas como este antes, donde /home está en un disco diferente, pero nunca tuve que moverlo una vez finalizada la instalación.
Tampoco sabía qué palabras clave debería buscar para encontrar esta información; lo siento si parece una solicitud un poco inexperta. Gracias
Respuesta1
El hecho de que /home
no sea una parte estrictamente esencial del sistema operativo hace que esto sea más factible que pasar, por ejemplo, /usr
a un nuevo dispositivo. Si estuviera moviendo una jerarquía de sistema operativo esencial, querrá apagar y arrancar desde algún otro rescue
sistema de archivos USB o CD en vivo. Esto podría ser desde difícil hasta imposible en su dispositivo integrado.
Pero como usted se está mudando, /home
podemos proceder con cautela.
Primero, inicie en modo de usuario único. Detenga los servicios no esenciales, especialmente cualquier cosa que pueda escribir en archivos en formato /home
. Asegúrate de que pwd
no estés en /home y luego obtén root:
$ cd /tmp
$ sudo -i
Entonces:
1) Inserte su tarjeta SD y cree una partición. Después de haber creado una partición, cree un sistema de archivos que contendrá su nueva /home
jerarquía. Supongamos que la partición de su tarjeta SD es el dispositivo/dev/sdc1
# mkfs.ext4 /dev/sdc1
2) Monte el nuevo sistema de archivos en /mnt
:
# mount /dev/sdc1 /mnt
3)COPIAR(no te muevas) o rsync
tu /home
jerarquía en la tarjeta SD (cuidado con las barras). Después de rsync
finalizar, desmonte la tarjeta SD:
# rsync -HAXav /home/ /mnt/
# umount /mnt
4) Haz una copia de seguridad de tu/etc/fstab
# cp -p /etc/fstab /etc/fstab.safety
5) Identifique el sistema de archivos de la tarjeta SD UUID
y edítelo /etc/fstab
para agregar una entrada para UUID
montarlo /home
. Puedes encontrar el UUID
uso blkid
:
# blkid /dev/sdc1
/dev/sdc1: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="ext4"
Dado el resultado anterior, su nueva fstab
línea sería:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home ext4 defaults 0 0
Ese es un ejemplo de Ubuntu ya que no tengo un sistema Debian a mano. Tendrá que reemplazar la parte xxxxx... con el UUID correcto del sistema de archivos de la tarjeta SD y reemplazarla ext4
con el tipo de sistema de archivos que utilizó cuando instaló mkfs
la tarjeta SD (y confirmó en el resultado de blkid
).
6) Cambie el nombre del /home
directorio anterior:
# mv /home /home.old
7) Cree un nuevo punto de montaje para la tarjeta SD:
# mkdir /home
En este punto, deberías poder montar manualmente la tarjeta SD:
# mount /home
y vea el contenido a continuación /home
que es idéntico al contenido a continuación /home.old
. Verifique el contenido cuidadosamente, incluida la propiedad y los permisos de los directorios de inicio y .ssh
los directorios, o es posible que no pueda iniciar sesión de forma remota cuando el sistema se reinicie. Si es posible, inicie el servicio sshd y pruebe un inicio de sesión remoto en una cuenta sin privilegios.
Si todo se ve bien, reinicie. Cuando el sistema vuelva a funcionar, verifique el espacio disponible en los sistemas de archivos montados:
# df
Aún no tendrás espacio libre /
porque /home.old
todavía está dando vueltas. Deberías ver mucho espacio disponible en /home
:
# du -h /
# du -h /home
Una vez que esté satisfecho de que todo se ve bien, puede deshacerse de /home.old
:
# cd /; rm -rf home.old
También puedes hacerlo rm /etc/fstab.safety
, pero probablemente sea lo suficientemente pequeño como para que no haga mucho daño dejarlo.