it-swarm-pt.tech

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

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?

21
Nathan Osman

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

  • 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
  • reiniciar
  • excluir os arquivos antigos

Veja abaixo os detalhes de cada etapa.

Note 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. Do man page :

-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

Edição/etc/fstab

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

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

E então adicione esta linha a /etc/fstab:

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

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

Exclua 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 mount trickery para obter os arquivos antigos e depois deletá-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 pudesse lidar com qualquer tempo de inatividade, ou se tivesse nenhum acesso físico à máquina e, portanto, não foi possível inicializar um live CD ou live USB stick.

24
Hamish Downer

Como a maioria das bibliotecas que são usadas estão em/usr, eu não recomendaria mover este diretório durante a execução do 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, você quer ter certeza de que quaisquer links simbólicos são 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.

6
txwikinger

Atenção: Eu não tenho ideia do que estou fazendo, estou copiando comandos e fazendo 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 da partição o que não funciona, então copiei tudo (com o gerenciador de arquivos) da pasta para a raiz do arquivo. a partição, e o apagou depois da pasta vazia.

  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. Um passo que acabou não sendo muito sábio: eu mudei o nome da partição /usr atualmente montada para /usrBACKUP, só assim eu sei que, quando eu reiniciar o sistema, ele de fato reinicia na partição recém-criada, e não o antigo. Depois disso, tudo brilhou na tela, e eu tive que desligá-lo por muito tempo pressionando a tecla power (gênio 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 partição /usr antiga. Eu vou manter o meu apenas no caso de algo der errado.

1
Aleksandar Stefanović