Mover /usr a otra partición

Imagen de Alcruz
27 puntos

Es común leer que la instalación se quedó sin espacio, las posibles soluciones son varias
a.- Reinstalar el sistema
b.- Redimensionar la partición root
c.- Crear una partición y mover allí algún directorio de la raiz del sistema y luego montarla
La última alternativa es tal vez la mas eficiente, rápida y elegante. Este turorial tratará de dar los pasos para hacerlo de la forma mas simple y segura posible de mover /usr a otra partición
Los pasos a seguir serían los siguientes
1.- Ejecutamos
sudo du -shc /usr
en mi caso veo que /usr pesa 7 G , por lo que la partición a crear será de 10 Gb , es importante este paso para asegurarse de no crear una partición menor a /usr
2.- Reiniciamos el equipo con el LiveCD de instalación , luego cuando termine de arrancar, ejecutamos
sudo gparted
luego se procede a crear la nueva partución , no entraré en detalles sobre este punto ya que hay mucha info por ahí solo agrego que al finalizar el proceso de creacón de la nueva partición, anotar en un papel el nombre asignado a la misma, por ejemplo en mi caso resultó ser sda6
3.- Salimos de la sesión LiveCD y arrancamos Ubuntu y luego ejecutamos
sudo blkid /dev/sda6
y nos sale algo similar a lo siguiente
/dev/sda6: LABEL="E" UUID="6bd368e4-f8cc-4bfb-a817-750d35dd17de" TYPE="ext4"

4.- Abrimos terminal y ponemos
gedit 111aaa
se creará un archivo de texto vacío de nombre 111aaa
luego copiamos en este archivo vacío lo siguiente

#!/bin/sh
mkdir /media/sss
mount /dev/sda6 /media/sss
cp -ax /usr/. /media/sss
echo -e '# Entry for /dev/sda6 : \n UUID=6bd368e4-f8cc-4bfb-a817-750d35dd17de \t /usr \t ext4 \t defaults \t 0 \t 1' >> /etc/fstab
mv /usr /usr.old
mkdir /usr
init 6

Obviamente debes cambiar el nombre asignado a la partición y su valor de UUID , esto es MUY MUY MUY importante , un errar en asignar estos valores, se traducirán en la eliminación de todo el contenido de /usr
Luego guardas, cierras y cierras la terminal, te quedará el archivo 111aaa en tu carpeta personal, puedes comprobarlo abriendo dicha carpeta

5.- Ahora viene lo divertido, abre terminal y pones
sudo su
pones tu contraseña y finalmente pones en ese terminal

bash 111aaa

solo queda esperar seguramente varios minutos , esperar a que reinicie y cuando lo haga será con usr en otra partición

6.- Solo quedan algunos detalles
6.1.- sudo rm -Rf /media/sss es para eliminar la carpeta de montaje /media/sss que se generó temporalmente al ejecutar el script 111aaa y que ya no cumple ningún propósito.
6.2.- Es muy posible que al crear la partición se haya alterado el UUID de la swap, para corregir esto haz lo siguiente
Ejecuta
sudo blkid
copiar el valor de la UUID de la swap y reeplazarlo en
sudo gedit /etc/fstab
y en
sudo gedit /etc/initramfs-tools/conf.d/resume
sudo /usr/sbin/update-initramfs -u
6.3.- Comprobado que todo funciona bie, solo resta borrar /usr.old , que es un respaldo que se creó por si acaso algo sale mal
sudo rm -Rf /usr.old
sudo init 6

Imagen de rioport
+1
-1
-1

Depende del orden en que se tengan las particiones, podría no ser la forma más rapida, ni elegante ni eficiente, por poner un ejemplo:

sda1 Windows (60 GB)
sda2 home (50 GB)
sda3 Datos (NTFS) (la partición más grande)
sda4 extendida
sda5 /boot (320 MB)
sda6 / (15 GB)
sda7 swap (3GB)

Si me quedara sin espacio en la partición raíz le tendría que quitar espacio a la partición sda3, extender la extendida (!) y crear una nueva partición en el espacio que ha quedado disponible. Pero ¿qué pasa si tengo más distros instaladas? Pues que se me llena el disco de particiones, la elegancia se iría al carajo y por un error mio o del software o del hardware al toquetear la partición extendida se me podrían ir todas sus particiones al demonio. Porque recordar que las particiones lógicas son más susceptibles a perderse y no poderlas recuperar, caso contrario con las particiones primarias.

+1
-1
-1

-- GC --

Imagen de Alcruz
+1
-1
-1

En este caso emplearía otro método
1.- Le pongo etiqueta a todas las lógicas y a otra partición que usaré para guardar un tar.gz de cada una de las lógicas, puede ser el mismo DD u otro interno o externo dependiendo de la disponibilidad
2.- Al tratarse de particiones ntfs de las que debo tomar espacio, usaría un editor de particiones de windoes, no me fio de gparted para estas tarea , de esa manera dejo espacio sin asignar , luego con gparted live borro la extendida y la redefino asignando el espacio orifinal + el que quité de la de windoes, redefino las lógicas esta vez teniendo cuidado de que sean del tamaño adecuado, les asigno las mismas etiquetas y restauro los archivos tar.gz, adapto el fstab a la nueva realidad de las nuevas UUID , empleo el Super Grub2 Disk para arrancar el sistema y reinstalar el Grub2
Otra forma elegante sería poner otro DD interno podrías crear una sola pàrtición extendida y dentro meter todas las lçogicas que quieras y luego mover a una de ellas /usr , / var, /tmp, etc,
Yp temgo otro DD interno con una sola partición extendida y hace poco moví en una lógica de este a /usr/lib . En este caso no siquiera fue necesario usar el LiveCd para crear la partición y todo se realizo en caliente, solo fue necesario reiniciar el sistema y salió de una
Ningún método es LA solución, ninguno es monedita de oro para que le guste a todo el mundo, soluciones hay varias, lo que si es que nunca recomendaría es editar particiones sobretodo la raiz, mas que nada por el altísimo riesgo y por el hecho de que los inodes al ser constantes, en casos de saltar por ejemplo de 10 a 20 gb, no habrá beneficio.

+1
-1
-1