Como mover / usr para uma nova partição?

20

Minha pasta /usr precisa ser movida para uma nova partição. Como posso fazer isso sem apagar o conteúdo?

Isso pode ser feito enquanto o Ubuntu está rodando, ou eu preciso usar o LiveCD para isso?

    
por Nathan Osman 02.08.2010 / 02:21

3 respostas

24

Seria mais seguro usar um Live CD, mas você poderia:

  • copie todos os arquivos para uma nova partição, certificando-se de que o conteúdo de /usr não seja alterado enquanto você estiver fazendo isso.
  • edite /etc/fstab para que /usr seja montado na próxima reinicialização
  • reinicializar
  • exclua os arquivos antigos

Veja abaixo os detalhes de cada etapa.

Observe que você não pode montar a nova partição em /usr durante a execução, pois haverá muitos arquivos em /usr que serão abertos.

Copiando os arquivos

Eu usaria cp -a . -a é a opção de arquivamento. A partir da 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

Editando / etc / fstab

Você precisa conhecer o UUID da sua nova partição. Você pode ver o mapeamento fazendo:

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

Em seguida, adicione esta linha a /etc/fstab :

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

Altere o UUID para seu UUID e altere ext4 para o tipo de sistema de arquivos que você está usando - você deve saber isso se tiver configurado a partição.

Excluir os arquivos antigos

Após a reinicialização, os arquivos antigos em /usr na partição raiz serão ocultados pela nova partição montada em /usr . Mas podemos usar alguns montar o truque de vinculação para acessar os arquivos antigos e excluí-los.

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

Mas alguns erros de digitação (digamos, apertar Enter quando você só digitou sudo rm -rf /mnt ) podem causar um desastre, então eu só usaria esse método se você estivesse muito confiante no que estava fazendo, realmente não poderia lidar com qualquer tempo de inatividade, ou não teve acesso físico à máquina e, portanto, não conseguiu inicializar um CD ao vivo ou pendrive ao vivo.

    
por Hamish Downer 02.08.2010 / 15:39
6

Como a maioria das bibliotecas que são usadas estão em / usr, eu não recomendaria mover este diretório enquanto estiver executando o Ubuntu. Na verdade, você provavelmente recebe mensagens de erro quando tenta fazer isso. Portanto, o melhor é usar o LiveCD.

Você pode usar várias possibilidades para mover / copiar os arquivos cp, rsync, etc., para ter certeza de que quaisquer links simbólicos sejam criados e não apenas copiados. cp e rsync ambos têm opções para isso.

Depois de mover os arquivos para a outra partição, você precisa adicionar outra montagem em / etc / fstab para montar a nova partição em / usr.

    
por txwikinger 02.08.2010 / 02:36
1

Atenção: Não faço ideia do que estou fazendo, apenas copio comandos e faço o que foi sugerido pelos outros. Esta pode ser a maneira incorreta de fazê-lo, mas funciona para mim (por enquanto, pelo menos).

Foi assim que eu fiz (seguindo a resposta do Hamish e os comentários):

  1. Copie todos os arquivos da partição recém-criada (substitua pela localização da sua partição, ela deve ser semelhante à minha):

    rsync -avz /usr /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c 
    
  2. Neste ponto, percebi que copiei tudo para a pasta /usr na partição, que não está funcionando , então copiei tudo (com o gerenciador de arquivos ) dessa pasta para a raiz da partição, e a pasta vazia eliminada posteriormente.

  3. Edite /etc/fstab (o mesmo que na resposta de Hamish, é claro, substitua pelo seu UUID)

    UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2
    
  4. Uma etapa que acabou não sendo muito inteligente: alterei o nome da partição /usr atualmente montada para /usrBACKUP , apenas para saber que, quando eu reinicializo o sistema, de fato reinicia na partição recém-criada, e não na antiga. Depois disso, tudo brilhou na tela, e eu tive que desligá-lo por muito tempo pressionando a tecla de energia (genial como eu sou) . Pule esta etapa se você não quiser alterar o seu sistema.

  5. Reinicie o sistema

  6. Após a reinicialização, abra o System Monitor ou aplicativo semelhante para ver se sua nova partição /usr está montada e verifique com segurança se tudo ocorreu conforme planejado.

  7. Depois de verificar se tudo está bem, você pode excluir sua antiga partição /usr . Vou manter o meu apenas no caso de algo der errado.

por Aleksandar Stefanović 03.04.2016 / 12:14