Come posso avviare un file ISO in GRUB? Il file ISO si trova su una partizione reiserfs e GRUB può accedervi (già testato).
Come posso avviare un file ISO in GRUB? Il file ISO si trova su una partizione reiserfs e GRUB può accedervi (già testato).
Risposte:
Il problema più grande con l'avvio di un file ISO è che gli ISO progettati per l'avvio sono quasi sempre progettati per l'avvio da un CD . Come spiegato sul blog di Marco riguardo a Grub 2 (enfasi sul mio):
GRUB può leggere immagini ISO9660 ("iso"). Ad esempio, può caricare i primi settori e avviarlo. Ma la maggior parte delle persone non si rende conto che "cosa allora?". Cosa farebbe il sistema operativo caricato? Molto probabilmente cercherà un CD-ROM, che non troverà, e fallirà.
Quindi il modo più semplice per eseguire l'avvio da un file ISO casuale è caricarlo in una macchina virtuale (VirtualBox, VMware o Virtual PC) come un CD virtuale e avviarlo lì. Dovrebbe funzionare quasi sempre, perché per la VM non è un file ISO, è un vero CD su hardware CD reale.
L'avvio da un file ISO su bare metal è molto più difficile. Il modo in cui lo fai dipende dalla versione di Grub che stai utilizzando e i risultati possono differire a seconda dell'ISO che stai utilizzando e da come è stato configurato per l'avvio. Questo è il motivo per cui la maggior parte degli strumenti ISO di avvio da USB (Unetbootin, WinToFlash, ecc.) Di solito estrae i contenuti ISO sull'unità, perché in questo modo è possibile accedervi direttamente, senza confondere il sistema operativo avviato.
... non sono sicuro. Se possibile, le voci di menu probabilmente assomigliano molto a Grub4DOS, anche se penso che il comando "map --hook" sia un miglioramento di Grub4DOS. Tra i lati positivi, Grub ha un supporto file system più ampio rispetto a Grub4DOS.
Una nota su Grub con reiserfs (non confermata) indica che "devi montare la tua partizione notail
per farlo funzionare".
Memdisk è un'opzione; vedi sotto.
Grub4DOS offre alcune "emulazioni CD" sperimentali che funzionano con alcuni ISO. Sfortunatamente, Grub4DOS legge solo filesystem FAT32 / NTFS. Scarica Grub4DOS.
Ecco una voce di esempio ( fonte ):
title fdfullcd.iso (0xFF)
find --set-root /fdfullcd.iso
map /fdfullcd.iso (0xFF)
map --hook
root (0xFF)
kernel /isolinux/data/memdisk
initrd /isolinux/data/fdboot.img
Presumibilmente l'ISO Win7 può essere avviato con questa voce :
title Windows 7
map (hd0,0)/win7.iso (hd32)
map --hook
chainloader (hd32)
Altre ISO possono essere avviate con Memdisk :
title Boot Hardware Detection Tool from iso image (with 'iso' parameter)
kernel /memdisk iso
initrd /hdt.iso
Puoi anche usare un configuratore di menu come MultiBootISOs.exe da PenDriveLinux . Posizionare ISO sull'unità flash ed eseguire l'utilità per installare il bootloader e configurare il menu di avvio.
Ecco un episodio di Hak5 sull'installazione di Grub4DOS.
Ecco un paio di esempi di voci Grub2. chainloader al momento non funziona per avviare un ISO, quindi queste voci devono (1) utilizzare il loopback per "montare" l'ISO e (2) aggiungere qualcosa come iso-scan o findiso alla riga di linux che specifica il file ISO.
Sfortunatamente, non esiste un modo generico per farlo. Ogni voce di avvio diversa deve essere personalizzata in base al contenuto ISO di destinazione. La maggior parte dei LiveCD di Linux utilizza ISOLINUX come bootloader; trova isolinux.cfg ed esamina quella voce di avvio per vedere cosa si avvia di solito.
Voci di esempio ( fonte ):
menuentry "Ubuntu Live 9.10 32bit" {
loopback loop /boot/iso/ubuntu-9.10-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-9.10-desktop-i386.iso noeject noprompt --
initrd (loop)/casper/initrd.lz
}
menuentry "Grml small 2009.10" {
loopback loop /boot/iso/grml-small_2009.10.iso
linux (loop)/boot/grmlsmall/linux26 findiso=/boot/iso/grml-small_2009.10.iso apm=power-off lang=us vga=791 boot=live nomce noeject noprompt --
initrd (loop)/boot/grmlsmall/initrd.gz
}
Se stai provando ad avviare un LiveCD non Linux, potresti essere sfortunato. Ancora una volta, Memdisk può aiutare :
menuentry "Boot Hardware Detection Tool from iso" {
linux16 /memdisk iso
initrd16 /hdt.iso
}
È possibile utilizzare dd dal terminale per scrivere un file ISO in una partizione. Fai solo attenzione, se usi erroneamente puoi cancellare tutto. Dovrebbe essere simile a questo: dd if = Desktop / LinuxCDFile.iso di = / Path / To / Partition