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 o que eu quero fazer (por exemplo, chroot'int em minha nova raiz apenas confunde todos os scripts).
Background Estou executando o Debian Squeeze em um NAS de baixo consumo de energia. Minha configuração atual é /
on sda0
e /boot
on sde0
(um cartão CF): Eu precisava do /boot
separado porque sd[a-d]
precisa fazer um aumento atrasado. Agora, encontrei um disco IDE de 2,5 "antigo para usar como /
, incluindo /boot
, para permitir que eu desative todos os discos grandes.
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.
Então, fiz uma tentativa fraca de configurar o /mnt/newroot/grub/grub.cfg
para encontrar a imagem do kernel em sdf5
, seguida por um grub-install --root-directory=/mnt/newroot /dev/sdf
. Mas isso acabou me levando um prompt de resgate grub quando tentei arrancar a partir de sdf
.
Meu plano de backup é apenas reinstalar, portanto, uma pergunta bônus (sem marcas de verificação para este): O que devo fazer para configurar minha configuração de lvm2 e mdadm? Tudo é armazenado nos sistemas de arquivos (e será descoberto automaticamente), ou eu preciso tirar isso sozinho?
Solução (graças a Maciej Piechotka): Como Maciej aponta, eu preciso de um chroot adequado para todas as ferramentas do grub funcionarem. 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 para uma discussão das estratégias de cópia). Corrija o novo etc/fstab
para apontar para a 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
Por fim, monte dev
, sys
e proc
na 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 .
Estamos agora fazendo um croquete para a futura raiz exatamente como ela será. De acordo com Maciej, não há problemas em chamar apenas grub-install
, mas eu fiz um update-grub
primeiro para ver o /boot/grub/grub.cfg
gerado antes de instalar o gerenciador de inicialização. Não tenho certeza se será atualizado automaticamente?
root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb