¿Cómo mover / usr a una nueva partición?

21

Mi carpeta /usr necesita ser movida a una nueva partición. ¿Cómo puedo hacer esto sin borrar los contenidos?

¿Se puede hacer esto mientras se está ejecutando Ubuntu, o necesito usar el LiveCD para esto?

    
pregunta Nathan Osman 02.08.2010 - 00:21

3 respuestas

24

Sería más seguro usar un Live CD, pero podrías:

  • copie todos los archivos en una nueva partición, asegurándose de que el contenido de /usr no cambie mientras lo hace.
  • edita /etc/fstab para que /usr se monte el próximo reinicio
  • reiniciar
  • eliminar los archivos antiguos

Consulte a continuación para obtener detalles sobre cada paso.

Tenga en cuenta que no puede montar la nueva partición en /usr mientras se ejecuta, ya que habrá muchos archivos en /usr que se abrirán.

Copia de los archivos

Usaría cp -a . -a es la opción de archivo. Desde la página de manual :

-a, --archive
          same as -dR --preserve=all
...
-d     same as --no-dereference --preserve=links
...
-P, --no-dereference
          never follow symbolic links in SOURCE
...
--preserve[=ATTR_LIST]
          preserve      the      specified      attributes       (default:
          mode,ownership,timestamps),  if  possible additional attributes:
          context, links, xattr, all
...
-R, -r, --recursive
          copy directories recursively

Edición de / etc / fstab

Necesita conocer el UUID de su nueva partición. Puede ver la asignación haciendo:

$ ls -l /dev/disk/by-uuid/

Y luego agrega esta línea a /etc/fstab :

UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2

Cambie el UUID a su UUID, y cambie ext4 para que sea el tipo de sistema de archivos que está utilizando; debe saber esto si ha configurado la partición.

Eliminar los archivos antiguos

Después del reinicio, los archivos antiguos en /usr en la partición raíz estarán ocultos por la nueva partición montada en /usr . Pero podemos usar algunos mount bind trickery para acceder a los archivos antiguos y luego eliminarlos.

$ sudo mount --bind / /mnt
$ sudo rm -rf /mnt/usr
$ sudo umount /mnt

Pero algunas pequeñas equivocaciones (digamos, presionar Enter cuando solo escribiste sudo rm -rf /mnt ) podrían causar desastres, así que solo usaría este método si tuvieras mucha confianza en lo que estabas haciendo, realmente no podría lidiar con cualquier tiempo de inactividad, o no tenía acceso físico a la máquina y, por lo tanto, no podía arrancar un CD en vivo o una memoria USB activa.

    
respondido por el Hamish Downer 02.08.2010 - 13:39
6

Como la mayoría de las bibliotecas que se usan están en / usr, no recomendaría mover este directorio mientras ejecuto Ubuntu. De hecho, es probable que reciba mensajes de error cuando intente hacer esto. Por lo tanto, lo mejor es usar el LiveCD.

Puede usar varias posibilidades para mover / copiar los archivos cp, rsync, etc., y quiere asegurarse de que cualquier enlace simbólico se cree y no se copie. cp y rsync tienen opciones para esto.

Después de mover los archivos a la otra partición, necesita agregar otra montura en / etc / fstab para montar la nueva partición en / usr.

    
respondido por el txwikinger 02.08.2010 - 00:36
1

Atención: no tengo idea de lo que estoy haciendo, solo estoy copiando comandos y haciendo lo que sugieren los demás. Esta puede ser la forma incorrecta de hacerlo, pero funciona para mí (por ahora, al menos).

Así lo hice (siguiendo la respuesta de Hamish y los comentarios):

  1. Copie todos los archivos de la partición recién creada (reemplace con la ubicación de su partición, debe ser similar a la mía):

    rsync -avz /usr /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c 
    
  2. En este punto me he dado cuenta de que copió todo en la carpeta /usr en la partición, que no va a funcionar , así que copié todo (con el administrador de archivos) ) desde esa carpeta hasta la raíz de la partición, y luego borre esa carpeta vacía.

  3. Editar /etc/fstab (igual que en la respuesta de Hamish, por supuesto, reemplace con su UUID)

    UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2
    
  4. Un paso que no fue muy inteligente: cambié el nombre de la partición /usr actualmente montada a /usrBACKUP , solo para que sepa que, cuando reinicio el sistema, de hecho reinicia en la partición recién creada, y no en la anterior. Después de eso, todo brilló en la pantalla, y tuve que apagarlo presionando durante mucho tiempo la tecla de encendido (genial como soy) . Omita este paso si no quiere fallar su sistema.

  5. Reinicia el sistema

  6. Después de reiniciar, abra el Monitor del sistema o una aplicación similar para ver si está montada su nueva partición /usr y para verificar si todo salió según lo planeado.

  7. Después de verificar que todo está bien, puedes eliminar tu vieja partición /usr . Mantendré el mío por si acaso algo sale mal.

respondido por el Aleksandar Stefanović 03.04.2016 - 10:14

Lea otras preguntas en las etiquetas