Alguém tem uma sugestão de como mover a partição raiz para uma nova unidade e configurar o grub2 para inicializar nessa unidade? Parece que não tenho sorte em instruir o grub-mkconfig sobre o que quero fazer (por exemplo, chroot'int na minha nova raiz apenas confunde todos os scripts).
Background Estou executando o Debian Squeeze em um NAS de baixa potência sem cabeça. Minha configuração atual está /ligada sda0e /bootativada sde0(um cartão CF): eu precisava do separado /bootporque sd[a-d]precisava fazer uma rotação atrasada. Agora eu encontrei um disco IDE antigo de 2,5 "para usar como /incluso /bootpara permitir que eu gire todos os grandes discos.
O que eu tentei Basicamente eu fui
mount -o rw /dev/sdf5 /mnt/newroot
cp -ax / /mnt/newroot
cp -ax /boot /mnt/newroot/boot
Então eu tentei
chroot /mnt/newroot
update-grub
Mas isso falhou com o grub perguntando se o root estava montado. Em seguida, fiz uma tentativa tímida de configurar /mnt/newroot/grub/grub.cfga imagem do kernel sdf5, seguida de a grub-install --root-directory=/mnt/newroot /dev/sdf. Mas isso me deu um prompt de resgate quando tentei inicializar sdf.
Meu plano de backup é apenas reinstalar, então uma pergunta bônus (sem marcas de seleção para este): O que devo fazer para obter minha configuração de lvm2 e mdadm? Tudo está armazenado nos sistemas de arquivos (e será descoberto automaticamente) ou eu mesmo preciso retirá-lo?
Solução (graças a Maciej Piechotka): Como Maciej aponta, eu preciso de um chroot adequado para que todas as ferramentas do grub funcionem. Para referência, é assim que eu fiz:
janus@nasguld:/mnt/newroot$ sudo cp -ax / /mnt/newroot
janus@nasguld:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot
Todos os arquivos agora são copiados (veja aqui uma discussão sobre estratégias de cópia). Corrija o novo etc/fstabpara apontar para uma nova raiz:
janus@nasguld:/mnt/newroot$ diff -u etc/fstab.old etc/fstab
-UUID=399b6a6d-c067-4caf-bb3e-85317d66cf46 / ext3 errors=remount-ro 0 1
-UUID=b394b614-a977-4860-bbd5-7862d2b7e02a /boot ext3 defaults 0 2
+UUID=b9d62595-e95c-45b1-8a46-2c0b37fcf153 / ext3 noatime,errors=remount-ro 0 1
Finalmente, montar dev, syse procpara a nova raiz e chroot:
janus@nasguld:/mnt/newroot$ sudo mount -o bind /dev /mnt/newroot/dev
janus@nasguld:/mnt/newroot$ sudo mount -t proc none /mnt/newroot/proc
janus@nasguld:/mnt/newroot$ sudo mount -t sysfs none /mnt/newroot/sys
janus@nasguld:/mnt/newroot$ sudo parted /dev/sdb set 5 boot on
janus@nasguld:/mnt/newroot$ sudo chroot .
Agora estamos chrootados para a raiz futura exatamente como ela será. De acordo com Maciej, não há problema em apenas ligar grub-install, mas fiz o update-grubprimeiro para dar uma olhada no gerado /boot/grub/grub.cfgantes de instalar o gerenciador de inicialização. Não tenho certeza de que será atualizado automaticamente?
root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb
/etc/fstabno chroot(isso seria consistente com a update-grubreclamação de que "\ não está montado"). Se eu fizesse isso novamente, tentaria primeiro sem me preocupar em montar os sistemas de arquivos especiais no chroot.
/etc/default/grube a transcrição exata deupdate-grub.