2011-10-23 14:14:34 +0000 2011-10-23 14:14:34 +0000
52
52

Avviare da USB usando GRUB

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

Gli ho fatto un boot USB prima di dargli un'occhiata e ho scoperto che il suo BIOS non può avviarsi da USB. L’unica cosa che ho è una console GRUB ma lui è desideroso di installare XP (su USB) e usarlo solo per i film.

È possibile utilizzare la console GRUB per avere accesso all'USB e avviare l'installazione di Windows? È un'impresa ardua, ma penso che questo possa essere il modo, oppure cercare di installare via LAN, cosa che non credo sia fattibile.

Risposte (6)

45
45
45
2014-09-13 03:30:00 +0000

Ecco un rapido esempio di comandi grub che potrebbero funzionare, spiegazioni e avvertenze sotto.

grub2

Molto probabilmente per installazioni successive al 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 quanto la mia, ma se usi il comando per la versione sbagliata, ottieni solo un innocuo errore di sintassi sul primo comando.

Scegliere la giusta root

All'avvio, grub cercherà i vostri dispositivi e assegnerà loro dei numeri. Tutti i dispositivi che sono partizionati (hard disk e flash drive) avranno anche dei numeri assegnati. Il formato è (<deviceName>,<partitionIndex>). In grub2, gli indici delle partizioni sono cambiati, quindi i due esempi sopra hanno lo stesso effetto nonostante sembrino usare radici diverse.

Il tuo primo dispositivo (hd0) è quello da cui grub ha appena caricato. Dopo di che, di solito si può assumere che tutti i dispositivi interni vengano prima di quelli esterni. Molto probabilmente saranno sotto forma di hd e un numero.

Dopo la virgola c'è l'indice della partizione. Gli hard disk e le chiavette saranno quasi sempre partizionati, quindi dovete scegliere la partizione giusta (e molto probabilmente l'unica). 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 root, si può usare il tasto Tab per cercare i nomi dei dispositivi e gli indici delle partizioni. Basta aprire le parentesi e iniziare a premere Tab per vedere l'elenco.

14
14
14
2011-10-24 16:34:02 +0000

Per elaborare il commento di new123456:

Il dispositivo USB dovrebbe essere rilevato come una memoria di massa e trattato come un disco rigido. Quindi, in grub, digitate root (hd (non premete ancora Invio) e poi premete tab una o due volte per vedere quali hard disk Grub può vedere. Il dispositivo USB, se viene riconosciuto, sarà probabilmente hd1. Non specificate un numero di partizione; aggiungete solo una parentesi di chiusura. Quindi la linea sarà root (hd1). Poi, dopo questo, digitate quanto segue:

chainloader +1
boot

Se non funziona, cambiate root (hd1) con root (hd1,0) e riprovate.

Se per qualche ragione Grub non riesce a vedere il drive USB, prova a inserire un CDROM USB e ad avviare da quello.

8
8
8
2014-09-21 20:04:18 +0000

La cosa di chainloader +1 potrebbe non funzionare se il BIOS non è bravo ad avviare da una chiave USB (che era il motivo per cui volevo usare Grub in ogni caso).

In questo caso, c'è qualche magia profonda a https://help.ubuntu.com/community/Grub2/ISOBoot che funziona, almeno per Ubuntu. La parte cruciale consiste nel manipolare il comando grub che identifica il file vmlinuz, passando l'argomento iso-scan/filename. In qualche modo, questo lo aiuta a capire che l'intero filesystem di avvio è bloccato in un file ISO. Non so come diavolo funzioni, ma funziona. 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

Lo /path/to/iso/file dovrebbe essere il percorso del file ISO sulla chiave USB. Lo (fd0,msdos1) identifica la chiave USB. Il tab-completion è super-utile sulla linea loopback, e non è utile per gli argomenti di vmlinuz.

2
2
2
2015-05-08 14:44:49 +0000

Questo non sarà terribilmente utile nel caso del tuo amico (a meno che non ci sia un modo che non conosco per mettere plop sul dispositivo in primo luogo – forse un cd-rom usb, o un floppy drive usb?), ma questa è una piccola applicazione formidabile, che mi ha aiutato ad attrezzare un certo numero di vecchie macchine per avviarle da usb quando il loro bios non lo permetteva. Plop Boot Manager

1
1
1
2020-02-13 00:41:30 +0000

Stavo per lasciare questo come commento al post di @Ekevoo o di @Jonathan, ma non mi è permesso, quindi ecco il mio caso d'uso+soluzione per chiunque possa incontrare questo problema:

L'USB conteneva un GPart Live CD Install, ma il mio BIOS non si avviava da esso per qualche motivo, nonostante abbia funzionato in precedenza (la volta precedente ha funzionato ho installato il CD tramite windows, questa volta l'ho fatto tramite Ubuntu). In Grub, ho eseguito i seguenti comandi e ha funzionato

set root=(hd0)

Questo potrebbe essere diverso per dispositivi diversi, non sono sicuro che sia necessario.

Poi ho eseguito

chainloader (hd0)/EFI/BOOT/grubx64.efi
boot

Il percorso sarà probabilmente diverso per altri sistemi operativi, ma un file simile dovrebbe essere lì. Fai un giro di tab e cercalo.

E questo è stato sufficiente per farlo funzionare.

0
0
0
2014-06-27 01:17:34 +0000

Non puoi avviare da usb in grub se il bios non lo permette. Una volta ho dovuto impostare una sorta di partizione di ripristino su un disco rigido contenente il contenuto del disco di installazione di win7, installare grub, e poi usare quella per avviare la partizione di installazione di win7 per installarlo sul resto del disco rigido.