Como mover /usr a nuevas particiones

usrInicialmente cuando instalé Linux lo puse todo en una partición excepto el directorio /home, pasados unos meses puede comprobar que los 5 GB iniciales se quedaban pequeños, razón por la que debía hacer espacio.

El único candidato hasta la fecha ha sido /usr ya que ocupa unos 3 GB, esta es la historia de un migración dificultosa, pero finalmente feliz:

0º Entrar en el shell como superusuario: sudo su

1º Crear una partición con su correspondiente sistema de ficheros en mi caso sera tipo ext3, el resultado es una partición de unos 10GB, de nombre /dev/hda10. La partición la he creado con el comando parted y el sistema de ficheros ext3 con mke2fs:

mke2fs -j /dev/hda10

Nota: Se adjunta fichero detallándolo

2º Montar la partición en un directorio cualquiera que previamente he creado ( p.e: mkdir /home/copia ):
mount -t ext3 /dev/hda10 /home/copia

MUY IMPORTANTE: NUNCA SE PUEDE MONTAR UN DISPOSITIVO SI PREVIAMENTE NO ESTA CREADO EL DIRECTORIO DONDE QUIERO MONTARLO

3º Copiar todo el directorio /usr en /home/copia:

a) Entrar en /usr: cd /usr
b) Copiar todos los ficheros y directorios: cp -p -R * /home/copia
( Nota: esto tardará un buen rato. Comentar que inicialmente hice el copiado de ficheros mediante el comando cp -R * /home/copia lo que inicialmente parecía que todo esta bien, posteriormente cuando había completado la migración al entrar en la consola y querer pasar a usuario root escribiendo «sudo su» me daba un mensaje de error del tipo «sudo: must be setuid root «. La razón es porque mediante la extensión -p se copian todas las características de los ficheros incluyendo los famosos bit suid y sgid )

4º Actualizar el fichero que configura la tabla de sistemas de ficheros es decir fichero de configuración que lee linux para montar los dispositivos: /etc/fstab, para ello lo edito nano /etc/fstab y añado la línea, separando por espacios o tabuladores cada uno de los datos y lo salvo:

<file system> <mount point>   <type>  <options>       <dump>  <pass>

/dev/hda10       /usr                 ext3      relatime              0            1

Nota: : relatime se puede sustituir por noatime que hará que el sistema vaya más rápido ya que no grabará en los atributos de los ficheros la hora en la que se ha accedido a ellos. Más detalles de fstab puedes encontrarlo en Linux en Español

5º Renombrar el fichero /usr a /usr2: mv /usr /usr2

6º Crear un directorio /usr: mkdir /usr

7º Montar mi dispositivo hda10 en /usr, puedo hacerlo manualmente: mount -t ext3 /dev/hda10 /usr o a través del fichero fstab mediante el comando mount -a (que monta todos los dispositivos listados en fstab)

8º Tras comprobar que todo funciona bien ya podemos eliminar el directorio /usr2: rm -f -r /usr2

Nota: Las dos cosas que me han dado verdadero quebradero de cabeza han sido lo de «sudo: must be setuid root» y lo de crear en el paso 6 el directorio /usr por elemental que parezca

Por último adjunto enlace de una página que me sirvió de ayuda para la migración de /usr.