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 sda0
e /boot
ativada sde0
(um cartão CF): eu precisava do separado /boot
porque sd[a-d]
precisava fazer uma rotação atrasada. Agora eu encontrei um disco IDE antigo de 2,5 "para usar como /
incluso /boot
para 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.cfg
a 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/fstab
para 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
, sys
e proc
para 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-grub
primeiro para dar uma olhada no gerado /boot/grub/grub.cfg
antes 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/fstab
no chroot
(isso seria consistente com a update-grub
reclamaçã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/grub
e a transcrição exata deupdate-grub
.