Avvio da USB tramite GRUB


48

Il portatile del mio amico ha avuto un incidente d'auto (sta bene!). Tuttavia, il laptop è molto vecchio, è un Acer Aspire 1520, l'unità CD-ROM è rotta e non è presente un'unità floppy.

Gli ho fatto un avvio USB prima di dare un'occhiata e ho scoperto che il suo BIOS non può avviarsi da USB. L' unica cosa che ho è una console GRUB, ma è interessato a installare XP (su USB) e usarlo solo per i film.

È possibile utilizzare la console GRUB per accedere a USB e avviare l'installazione di Windows? È un ordine elevato, ma penso che questo potrebbe essere il modo giusto o provare a installare via LAN che non credo sia realizzabile.


1
Vorrei provare a ottenere un'unità cd / dvd USB e lavorare per far sì che il computer si avvii.
jmreicha,

1
Questo post mostra i comandi manuali richiesti: devi solo scoprire il numero dell'unità, che può essere realizzato con il completamento della scheda di GRUB.
nuovo123456,

Risposte:


39

Ecco un breve esempio di comandi grub che potrebbero funzionare, spiegazioni e avvertenze di seguito.

grub2

Molto probabilmente per le installazioni post 2010.

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

grub

Molto probabilmente per installazioni precedenti al 2005.

root (hd1,0)
chainloader +1
boot

Per il periodo 2005-2010, la tua ipotesi è buona come la mia, ma se usi il comando per la versione sbagliata, otterrai solo un innocuo errore di sintassi sul primo comando.

Scegliere la radice giusta

All'avvio, grub esaminerà i tuoi dispositivi e assegnerà loro dei numeri. Tutti i dispositivi che sono partizionati (dischi rigidi e unità flash) avranno anche numeri assegnati. Il formato è (<deviceName>,<partitionIndex>). In grub2, gli indici di partizione sono cambiati, quindi i due esempi sopra hanno lo stesso effetto nonostante cerchino di usare radici diverse.

Il tuo primo dispositivo ( hd0) è qualsiasi dispositivo grub appena caricato. Successivamente, di solito puoi presumere che tutti i dispositivi interni verranno prima dei tuoi dispositivi esterni. Molto probabilmente saranno nella forma di hde un numero.

Dopo la virgola è l'indice di partizione. I dischi rigidi e le chiavette USB saranno quasi sempre partizionati, quindi è necessario scegliere la partizione giusta (e molto probabilmente solo). I CD-ROM di solito non sono partizionati.

Ulteriore documentazione: http://www.gnu.org/software/grub/manual/html_node/Device-syntax.html

Quando si sceglie la partizione di root, è possibile utilizzare il tasto Tab per verificare i nomi dei dispositivi e gli indici di partizione. Basta aprire la parentesi e iniziare a premere Tab per visualizzare l'elenco.


5
È anche possibile utilizzare set root=(hd1)(ecc.) Per l'avvio dall'intero dispositivo, se non è partizionato, ad esempio un'unità USB avviabile.
white_gecko,

6
Solo per aggiungere, puoi fare lsper vedere l'elenco dei dispositivi collegati.
AntouanK il

2
So che lo scambio di stack scoraggia i commenti di ringraziamento, ma questa risposta merita davvero uno. Mi hai fatto risparmiare un sacco di tempo.
John Militer,

impossibile trovare il comandoroot
Bjorks numero uno fan il

13

Per elaborare il commento di new123456:

Il dispositivo USB deve essere rilevato come dispositivo di archiviazione di massa e trattato come un disco rigido. Quindi, in grub, digita root (hd(non premere ancora Invio) e quindi premi tab una o due volte per vedere quali dischi rigidi può vedere Grub. Il dispositivo USB, se riconosciuto, sarà probabilmente hd1. Non specificare un numero di partizione; basta aggiungere una parentesi chiusa. Quindi la linea sarà root (hd1). Quindi, digitare quanto segue:

chainloader +1
boot

Se il problema persiste , root (hd1)passa a root (hd1,0)e riprova.

Se per qualche motivo Grub non riesce a vedere l'unità USB, prova a collegare un CD-ROM USB e avviarlo.


7

La chainloader +1cosa potrebbe non funzionare se il BIOS non è in grado di avviarsi da una chiave USB (motivo per cui volevo comunque utilizzare Grub).

In questo caso, c'è un po 'di magia profonda su https://help.ubuntu.com/community/Grub2/ISOBoot che funziona, almeno per Ubuntu. Il bit cruciale è confondere con il comando grub che identifica il vmlinuzfile, passando l' iso-scan/filenameargomento. In qualche modo, ciò aiuta a capire che l'intero filesystem di avvio è bloccato in un file ISO. Non so come diavolo funzioni, ma lo fa. Questi sono (approssimativamente) i comandi di Grub 2 che ho usato:

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

Il /path/to/iso/filedovrebbe essere il percorso del file ISO sulla chiave USB. Il (fd0,msdos1)identifica la chiave USB. Il completamento della scheda è super utile sulla loopbacklinea e non utile per gli argomenti vmlinuz.


Penso di voler rispondere a questa domanda in risposta a una domanda diversa. Vorrei sapere quale!
Paul Stansifer,

In caso di efi/ uefimodalità di avvio, questi grub2comandi generano un errore: error: can't find command 'linux'. Cambia i comandi in linuxefie initrdefi.
Samveen,

Mi piace il concetto qui. Avviare un ISO contenuto in un'unità flash. Ciò trasformerebbe un'unità flash in un buffet di Boot CD. Nell'esempio più funzionale in cui è possibile eseguire l'avvio da CD, non da Flash, è possibile masterizzare un CD selezionato tra di essi in caso di problemi durante l'avvio da USB, giusto?
BenPen,

2

Questo non sarà di grandissimo aiuto nel caso del tuo amico (a meno che non ci sia un modo in cui non sono a conoscenza di far plop sul dispositivo in primo luogo - forse un cd-rom USB o un'unità floppy USB?), Ma questa è una piccola applicazione formidabile, che mi ha aiutato ad equipaggiare un certo numero di vecchie macchine per avviare i sistemi web quando il loro BIOS non lo permetteva.

Plop Boot Manager


0

Non è possibile eseguire l'avvio da USB in grub se il BIOS non lo consente da solo. Una volta ho dovuto installare una sorta di partizione di ripristino su un disco rigido contenente i contenuti del disco di installazione di win7, installare grub e quindi usarlo per avviare la partizione di installazione di win7 per installarla sul resto del disco rigido.


Probabilmente dovrai usare i comandi "insmod usbms" e poi "insmod ehci" o "insmod uhci" prima dei comandi citati.
Claude Frantz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.