Esclarecimento necessário: usando o Rsync para mover / usr

3

Contexto

Eu migrei recentemente o Windows 10 e o Gentoo para dois SSD separados de 250 GB e deixei minhas antigas unidades de HDD SATA tradicionais para uso no Armazenamento.

  1. eu coloquei Users em um HDD para Windows durante uma nova instalação.
  2. Eu usei um LiveCD do GParted para reduzir meu sistema de arquivos raiz e copiei para a nova unidade, reiniciei e excluí a raiz antiga. Estou deixando /home e uma partição de swap na unidade HDD. Isso tudo funciona muito bem, já que estou inicializando usando o UUID.

Como estou no Gentoo, preciso mover apenas o diretório /usr do SSD de volta para o HD original que copiei, para que a árvore do Portage não oculte o pequeno espaço SSD durante as atualizações. Eu não estou marcando isso com o gentoo até agora (veja o cabeçalho de atualização), porque esta questão está relacionada com as opções de comando apropriadas para rsync Para um pouco de contexto, o portage tree é o repositório de pacotes do Gentoo. Todo o repositório é baixado para a máquina local do usuário antes da atualização. Baixá-lo para o SSD causaria desgaste desnecessário, pois a árvore é atualizada diariamente.

Problema

Encontrei as duas perguntas a seguir relacionadas ao que estou tentando realizar:

  1. ServerFault: Monte / usr em partição diferente
  2. AskUbuntu: Como mover / usr para uma nova partição? / a>

Agora, preciso de uma resposta para algumas das minhas próprias perguntas:

  1. Posso usar o comando rsync para mover /usr enquanto estiver na instalação do Gentoo, onde /usr precisa ser movido? A pergunta ServerFault sugere isso.
  2. Se o número 1 não for possível e eu usar o GParted Live USB para emitir o comando rsync , os proprietários de arquivos / diretórios mudam, já que o LiveUSB é baseado em uma distribuição Debian?
  3. Quais são as opções adequadas para rsync além de -a para arquivamento? Os comentários na resposta selecionada no AskUbuntu sugerem adicionar -H para garantir que os hardlinks sejam seguidos, mas o OP contradiz os comentários em sua própria resposta.

Auxílios visuais

Eu preciso mover o diretório /usr da partição ao quadrado em vermelho para a partição vazia ao quadrado em azul, enquanto a partição inteira ao quadrado em vermelho estiver em execução ou usar um LiveCD para fazer isso, sem prejudicar ou alterar a corrente permissões.

Atualizar

Esta questão acabou por ser uma montanha que pode ser conquistada, mas não sei se a conquistei:

  1. Eu posso / movi /usr para uma nova partição usando rsync -avAHPX /mnt/gentoo/usr /mnt/new_usr . Não posso dar crédito por uma resposta parcial, pois ainda estou presa.
  2. 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? (O Systemd está localizado em /usr/lib/systemd )
  3. Eu preciso da montagem antecipada do espaço de usuário para corrigir o problema, mas, para fazer isso, eu perderia minha tela de boot do Plymouth é iniciada com o initramfs necessário para montar /usr antecipadamente. Veja também Initramfs personalizados e Initramfs / Guide .
  4. O suporte e / ou outros usuários do Gentoo não reclamam que o "Systemd Sucks" é difícil de encontrar (que é uma das razões pelas quais comecei a contribuir aqui). Como tal, se eu postar uma pergunta em nossos recursos oficiais, eu serei vaiado.

Se alguém puder me dizer quais são as ferramentas adequadas para usar que combinam tanto o plymouth bootsplash como o early /usr mount no initramfs / intramfd, eu agradeceria, e estou pensando em oferecer uma recompensa, se essa pergunta senta-se. Também sei que, uma vez que o Gentoo é baseado em fontes, apesar de eu ter vinculado os artigos do Wiki do Gentoo, eu posso usar as ferramentas de outras distribuições.

    
por eyoung100 28.09.2018 / 03:32

2 respostas

0

Posso sugerir um método alternativo?

  • Não tente mover a árvore /usr/* inteira desde que você mencionou que ela quebrou o systemd e também não parece ser necessária para resolver seus problemas de RW intensivo e / ou grande quantidade de espaço desperdiçado (você pode apenas mova /usr/portage )

  • Copie /usr/portage para um HDD remoto via rsync executado a partir do LiveCD

  • Monte o HDD na inicialização via FSTAB para um lugar como /mnt/hdd
  • Apagar recursivamente /usr/portage
  • Symlink 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ê possa modificá-lo), a menos que seja necessário, e se eu quiser que eles residam em outro disco rígido, apenas os vincularei. Você pode criar outra partição apenas por /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 em /mnt/data e, em seguida, criar links simbólicos conforme necessário. Eu provavelmente teria /home residir aqui também.

Talvez dois esquemas de partição separados assim:

/mnt/os_data
/mnt/my_data

Eu acho que você tem a essência, espero que ajude.

    
por 06.11.2018 / 12:16
0
  1. Posso usar o comando rsync para mover /usr enquanto estiver na instalação do Gentoo, onde /usr precisa ser movido? A pergunta ServerFault sugere isso.

Sim, você certamente pode (copiar, não se mover?), mas eu sempre usaria um Live USB para esse tipo de coisa. Em um sistema em uso, é plausível que algum processo grave em /usr enquanto você o copia, o que poderia resultar em uma transferência incompleta.

  1. Se o número 1 não for possível e eu usar o GParted Live USB para emitir o comando rsync , os proprietários de arquivos / diretórios mudam, já que o LiveUSB é baseado em uma distribuição Debian?

Não, desde que você esteja usando -a , as permissões devem ser preservadas para uma cópia local.

  1. Quais são as opções adequadas para rsync além de -a para arquivamento? Os comentários na resposta selecionada no AskUbuntu sugerem adicionar -H para garantir que os hardlinks sejam seguidos, mas o OP contradiz os comentários em sua própria resposta.

Conforme discutido nos comentários, se você procurar -a em man rsync , exclui -H , -A e -X . Esses sinalizadores preservam links físicos, ACLs e atributos estendidos. Eu duvido strongmente que /usr contenha qualquer um destes, mas não há nenhum dano em usar as bandeiras, apenas no caso. Se a fonte não os usa, então não há nada para preservar, então rsync funcionaria como se você não tivesse usado os sinalizadores. Eu também tendem a usar -P , que permite que você continue com transferências canceladas e também mostra o progresso enquanto você copia.

    
por 28.09.2018 / 09:31