Minha /usr
pasta 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 /usr
pasta 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:
/usr
não seja alterado enquanto você estiver fazendo isso./etc/fstab
para que /usr
seja montado na próxima reinicializaçãoVeja abaixo os detalhes de cada etapa.
Observe que você não pode montar a nova partição /usr
enquanto estiver executando, pois haverá muitos arquivos /usr
abertos.
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 ext4
para 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 /usr
partiçã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.
rsync
lugar?
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/s2p
e /usr/bin/psed
é o mesmo arquivo. Mudar com cp
criará duas versões independentes desse arquivo. Faça em rsync -aH
vez disso.
rsync -avH a/ b
diferente 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 /usr
pasta 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 /usr
partiçã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 /usr
partição está montada e para verificar se tudo correu como planejado.
Depois de verificar se está tudo bem, você pode excluir sua /usr
partição antiga . Vou manter o meu apenas no caso de algo dar errado.
sudo mount -a
permitir que ele continue funcionando?
rsync
é muito melhor adequado para isso do quecp