Como inicializar a partir de imagens ISO ao vivo não-Ubuntu, como o Fedora ou o CentOS?

24

Descobri que isso pode ser feito com loopback da seguinte forma

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
}

Mas funciona apenas com o Ubuntu ou seus derivados. Como deve ser escrito se eu quiser iniciar outras imagens ao vivo como fedora, cent, opensuse etc.?

Edit: Eu encontrei algumas outras entradas, mas todas elas provavelmente são baseadas no 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: Como encadear grub e syslinux de grub2 ?

Edit3: Eu quero inicializar outras imagens ao vivo sem nenhum dispositivo removível e usar grub2 , então preciso de entradas de menu específicas para grub2 .

    
por Rahul Virpara 25.05.2012 / 06:19

7 respostas

19

A inicialização da iso é um recurso que deve ser suportado pela distro, e a opção iso-scan/filename= não funcionará no Fedora ou em outros. Aqueles podem ter outras opções de kernel para este recurso ou o recurso pode não ser suportado de forma alguma.

Eu encontrei um método para inicializar o DVD do Fedora 16, abaixo.

Inicializando o Fedora 15 DVD iso from 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
}

Ele assume que seu arquivo iso está na raiz da segunda partição do disco rígido interno.

fonte: esta página

Você pode procurar outra distribuição no google, já que não é um recurso independente de distro.

Nota 1: Também funcionou com o Fedora 16, acabei de testá-lo.
Nota 2: Parece que o método funcionou quando colocou o iso arquivo em uma partição fat ou ext4.

Inicializando o grml small iso do grub2

O

Grml também pode ser inicializado a partir do grub2. Observe que ele usa a opção findiso em vez da opção iso-scan/filename , indicando que a inicialização da iso é implementada como opções diferentes em distribuições diferentes.

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

Esta página tem vários exemplos de outras distros sendo inicializadas no Grub2.

Inicializando o openSUSE 13.1 Live from iso

Aqui está a única solução que funcionou (todos os outros me deram um Falha ao encontrar o identificador do MBR e pararam). Neste exemplo, o iso é colocado na terceira partição do primeiro disco no diretório /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/username/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
}

A fonte é comentário do janeppo .

Fedora 17 Gnome Live Iso

Aqui está a entrada do menu de inicialização grub.cfg para o Fedora 17. o iso é colocado na terceira partição do primeiro disco. Além disso, o nome do arquivo é alterado.

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
}

Última nota: acho que esta resposta serve como um exemplo. Não deve ser elaborado mais com exemplos.

    
por Anwar 27.05.2012 / 11:26
3

Aqui estão quais arquivos iso eu descobri para inicializar usando grub2 .

Eu inicializei com sucesso seguindo os ISOs

  • Ubuntu Precision Pangolin 12.04 ISO
  • SystemRescueCd
  • Ferramenta de detecção de hardware de inicialização
  • Dos grátis
  • CD de inicialização do Hiren
  • CD de inicialização definitivo

Descobri que se você deseja inicializar outros ISOs como o CD de inicialização do Hiren, etc., você pode usar o utilitário MEMDISK como kernel.

Onde obter o MEMDISK?

Faça o download do Syslinux em aqui . Mova-o para o Desktop.

Como fazer isso funcionar?

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 

Em seguida, cole as entradas abaixo no gedit. Você precisará alterar set isofile="/path/to/iso-file.iso" .

Em seguida, emita update-grub . Reinicie e verifique.

Minhas entradas no arquivo 40_custom .

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
}

Todas as ISOs são mantidas em sda6/OS e MEMDISK é mantido na partição onde o ubuntu está instalado (na raiz) e renomeado para memdisk4.05 , então o caminho para ele é /customboot/memdisk4.05

nota: o fedora não funcionou com a outra resposta dada. Ainda tentando inicializar o fedora :(.

    
por virpara 09.06.2012 / 16:43
1

O que você está pedindo está fora do tópico aqui, já que requer conhecimento desses outros sistemas para poder configurar as entradas do grub para inicializá-los corretamente. Sim, é possível.

No entanto ... Você encontrará o Multi System uma ferramenta competente para ter muitos ISOs de distribuição diferentes em uma grande unidade USB. Eu acho que funciona muito bem, mas você terá que instalá-lo a partir de um PPA:

link

Eu o uso para que eu possa ter o Livepart do Gparted e outras ferramentas, bem como as do Ubuntu em um pendrive para o InstallFests. Como bônus, ele permite uma tela personalizada para o menu, que defini para o logotipo da equipe LoCo da Austrália.

Chris

Como afirmado, o Multisystem usa o Grub2 para fazer o que você quiser. Já que este tópico fora do tópico está sendo permitido, ou pelo menos tolerado, aqui está a entrada do Fedora do meu 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
 }

Note que você não pode inicializar diretamente do ISO, pois não é suportado como é com distribuições baseadas no Debian. Você precisará dos arquivos descompactados da ISO disponíveis no disco rígido da seguinte maneira:

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

Você precisará mudar a localização do diretório / fedora / e o UUID da partição que está inicializando o Fedora. Você provavelmente também deve alterar o modo de montagem de ro para rw, bem como qualquer outra coisa apropriada, como as permissões no squashfs.

Você também pode configurar um disco de persistência virtual, embora eu não veja nenhuma razão para você não conseguir montar sua partição normal / home. Novamente, só posso sugerir que você instale o Multidisk e faça a configuração sozinho para aprender como fazer isso.

Chris

    
por fabricator4 27.05.2012 / 11:13
1

Parece que o 13.04 requer uma sintaxe diferente para conseguir isso. Alguém já inicializou com sucesso o ubuntu-13.04-desktop-amd64.iso a partir de um disco físico e gostaria de compartilhar a sintaxe do grub?

EDIT: Respondeu minha própria pergunta. Precisa renomear vmlinuz para mvlinuz.efi e funciona.

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
}
    
por user130567 27.04.2013 / 15:03
1

Eu acho que usar o loopback do grub2 é inestimável para testar novos isos sem precisar de um pendrive ou gravar em CD. Existem bugs contra o Fedora para fazer algo parecido. Rastrear o status atual é um pouco demorado.

por grantbow 15.05.2013 / 23:58
0

Tente usar o Multisystem, instalando os liveCDs que você deseja e copiando os arquivos para o / e mesclando o grub.cfgs! (Estou realmente curioso para ver se funcionaria!).

    
por WindowsEscapist 30.05.2012 / 00:23
0

infelizmente nenhuma destas recomendações não me ajudou. Então eu encontrei o caminho e gostaria de compartilhar com você. Para inicializar o centos por exemplo você precisa: Coloque imagem iso no diretório. Se o seu diretório root estiver montado em / dev / sda1, crie dir / iso e coloque iso lá. vá ao grub console (quando aparecer menu grub pressione 'c'.)

Escolha o dispositivo apropriado - hd0 significa sda. Você precisa escolher um onde você está localizado.

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 inicialize!

    
por Дмитрий Бод 23.08.2017 / 21:48