Transferir 2 unidades do sistema raid0 / lvm2 para o novo par de unidades

2

Eu tenho um sistema multi-boot, multi-drive que eu quero transferir para duas unidades maiores.

Atualmente o pc tem drives 2x1TB com o Fedora 19 rodando, usando o espelhamento da unidade RAID0, com o LVM2 no topo do md. Eu quero transferir todo o conjunto de sistemas de arquivos md / lvm para um novo par de drives de 2 TB configurados no mesmo arranjo raid0 / lvm2. Além do Fedora, existem partições do Windows 7 e outras partições diversas para copiar.

Para dificultar as coisas, o sistema de arquivos raiz do Fedora existe na partição md / lvm2, então eu preciso trazer toda essa infra-estrutura. / boot está em uma partição primária real.

Assim, posso instalar as duas novas unidades ao mesmo tempo em que as unidades antigas ainda estão instaladas, por isso é basicamente uma grande tarefa de cópia, mas os detalhes são complicados.

Usando um disco de inicialização do GParted Live, posso entrar e configurar as novas unidades em um novo raid0 e lvm2 vg chamado "pool2". O vg original é chamado de "pool". Particiono & monte os novos sistemas de arquivos e tar / copie todos os arquivos do antigo para o novo. Mas agora as duas partes duras estão me mordendo.

  1. Obtendo o grub2 para instalar / inicializar a nova cópia da partição Fedora.
  2. Obtendo o Windows para inicializar em sua nova cópia.

Na verdade, nunca tente o segundo, Então, para o número 1, veja os detalhes do que tentei e onde fiquei preso.

Após a cópia, eu desconecto as unidades antigas e altero as novas unidades para sda e sdb. Inicializando novamente com o boot iso, Então eu tenho que iniciar manualmente o raid0 com os comandos:

mdadm -E --scan
mdadm -A /dev/md0

Sem erros, / proc / mdstat mostra o ataque ativo com o RAID0.

Então eu tenho que iniciar manualmente o vg com:

vgchange -a y pool2

Agora, reinstale o grub2 nas novas partições:

mount /dev/mapper/pool2-root /mnt/fedora
mount /dev/sda1 /mnt/fedora/boot

cd /mnt/fedora
mount -o bind /dev dev
mount -o bind /proc proc
mount -o bind /sys sys
mount -t tmpfs tmpfs tmp
chroot /mnt/fedora
grub2-install /dev/sda

Tudo parece estar bem. Mas quando eu tento reiniciar a partir das novas unidades de disco, eu não obtenho nada como se o grub2 não fosse encontrado, ou eu recebo o menu grub e ele falha durante a inicialização muito cedo, porque ele não consegue encontrar o sistema de arquivos raiz.

O que eu acho que está acontecendo é que todo o arquivo grub.cfg ainda está cheio de referências antigas, como:

root=/dev/mapper/pool-root
rd.lvm.lv=pool/root
and probably UUIDs wrong.

(lembre-se que as novas unidades estão no pool2). Eu também suspeito que talvez as configurações do initrd estejam incorretas para os novos locais.

Alterar manualmente esses valores no grub.cfg não parece ajudar, então como posso fazer isso funcionar? Eu acho que estou muito perto, mas tendo que fazer um monte de comandos manuais em md / lvm2 / grub2 eu não sou especialista, e estou perdendo alguma coisa.

    
por bfoddy 29.03.2014 / 22:34

1 resposta

1

Primeiro, o raid0 é striping, o espelhamento é o raid1. Com o raid0, se uma unidade falhar, você perde tudo.

Você não quer criar um novo grupo de volumes. Você deseja particionar os novos discos deixando espaço para / boot e uma partição para o raid e, em seguida, use mdadm --create para criar um novo ataque de partições nos novos discos. Em seguida, você usa pvcreate para inicializar a nova matriz de raid para uso com lvm e vgextend para adicionar a nova matriz de raid ao grupo de volumes existente e pvmove para migrar tudo da matriz antiga e usar vgreduce para remover a matriz antiga do grupo de volumes. Finalmente, você vai querer copiar sua partição / boot para os novos discos e reinstalar o grub neles com grub-install .

    
por 30.03.2014 / 03:44