Inicialize a partir do USB usando o GRUB


48

O laptop do meu amigo sofreu um acidente de carro (ele está bem!). No entanto, o laptop é muito antigo, é um Acer Aspire 1520, a unidade de CD-ROM está quebrada e não há uma unidade de disquete.

Fiz uma inicialização via USB para ele antes de dar uma olhada e constatar que o BIOS não pode ser inicializado via USB. A única coisa que tenho é um console GRUB, mas ele deseja apenas instalar o XP (em USB) e usá-lo apenas para filmes.

É possível usar o console do GRUB para acessar o USB e iniciar a instalação do Windows? É uma tarefa difícil, mas acho que pode ser assim, ou tentar instalar via LAN, o que não acho que será possível.


1
Gostaria de tentar obter uma unidade de CD / DVD USB e trabalhar para obter a inicialização do computador.
jmreicha

1
Este post mostra os comandos manuais necessários - você só precisa descobrir o número da unidade, o que pode ser realizado com a conclusão da guia do GRUB.
new123456

Respostas:


39

Aqui está um exemplo rápido de comandos do grub que podem funcionar, explicações e advertências abaixo.

grub2

Provavelmente para instalações pós-2010.

set root=(hd1,1)
chainloader +1
boot

grub

Provavelmente para instalações anteriores a 2005.

root (hd1,0)
chainloader +1
boot

Para o período 2005-2010, seu palpite é tão bom quanto o meu, mas se você usar o comando para a versão errada, você receberá apenas um erro de sintaxe inofensivo no primeiro comando.

Escolhendo a raiz certa

Na inicialização, o grub pesquisará seus dispositivos e atribuirá números a eles. Todos os dispositivos particionados (discos rígidos e unidades flash) também terão números atribuídos. O formato é (<deviceName>,<partitionIndex>). Em grub2, os índices de partição foram alterados; portanto, os dois exemplos acima têm o mesmo efeito, apesar de procurar usar raízes diferentes.

Seu primeiro dispositivo ( hd0) é o que o grub do dispositivo acabou de carregar. Depois disso, você geralmente pode assumir que todos os dispositivos internos virão antes dos seus dispositivos externos. Eles provavelmente estarão na forma de hde um número.

Após a vírgula é o índice da partição. Discos rígidos e pen drives quase sempre serão particionados, portanto, você deve escolher a partição correta (e provavelmente apenas). CD-ROMs geralmente não são particionados.

Mais documentação: http://www.gnu.org/software/grub/manual/html_node/Device-syntax.html

Ao escolher sua partição raiz, você pode usar a tecla Tab para pesquisar nomes de dispositivos e índices de partição. Basta abrir parênteses e começar a pressionar Tab para ver a lista.


5
Também é possível usar set root=(hd1)(etc.) para inicializar a partir de todo o dispositivo, se não estiver particionado, por exemplo, uma unidade USB inicializável.
27416 Maroon

6
Apenas para adicionar, você pode fazer lspara ver a lista de dispositivos conectados.
AntouanK

2
Sei que a troca de pilhas desencoraja os comentários de agradecimento, mas essa resposta realmente merece uma. Você me salvou uma quantidade enorme de tempo.
John Militer

não é possível encontrar o comandoroot
fã número um de Bjorks

13

Para elaborar o comentário de new123456:

O dispositivo USB deve ser detectado como um dispositivo de armazenamento em massa e tratado como um disco rígido. Portanto, no grub, digite root (hd(não pressione Enter ainda) e pressione a tecla tab uma ou duas vezes para ver quais discos rígidos o Grub pode ver. O dispositivo USB, se for reconhecido, provavelmente será hd1. Não especifique um número de partição; basta adicionar um parêntese de fechamento. Então a linha será root (hd1). Depois disso, digite o seguinte:

chainloader +1
boot

Se isso não funcionar, mude root (hd1)para root (hd1,0)e tente novamente.

Se, por algum motivo, o Grub não conseguir ver a unidade USB, tente conectar um CD-ROM USB e inicializá-lo.


7

A chainloader +1coisa pode não funcionar se o BIOS não for bom em inicializar a partir de uma chave USB (e foi por isso que eu estava querendo usar o Grub de qualquer maneira).

Nesse caso, há alguma mágica profunda em https://help.ubuntu.com/community/Grub2/ISOBoot que funciona, pelo menos para o Ubuntu. O ponto crucial é estragar o comando grub que identifica o vmlinuzarquivo, passando o iso-scan/filenameargumento. De alguma forma, isso ajuda a descobrir que todo o sistema de arquivos de inicialização está preso em um arquivo ISO. Eu não sei como diabos isso funciona, mas funciona. Estes são (aproximadamente) os comandos do Grub 2 que eu usei:

loopback loop (fd0,msdos1)/path/to/iso/file
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/path/to/iso/file noprompt noeject
initrd (loop)/casper/initrd.lz
boot

O /path/to/iso/filecaminho deve ser o arquivo ISO na chave USB. O (fd0,msdos1)identifica a chave USB. O preenchimento de tabulação é super útil na loopbacklinha e não é útil para os argumentos vmlinuz.


Eu acho que pretendia responder isso em resposta a uma pergunta diferente. Eu gostaria de saber qual deles!
Paul Stansifer

Em caso de efi/ uefimodos de inicialização, estes grub2comandos gerar um erro: error: can't find command 'linux'. Mude os comandos para linuxefie initrdefi.
Samveen 25/09

Eu gosto do conceito aqui. Inicialize um ISO que está contido em uma unidade flash. Isso transformaria uma unidade flash em um buffet de CD de inicialização. No exemplo mais funcional em que você pode inicializar a partir do CD, e não o Flash, você pode gravar um CD escolhido entre eles se houver um problema ao inicializar a partir do USB, certo?
BenPen 3/03

2

Isso não será muito útil no caso de seu amigo (a menos que exista uma maneira de eu desconhecer o dispositivo em primeiro lugar - talvez um CD-ROM USB ou uma unidade de disquete?), Mas Esta é uma aplicação pequena e fantástica, que me ajudou a montar várias máquinas antigas para inicializar a partir de usbs quando a BIOS não permitia.

Gerenciador de Inicialização Plop


0

Você não pode inicializar a partir do usb no grub se a bios não permitir isso. Certa vez, tive que configurar uma espécie de partição de recuperação em um disco rígido contendo o conteúdo do disco de instalação do win7, instalar o grub e, em seguida, usei isso para inicializar a partição de instalação do win7 e instalá-la no restante do disco rígido.


Você provavelmente terá que usar os comandos "insmod usbms" e depois "insmod ehci" ou "insmod uhci" antes dos comandos mencionados.
Claude Frantz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.