Come eseguire l'avvio da immagini ISO live non Ubuntu come Fedora o CentOS?


26

Ho scoperto che può essere fatto loopbackcome segue

menuentry "Lucid ISO" {
loopback loop (hd0,1)/boot/iso/ubuntu-10.04-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-10.04-desktop-i386.iso noprompt noeject
initrd (loop)/casper/initrd.lz
}

Funziona solo con Ubuntu o suoi derivati. Come dovrebbe essere scritto se voglio avviare altre immagini dal vivo come fedora, centesimo, opensuse ecc.?

Modifica: ho trovato alcune altre voci ma tutte probabilmente sono basate su Debian.

menuentry "Linux Mint 10 Gnome ISO" {
 loopback loop /linuxmint10.iso
 linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper initrd=/casper/initrd.lz iso-scan/filename=/linuxmint10.iso noeject noprompt splash --
 initrd (loop)/casper/initrd.lz
}

menuentry "DBAN ISO" {
 loopback loop /dban.iso
 linux (loop)/DBAN.BZI nuke="dwipe" iso-scan/filename=/dban.iso silent --
}


menuentry "Tinycore ISO" {
 loopback loop /tinycore.iso
 linux (loop)/boot/bzImage --
 initrd (loop)/boot/tinycore.gz
}


menuentry "SystemRescueCd" {
 loopback loop /systemrescuecd.iso
 linux (loop)/isolinux/rescuecd isoloop=/systemrescuecd.iso setkmap=us docache dostartx
 initrd (loop)/isolinux/initram.igz
}

Edit2: come eseguire il chainload grube syslinuxda grub2?

Edit3: Voglio avviare altre immagini live senza dispositivi rimovibili e utilizzare grub2quindi ho bisogno di voci di menu specifiche grub2.


1
Questo non è fuori tema, ancora unix e lo scambio di stack di Linux è meglio unix.stackexchange.com
Tachyons

@Rinzwind how ??
Tachyons,

2
La domanda riguarda fedora, centOS e opensuse. Non su Ubuntu. @abcd
Rinzwind,

2
A proposito: Fedora non è in grado di farlo. CentOS è fondamentalmente Fedora. dracutpresenta una richiesta di funzionalità e deve essere patchato per questo. Puoi trovare questa patch su bugzilla.redhat.com
Rinzwind

Risposte:


19

L'avvio da ISO è una funzione che deve essere supportata dalla distribuzione e l' iso-scan/filename=opzione non funzionerà in Fedora o in altri. Questi potrebbero avere altre opzioni del kernel per questa funzione o la funzione potrebbe non essere affatto supportata.

Ho trovato un metodo per avviare Fedora 16 DVD, qui sotto.

Avvio di Fedora 15 DVD iso da grub

menuentry "Fedora 15 (DVD)" {
 insmod loopback
 insmod iso9660
 set isofile = "/ Fedora-15-x86_64-DVD.iso"
 loopback loop (hd0,2) $ isofile
 linux (loop) / isolinux / vmlinuz rootfstype = auto root = live: UUID =: $ isofile ro quiet
 initrd (loop) /isolinux/initrd.img
}

Presuppone che il file iso sia alla radice della seconda partizione del disco rigido interno.

fonte: questa pagina

Puoi cercare un'altra distribuzione in google, poiché non è una funzione indipendente dalla distro.

Nota 1: ha funzionato anche con Fedora 16, l'ho appena testato.
Nota 2: sembra che il metodo abbia funzionato quando si posiziona il file iso in una partizione fat o ext4.


Avvio di grml piccoli iso da grub2

Grml può anche essere avviato da grub2. Si noti che utilizza l' findisoopzione anziché l' iso-scan/filenameopzione, indicando che l'avvio da iso è implementato come opzioni diverse in diverse distribuzioni.

(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
}

Questa pagina contiene diversi esempi di altre distro che si avviano da Grub2.


Avvio di openSUSE 13.1 Live da iso

Ecco l'unica soluzione che ha funzionato (tutti gli altri mi hanno dato un identificativo MBR non riuscito e si sono fermati). In questo esempio, l'iso viene posizionato nella terza partizione del primo disco nella directory /home/username/.

menuentry "openSUSE_13.1_GNOME_Live" {
  load_video
  insmod gzio
  insmod part_msdos
  insmod ext2
  set root = '(hd0, msdos3)'
  set isofrom_device = '/ dev / sda3'
  set isofrom_system = '/ home / nomeutente / openSUSE-13.1-GNOME-Live-i686.iso'
  set loader = '/ boot / i386 / loader'
  loopback loop $ isofrom_system
  linux (loop) $ loader / linux isofrom_device = $ isofrom_device isofrom_system = $ isofrom_system ramdisk_size = 512000 ramdisk_blocksize = 4096 ro quiet splash $ vt_handoff preloadlog = / dev / null showopts
  initrd (loop) $ loader / initrd
}

