Estou em um sistema Debian / Squeeze (com um histórico que remonta a pelo menos Woody) que foi atualizado para o grub2 como parte da atualização do Squeeze. Tudo funciona bem, mas estou prestes a mexer com a configuração do disco.
Atualmente, a máquina executa duas unidades de 80 GB com partições RAID1-ed /, / home e / boot (há outro par de unidades com um "/ data" RAID1-ed e algumas trocas, caso alguém esteja se perguntando onde está a troca. , mas não estou tocando neles).
Adicionei 2 SSDs de 130 GB, particionei-os para serem pelo menos tão grandes quanto as partições nas unidades de 80 GB e pretendo mudar para as novas unidades SSD aumentando os RAID1s para incluí-los, aguardando sincronização e removendo os antigos unidades a partir das matrizes para restarem apenas os SSDs (e depois aumentar os sistemas de arquivos). Mas mdadm / ext3 wrangling não é o que esta pergunta é sobre ...
Isso me deixará com 2 unidades obsoletas de 80GB (IDE) que eu quero remover da máquina. Minha preocupação é que removê-los levará algum MBR crucial com eles. Como garantir que a máquina permaneça inicializável?
Mais especificamente:
Quando fiz a atualização do Squeeze, lembro que havia alguma opção apresentada sobre quais unidades o grub2 deveria instalar (eu fui com o padrão, que era todas as unidades). Os SSDs não estavam na máquina no momento; como posso executar novamente isso para instalar o grub nos MBRs SSD? (Eu estou supondo que é um dpkg-reconfigure de algum pacote).
Como posso encontrar em quais unidades o grub2 pensa que está instalado? Boa sorte, existem quase 200 arquivos em / boot / grub / nos dias de hoje! Onde olhar ? Além disso, parece um pouco estranho o fato de o /boot/grub/device.map.auto listar apenas três unidades atualmente (2 dos 80GBs, mas apenas um dos outros pares de unidades e nenhum dos SSDs). Como faço para atualizar isso? ( Atualização: isso era um arenque vermelho; device.map.auto parece ser uma relíquia de anos atrás; device.map parecia sensato em uma atualização do grub-mkdevicemap. Acho que minha paranóia nessa área se origina do BIOS de um mobo antigo que reordene a ordem do dispositivo vista pelo GRUB por capricho).
Resultado: tudo correu bem e agora tenho as duas antigas unidades IDE de 80 GB prontas para uso e um sistema de inicialização rápido e rápido executando SSDs RAID1-ed com todos os sistemas de arquivos redimensionados para seus novos tamanhos de partição. A outra "peça que faltava no quebra-cabeça do Grub" que eu estava procurando era dpkg-reconfigure grub-pc
quais solicitações para quais discos manter um MBR ativado. A resposta de Aaron realmente fez muito para me garantir que isso estava funcionando como o esperado, portanto, aceitando essa resposta.
dd if=/dev/sda bs=1 count=512 | grep -aob GRUB
. Isso retornará a posição do marcador dentro do setor de inicialização.Existem várias etapas no processo de inicialização (estou descrevendo um BIOS de PC tradicional):
/boot/grub
.(hd0)/boot/grub
) que determina onde encontrargrub.cfg
e mais módulos do Grub.grub.cfg
é executado, normalmente para mostrar um menu e inicializar um sistema operacional.O setor de inicialização é gerado por
grub-setup
, normalmente chamadogrub-install
. O setor de inicialização termina em qualquer disco que você especificou (na sintaxe do Linux) na linha de comandogrub-install
ougrub-setup
. Você pode verificar se possui um setor de inicialização em um disco executandofile -s /dev/sda
. Como você está adicionando um novo disco e deseja inicializá-lo, é necessário executargrub-install
o novo disco. Executargrub-install
várias vezes no mesmo disco é inofensivo.A parte difícil está na etapa 2 acima. Se possível, coloque o Grub (ou seja, o
/boot/grub
diretório) no disco de inicialização do BIOS (ou, aproximando-o da outra direção, diga ao BIOS para inicializar a partir do disco onde/boot/grub
está). É aqui quedevice.map
entra em jogo. Verifique se(hd0)
está mapeado para o disco que contém/boot/grub
e executegrub-install
no disco.Se seus dois discos estiverem em uma configuração de software RAID-1, você terá setores de inicialização idênticos. Esse é o comportamento desejável: se um disco que é o disco de inicialização do BIOS falhar, a inicialização pelo outro funcionará (pois eles contêm os mesmos bytes nos mesmos locais relevantes). Se você espelhou apenas determinadas partições, a instalação de um setor de inicialização afeta apenas um dos discos. Você deve executar
grub-install
novamente no segundo disco, depois de alterardevice.map
para associar(hd0)
ao disco que contém a segunda cópia espelhada de/boot/grub
.O passo 3 é bastante complexo, mas geralmente funciona imediatamente. Na etapa 4, o Grub localiza sistemas de arquivos por UUID ou procura por arquivos nomeados, para que você não precise mais se preocupar com as várias maneiras de designar discos.
fonte