Migrar disco com Arch Linux
Vou usar o exemplo da minha máquina, então, claro que se estiver migrando do HD /dev/sdb para o /dev/sdc modifique-os de acordo, não me responsabilizo caso você perca TODOS OS SEUS ARQUIVOS.
Eu fiz todos os processos usando um pendrive de instalação do Arch, assim todos os passos seguintes foram feitos usando o usuário root.
Primeiro, crie a partição que será de destino, no meu caso, usei o cfdisk e criei o sistema de arquivo assim:
# mkfs.ext4 -U aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /dev/sdb2
É importante usar o mesmo UUID do HD anterior para que não seja necessário mudar as configuraões em /etc, mas se você souber quais são os arquivos que devem ser modificados, não haverá problema algum.
Montei a partição anterior em /last-root:
# mkdir /last-root
# mount -t ext4 /dev/sda2 /last-root
E a partição de destino em /next-root:
# mkdir /next-root
# mount -e ext4 /dev/sdb2 /next-root
Com isso feito usei o rsync, desta forma:
# rsync -a --delete -xHAXW /last-root/ /next-root
ATENÇÃO: digite o comando rsync tal qual pois, por exemplo: se esquecer o / do /last-root pode, e dará, errado.
A flags do rsync:
-a, é para archive, i. e., arquivar;--delete, faz com que os arquivos apagados em/last-root/sejam também apagados em/next-root(isso é útil caso inicie o processo, mas seja necessário parar por algum motivo qualquer para voltar a usar o HD antigo);-W, é para copiar arquivos inteiros, por padrão o rsync copia apenas os diffs, mas como não estamos trabalhando com sincronização que precisa ser feito regularmente ou trabalhando via rede…;-H, preserva hardlinks;-A, preserva ACLs;-X, preserva atributos extendidos;
Entrei no /next-root com o comando arch-chroot:
# arch-chroot /next-root
E executei o comando para reinstalar os pacotes:
# pacman -S $(pacman -Qnq)
A primeira vez que eu migrei de HD tive problemas com as permissões de alguns comandos, então mandei apenas reinstalar o comando que deu problema e tudo voltou ao normal, desta vez estou preferindo reinstalar tudo.
Esse último comando mantem quais pacotes foram explicitamente instalados.
Ainda dentro do chroot, reinstalei o grub:
# grub-install --recheck /dev/sdb
Como eu usei a mesma UUID para o novo disco, certifique-se de que removeu o HD anterior (ou que formatou, gerando assim uma outra UUID).
E, se assim como no meu desktop tiver mais de um HD, certifique-se também de escolher o novo HD no momento do boot.