Eu tenho um disco rígido de laptop em um gabinete externo que eu uso como um pendrive grande. Para uma reviravolta adicional, eu instalei o Linux nele, para que eu possa inicializar qualquer máquina com minha distribuição de escolha (por exemplo, para recuperação de dados ou reparo de um sistema b0rked ou apenas usando um laptop emprestado sem destruir o Windows pré-instalado). O problema é que, dependendo da configuração do hardware, o disco rígido USB pode estar visível em diferentes caminhos. Para a configuração do grub, eu apenas uso (hda0,0)
, pois é relativo ao dispositivo do qual o grub foi iniciado. Tenho entradas UUID no /etc/fstab
. Também especifico rootwait
nos parâmetros do kernel para que ele aguarde o subsistema USB se acalmar antes de tentar montar o dispositivo.
O que devo passar para o kernel como root=
? Atualmente, inicialize a partir do pendrive uma vez, verifique as mensagens de depuração para ver qual /dev/sdX
dispositivo foi atribuído à unidade USB pelo kernel, depois reinicie e edite a configuração do grub. Não posso alterar nada no PC além de ativar o Boot from USB hard drive
BIOS e defini-lo como prioridade mais alta do que os discos rígidos internos.
Existem vários scripts geradores do initrd que incluem suporte ao UUID no caminho do dispositivo raiz, infelizmente o nativo do Gentoo (genkernel) não suporta rootwait
e não tive sorte em tentar usar outros.
O processo de inicialização é assim ( é bastante semelhante no Windows ):
- O BIOS escolhe o dispositivo de inicialização e carrega qualquer que seja seu MBR (que passa a ser o grub stage-1).
- O Grub carrega seus arquivos de configuração e estágio 2 do dispositivo que ele definiu como
root
, usando(hd0)
o dispositivo para o qual foi carregado pelo BIOS. - O Grub carrega e inicia um kernel (ainda com a mesma numeração, para que eu possa usá-lo
(hd0,0)
novamente). - O kernel inicializa todos os dispositivos embutidos (
rootwait
isso é mágico agora). - O kernel monta a partição na qual foi passada como
root
(este é um parâmetro do kernel, não um parâmetro do grub). init.d
inicia o processo de inicialização do usuário, incluindo a montagem de itens/etc/fstab
.
A parte 5 é a que está me dando problemas.
Eu poderia estar enganado ou possivelmente apenas estar entendendo mal você, mas a escolha do dispositivo de inicialização não é algo que seria configurado a partir do BIOS da máquina que você está inicializando?
Eu acho que seria uma questão de escolher a unidade USB, que teria o GRUB instalado como seu carregador de inicialização, e depois escolher a distribuição que você deseja inicializar no menu GRUB.
fonte
Você pode usar:
fonte