La fonte è il commento di janeppo .


Fedora 17 Gnome Live Iso

Ecco la voce del menu di avvio grub.cfg per Fedora 17. L'iso viene posizionato nella terza partizione del primo disco. Anche il nome file è cambiato.

menuentry "Fedora Live" {
    loopback loop (hd0,3) /fedora.iso
    linux (loop) / EFI / BOOT / vmlinuz0 root = live: /fedora.iso rootfstype = auto ro liveimg quiet rhgb rd.luks = 0 rd.md = 0
    initrd (hd0,3) / initrd-fromiso
}

Ultima nota: penso che questa risposta serva da esempio. Non dovrebbe essere elaborato più con esempi.


Ho provato sopra l'ingresso per fedora 15 ma non ha funzionato. Qualche ipotesi?
Rahul Virpara,

la mia voce assomiglia a questo pastebin.com/1ksBVu21
Rahul Virpara

3

Ecco quali file iso ho capito per avviare utilizzando grub2.

Ho avviato con successo i seguenti ISO

  • Ubuntu Precise Pangolin 12.04 ISO
  • SystemRescueCd
  • Strumento di rilevamento hardware di avvio
  • DOS gratuito
  • CD di avvio di Hiren
  • CD di avvio definitivo

Ho scoperto che se si desidera avviare altri ISO come il CD di avvio di Hiren, ecc., È possibile utilizzare l' MEMDISKutilità come kernel.

Dove ottenere MEMDISK?

Scarica Syslinux da qui . Spostalo sul desktop.

Come farlo funzionare ?

cd ~/Desktop/
tar xvif syslinux-4.05.tar.xz 
cd syslinux-4.05/memdisk/
sudo mkdir /customboot
sudo mv memdisk /customboot/
cd /customboot/
sudo mv memdisk memdisk4.05
gksudo gedit /etc/grub.d/40_custom 

Quindi incolla sotto le voci in gedit. Dovrai cambiare set isofile="/path/to/iso-file.iso".

Quindi rilasciare update-grub. Riavvia e controlla.

Le mie voci nel 40_customfile.

menuentry "Ubuntu Natty Narwhal 11.04 ISO" {
    set isofile="/OS/ubuntu-11.04-desktop-i386.iso"
    loopback loop (hd0,6)$isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject --
    initrd (loop)/casper/initrd.lz
}
menuentry "Ubuntu Precise Pangolin 12.04 ISO" {
    set isofile="/OS/ubuntu-12.04-desktop-i386.iso"
    loopback loop (hd0,6)$isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject --
    initrd (loop)/casper/initrd.lz
}
menuentry "SystemRescueCd" {
    set isofile="/OS/systemrescuecd-x86-2.7.0.iso"
    loopback loop (hd0,6)$isofile
    linux (loop)/isolinux/rescuecd isoloop=$isofile setkmap=us docache dostartx
    initrd (loop)/isolinux/initram.igz
}
menuentry "Boot Hardware Detection Tool from iso using memdisk 4.05" {
    linux16 /customboot/memdisk4.05 iso
    initrd16 /customboot/hdt.iso
}
menuentry "Free Dos from iso using memdisk 4.05" {
    set isofile="/OS/fdbasecd.iso"
    linux16 /customboot/memdisk4.05 iso
    initrd16 (hd0,6)$isofile
}
menuentry "Hiren's boot CD using memdisk 4.05" {
    set isofile="/OS/Hiren's.BootCD.10.1.iso"
    linux16 /customboot/memdisk4.05 iso
    initrd16 (hd0,6)$isofile
}
menuentry "Ultimate Boot CD iso using memdisk 4.05" {
    set isofile="/OS/ubcd511.iso"
    linux16 /customboot/memdisk4.05 iso
    initrd16 (hd0,6)$isofile
}

Tutti gli ISO sono mantenuti attivi sda6/OSe MEMDISKmantenuti sulla partizione in cui è installato Ubuntu (in root) e rinominato in memdisk4.05modo tale che sia/customboot/memdisk4.05

nota: fedora non ha funzionato con l'altra risposta fornita. Sto ancora cercando di avviare fedora :(.


Nota, quando si caricano file ISO con memdisk e grub initrd16, il file ISO deve essere inferiore a 462 MB. Messaggi di errore correlati: grub: errore: impossibile trovare la destinazione di memoria adatta , memdisk: MEMDISK: nessuna immagine ramdisk specificata . Per maggiori dettagli vedi qui e qui .
Gregn3,

2

purtroppo nessuna di queste raccomandazioni non mi ha aiutato. Quindi ho trovato la strada e mi piacerebbe condividere con te. Per avviare centos, ad esempio, è necessario: Metti l'immagine iso nella directory. se la directory principale è montata su / dev / sda1, quindi crea dir / iso e inserisci iso lì. vai alla console di grub (quando appare il menu grub premi 'c'.)

