Eu não sou um especialista do grub2 (desculpe), mas tente adicionar --skip-fs-probe
à sua linha de instalação do grub. Descobri que isso impede a criação de /boot/grub/device.map
, o que pode fazer com que a inicialização seja iniciada pelo grub. Eu acho que sem esse parâmetro o grub-install, em vez de fazer o que você diz, acha que é mais inteligente do que você, e pode fazer algo diferente.
Outra coisa é ter certeza de que você está usando o direito de instalar o grub (ou seja, para o grub2 e não para o grub original). Isto não é um problema se você estiver dentro do Centos, mas com o SystemRecoveryCD ambas as versões estão disponíveis e então você tem que usar grub2-install
. Eu aprendi da maneira mais difícil ...
E como @wurtel apontou (kudos), você deve especificar uma unidade e não uma partição. O Grub2 instala no setor 0 de toda a unidade de disco, e este 'stub' é o que é executado na inicialização, mas ele precisa saber o paradeiro no disco que deve instalar os arquivos para o próximo estágio de inicialização - é isso que o co_de % parâmetro é para. (Eu acho).
Lendo --root-directory
e googling, vejo que man grub-install
não é realmente destinado ao grub2 versões 1.99 ++, embora funcione na minha experiência. Você deve usar --root-directory
e se referir ao diretório de boot atual, então isso lhe daria:
grub-install /dev/sdb --skip-fs-probe --boot-directory=/media/new_drive/boot