Minha /usrpasta 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á sendo executado ou preciso usar o LiveCD para isso?
Minha /usrpasta 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á sendo executado ou preciso usar o LiveCD para isso?
Respostas:
Seria mais seguro usar um Live CD, mas você poderia:
/usrnão seja alterado enquanto você estiver fazendo isso./etc/fstabpara que /usrseja montado na próxima reinicializaçãoVeja abaixo os detalhes de cada etapa.
Observe que você não pode montar a nova partição /usrenquanto estiver executando, pois haverá muitos arquivos /usrabertos.
Eu usaria cp -a. -aé a opção de arquivamento. Na página do 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
Você precisa conhecer o UUID da sua nova partição. Você pode ver o mapeamento fazendo:
$ ls -l /dev/disk/by-uuid/
E adicione esta linha a /etc/fstab:
UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr ext4 defaults 0 2
Altere o UUID para o seu UUID e mude ext4para o tipo de sistema de arquivos que você está usando - você deve saber disso se tiver configurado a partição.
Após a reinicialização, os arquivos antigos na /usrpartição raiz serão ocultados pela nova partição montada /usr. Mas podemos usar alguns truques de montagem de ligaçã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, pressionar Enter quando você digitou apenas sudo rm -rf /mnt) podem causar desastre, então eu usaria esse método apenas se estivesse muito confiante no que estava fazendo, realmente não pudesse lidar com nenhum tempo de inatividade ou não tivesse acesso físico à máquina e, portanto, não foi possível inicializar um CD ao vivo ou um stick USB ao vivo.
rsynclugar?
rsync -avz. O Rsync permite reiniciar cópias e geralmente deve ser usado ao se mover entre partições, dispositivos de bloco ou máquinas.
cp. Não preserva HARD LINKS. Isso interromperá as atualizações de pacotes no futuro. Por exemplo /usr/bin/s2pe /usr/bin/psedé o mesmo arquivo. Mudar com cpcriará duas versões independentes desse arquivo. Faça em rsync -aHvez disso.
rsync -avH a/ bdiferente rsync -avH a b, copiando o conteúdo da pasta a(ou seja a/*) no primeiro caso e da própria pasta no segundo. Certifique-se de usar a barra aqui.
Como a maioria das bibliotecas usadas está em / usr, eu não recomendaria mover este diretório enquanto estiver executando o Ubuntu. Na verdade, você provavelmente recebe mensagens de erro ao tentar fazer isso. Portanto, o melhor é usar o LiveCD.
Você pode usar várias possibilidades para mover / copiar os arquivos cp, rsync, etc. Você deseja garantir que todos os links simbólicos sejam criados e não apenas copiados. cp e rsync têm opções para isso.
Após mover os arquivos para a outra partição, você precisa adicionar outra montagem no / etc / fstab para montar a nova partição no / usr.
Atenção: Não faço ideia do que estou fazendo, apenas copiando comandos e fazendo o que é 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 de Hamish e os comentários):
Copie todos os arquivos da partição recém-criada (substitua pelo local da sua partição, ela deve se parecer com a minha):
rsync -avz /usr /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c
Nesse ponto, percebi que ele copiava tudo na /usrpasta da partição, o que não funcionaria , então copiei tudo (com o gerenciador de arquivos) dessa pasta para a raiz da partição e excluí a pasta vazia. pasta depois.
Editar /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
Uma etapa que acabou não sendo muito sábia: mudei o nome da /usrpartição atualmente montada para /usrBACKUP, apenas para que eu saiba que, quando reinicializo o sistema, ele de fato reinicia na partição recém-criada, e não na antiga. . Depois disso, tudo deu errado na tela e eu tive que desligá-lo pressionando a tecla liga / desliga (gênio como eu sou) . Pule esta etapa se não desejar alterar seu sistema.
Reinicie o sistema
Após a reinicialização, abra o Monitor do sistema ou aplicativo similar para verificar se sua nova /usrpartição está montada e para verificar se tudo correu como planejado.
Depois de verificar se está tudo bem, você pode excluir sua /usrpartição antiga . Vou manter o meu apenas no caso de algo dar errado.
sudo mount -apermitir que ele continue funcionando?
rsyncé muito melhor adequado para isso do quecp