Contexto
Recentemente, migrei o Windows 10 e o Gentoo para 2 SSDs separados de 250 GB e deixei meus antigos discos rígidos SATA tradicionais para uso no armazenamento.
- Coloquei
Users
um HDD para Windows durante uma nova instalação. - Eu usei um GParted LiveCD para reduzir meu sistema de arquivos raiz e copiei-o para a nova unidade, reiniciei e excluí a raiz antiga que estou deixando
/home
e uma partição de troca no meu disco rígido. Isso tudo funciona muito bem, pois estou inicializando usando os UUIDs.
Como estou no Gentoo, preciso mover apenas o /usr
diretório do SSD de volta para o HDD original do qual o copiei, para que a Árvore do Portage não ocupe o pequeno espaço do SSD durante as atualizações. Eu não estou marcando isso com o gentoo até agora (Veja Update Heading), porque esta questão está relacionada às opções de comando apropriadas necessárias para rsync
Para um pouco de contexto, a árvore do portage é o repositório de pacotes do Gentoo. Todo o repositório é baixado para a máquina local do usuário antes da atualização. O download para o SSD causaria desgaste desnecessário, pois a árvore é atualizada diariamente.
Questão
Encontrei as duas perguntas a seguir relacionadas ao que estou tentando realizar:
Agora eu preciso de uma resposta para algumas das minhas próprias perguntas:
- Posso usar o
rsync
comando para mover/usr
enquanto estiver na instalação do Gentoo/usr
para onde precisa ser movido? A pergunta ServerFault sugere isso. - Se o nº 1 não for possível, e eu usar o GParted Live USB para emitir o
rsync
comando, os proprietários do arquivo/diretório mudam, já que o LiveUSB é baseado em uma distribuição Debian? - Quais são as opções adequadas para
rsync
além-a
do arquivo? Os comentários na resposta selecionada no AskUbuntu sugerem adicionar-H
para garantir que os links físicos sejam seguidos, mas o OP contradiz os comentários em sua própria resposta.
Recursos visuais
Preciso mover o /usr
diretório da partição quadrada em vermelho para a partição vazia quadrada em azul, enquanto toda a partição quadrada em vermelho estiver em execução, ou usar um LiveCD para fazer isso, sem prejudicar ou alterar as permissões atuais.
Atualizar
Esta questão acabou por ser uma montanha que pode ser conquistada, mas não sei se a conquisto:
- Eu sou/consegui mover
/usr
para uma nova partição usandorsync -avAHPX /mnt/gentoo/usr /mnt/new_usr
. Não posso dar crédito por uma resposta parcial, pois ainda estou preso. - Não adianta, pois o systemd reclama que o sistema de arquivos raiz não contém um init válido porque o sistema init está na partição que não pode ser montada. Você vê o problema aqui? (Systemd está localizado em
/usr/lib/systemd
) - Eu preciso de uma montagem de espaço de usuário antecipada para corrigir o problema, mas para fazer isso, eu perderia meu initramfs da tela de inicialização do Plymouth com o initramfs necessário para montar
/usr
antecipadamente. Consulte também Custom Initramfs e Initramfs/Guide . - Suporte e ou outros usuários do Gentoo que não reclamam que "Systemd Sucks" é difícil de encontrar (que é uma das razões, comecei a contribuir aqui). Como tal, se eu postar uma pergunta em nossos recursos oficiais, sou vaiado.
Se alguém puder me dizer as ferramentas adequadas para usar que combinam um bootsplash plymouth e uma /usr
montagem inicial no initramfs/intramfd, eu agradeceria e estou pensando em oferecer uma recompensa, se essa pergunta for válida. Saiba também que, como o Gentoo é baseado em fontes, embora eu tenha vinculado os artigos do Gentoo Wiki, posso usar as ferramentas de outras distribuições.
rsync
comando para mover/usr
enquanto estiver na instalação do Gentoo/usr
para onde precisa ser movido? A pergunta ServerFault sugere isso.Sim, você certamente pode (copiar, não mover?), mas eu sempre usaria um Live USB para esse tipo de coisa. Em um sistema em uso, é plausível que algum processo grave
/usr
enquanto você o copia, o que pode resultar em uma transferência incompleta.rsync
comando, os proprietários do arquivo/diretório mudam, já que o LiveUSB é baseado em uma distribuição Debian?Não, enquanto você estiver usando
-a
, as permissões devem ser preservadas para uma cópia local.rsync
além-a
do arquivo? Os comentários na resposta selecionada no AskUbuntu sugerem adicionar-H
para garantir que os links físicos sejam seguidos, mas o OP contradiz os comentários em sua própria resposta.Conforme discutido nos comentários, se você procurar
-a
emman rsync
, exclui-H
,-A
e-X
. Esses sinalizadores preservam links físicos, ACLs e atributos estendidos. Duvido fortemente que/usr
contenha qualquer um desses, mas não há mal nenhum em usar os sinalizadores, apenas por precaução. Se a fonte não os usa, então não há nada para preservar, entãorsync
funcionaria como se você não tivesse usado os sinalizadores. Também costumo usar-P
, que permite continuar as transferências abortadas e também mostra o progresso à medida que você copia.Posso sugerir um método alternativo?
Não tente mover a
/usr/*
árvore inteira desde que você mencionou que ela quebrou o systemd e também não parece ser necessário para resolver seus problemas de RW intensivo e/ou grande quantidade de espaço desperdiçado (você pode simplesmente mover/usr/portage
)Copie
/usr/portage
para um HDD remoto via rsync rodando a partir do LiveCD/mnt/hdd
/usr/portage
ln -s /mnt/hdd/gentoo/usr/portage /usr/portage
Prefiro não modificar os diretórios padrão (
/usr/portage
é o padrão, mas acredito que você pode modificá-lo), a menos que seja necessário e se eu quiser que eles residam em outro HDD, apenas os vincularei. Você pode apenas criar outra partição para apenas/usr/portage
e montá-la diretamente em/usr/portage
, mas eu prefiro fazer algo como montar todos os meus dados em uma grande partição remota/mnt/data
e, em seguida, symlink diretórios conforme necessário. Eu provavelmente/home
residiria aqui também.Talvez dois esquemas de partição separados assim:
Eu acho que você entendeu a essência.