Scegli il dispositivo appropriato: hd0 significa sda. Devi sceglierne uno in cui ti trovi.

loopback loop (hd0,msdos1)/iso/Redhat.iso 
linux (loop)/isolinux/vmlinuz inst.repo=hd:sda1:/iso/Redhat.iso 
initrd (loop)/isolinux/initrd.img 
boot

E avvialo!


1

Quello che stai chiedendo è fuori tema qui, poiché richiede la conoscenza di quegli altri sistemi per essere in grado di impostare le voci di grub per avviarle correttamente. Sì, è possibile.

Tuttavia ... Troverai Multi System uno strumento competente per avere molti ISO distro diversi su una grande unità USB. Trovo che funzioni davvero molto bene, ma dovrai installarlo da un PPA:

http://www.pendrivelinux.com/multiboot-create-a-multiboot-usb-from-linux/

Lo uso in modo da poter avere Gparted LiveUSB e altri strumenti, così come quelli di Ubuntu su un pendrive per InstallFest. Come bonus, consente una schermata iniziale personalizzata per il menu, che ho impostato sul logo per il team australiano LoCo.

Chris

Come detto, Multisystem utilizza Grub2 per fare ciò che desideri. Dal momento che questo thread off-topic è permesso, o almeno tollerato, ecco la voce Fedora dal mio Multisystem Grub2:

 menuentry "Fedora-15-i686-Live-Desktop.iso" {
 linux /fedora1/isolinux/vmlinuz0 live_locale=en_AU.UTF-8 live_keytable=us live_dir=/fedora1 root=UUID=493A-D2EF rootfstype=auto ro liveimg quiet rhgb rd_NO_LUKS rd_NO_MD noiswmd
 initrd /fedora1/isolinux/initrd0.img
 }

Si noti che non è possibile avviare direttamente dall'ISO poiché non è supportato come nelle distribuzioni basate su Debian. Avrai bisogno dei file decompressi dalla ISO disponibili sul disco rigido come segue:

chris@chris-office:/media/RED8/fedora1$ ls -l
total 563972
drwx------ 2 chris chris      4096 Feb 11  2011 isolinux
-rw-r--r-- 1 chris chris     43503 May 14  2011 livecd-iso-to-disk
-r--r--r-- 1 chris chris      8192 May 14  2011 osmin.img
-r--r--r-- 1 chris chris 577449984 May 14  2011 squashfs.img

Dovrai ovviamente cambiare la posizione della directory / fedora / e l'UUID della partizione su cui stai avviando Fedora. Probabilmente dovresti anche cambiare la modalità di mount da ro a rw, così come qualsiasi altra cosa appropriata, come i permessi su squashfs.

Probabilmente puoi anche impostare un disco di persistenza virtuale, anche se non vedo alcun motivo per cui non puoi montare la tua partizione normale / home. Ancora una volta, posso solo suggerire di installare Multidisk e fare la configurazione da soli per imparare come farlo.

Chris


la domanda è: come creare una voce esistente GRUB2 non come rendere pendrive avviabile o disco rigido esterno con diverse distribuzioni. A proposito, richiede una migliore conoscenza GRUB2rispetto ad altre distro, quindi è in realtà una questione relativa GRUB(perché alcune distro usano ancora GRUB) o GRUB2.
Rahul Virpara,

1
Direi che fare una voce grub per distribuzioni come Fedora, Centos e Suse è molto più correlato a quelle distro che a grub, e certamente niente a che fare con Ubuntu.
fabricator4,

1
@virpara: Inoltre non è stato specificato che si stanno avviando ISO dal disco rigido: il motivo più ragionevole per voler avviare vari LiveISO è disporre di un dispositivo di installazione completo. Non siamo lettori di mente o esperti in altre distro. Infine, se in realtà installi e usi MultiSystem per fare un pendrive in questo modo, ti mostrerà come farlo - usa grub2 per ottenere i risultati desiderati.
fabricator4

1

Sembra che 13.04 richieda una sintassi diversa per raggiungere questo obiettivo. Qualcuno ha avviato con successo ubuntu-13.04-desktop-amd64.iso da un disco fisico e vorrebbe condividere la sintassi di grub?

EDIT: ha risposto alla mia domanda. È necessario rinominare vmlinuz in mvlinuz.efi e funziona.

menuentry "Ubuntu-13.04-desktop-amd64.iso" --class ubuntu {
set isofile="/archives/ubuntu-13.04-desktop-amd64.iso"
loopback loop (hd1,6)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noeject noprompt --
initrd (loop)/casper/initrd.lz
}


0

Prova a utilizzare Multisystem, installa i liveCD che desideri, quindi copia i file sul tuo / e unisci grub.cfgs! (In realtà sono curioso di vedere se funzionerebbe!).

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.