Como inicializar a partir de um arquivo .iso no GRUB2? [duplicado]

18

Existe uma maneira de fazer isso?

    
por Lincity 05.02.2011 / 10:16

6 respostas

9

Pode ser muito mais fácil do que a impressão que você obtém de todas as explicações detalhadas na web. Acabei de fazer o seguinte no Ubuntu 12.04 para inicializar o FreeDOS .iso para uma atualização de firmware

  • Instalar o grub-imageboot
  • copie seus arquivos .iso para / boot / images /
  • execute update-grub2

Ou copie / cole estes:

sudo -s
apt-get install grub-imageboot
mkdir /boot/images/
cp $YOUR_ISO_FILE.iso /boot/images/

update-grub2

É isso.

Às vezes, você pode precisar de mais 2 etapas para executar antes de executar o update-grub2:

Se você nunca fez isso antes, você precisa editar o arquivo / etc / default / grub para ver o menu grub no boot:

## To show the menu, disable the hidden_timeout, and set a timeout
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=10

Para algumas imagens .iso, você pode precisar adicionar essa opção em / etc / default / grub-imageboot: (Eu precisava disso para o meu FreeDOS .iso)

ISOOPTS="iso raw"

Se você editou uma dessas configurações. arquivos, você precisa executar update-grub2 novamente.

Update: Aqui está a lista de menus resultante pedida por "dma_k"

menuentry "Bootable ISO Image: SV100S2_64_128_120229" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root 6ca082d0-63d0-48c3-9e5f-2ce5d7a74fe4
    linux16 /boot/memdisk iso raw
    initrd16 /boot/images/SV100S2_64_128_120229.iso
}

Isto foi para uma imagem do FreeDOS com alguma atualização de firmware ou algo semelhante.

    
por mivk 08.01.2013 / 17:18
8

Suponho que você queira adicionar uma entrada .iso ao menu GRUB e inicializá-la?

Eu encontrei esta informação nos fóruns do Ubuntu

    
por Mark Rooney 05.02.2011 / 10:44
2

link

% bl0ck_qu0te%

(Nota: se alguém puder usar o formato adequado [CODE], isso seria ótimo. Parece que não consigo funcionar direito. --tyblu)

    
por user10551 10.02.2011 / 04:44
2

Me deparei aqui porque cansei de gravar inúmeras imagens ISO 9660 inicializáveis e, portanto, queria usar o GRUB 2 para fazer o bootstrap de um FreeDOS para atualizar o firmware / microcódigo dos discos rígidos da Seagate. Como complemento ou alternativa à resposta de mivk (usando memdisk do syslinux), o seguinte foi o que eu fiz para alavancar o poder do GRUB 2:

  1. Instale o pacote syslinux-common (para usar memdisk dentro dele; o grub-imageboot é um pacote não-essencial de hooking)
  2. Pressione a tecla 'c' (mnemônico para comando) para ativar o prompt de comando do minirrochir embutido do GRUB 2 (ou, mais precisamente, o shell tipo BASH mínimo)
  3. Emita as 3 linhas de comandos no mini-shell do GRUB 2:
   linux16 (hd0,gpt2)/usr/lib/syslinux/memdisk iso raw
   initrd16 (hd0,gpt3)/myUserAccount/download/Barracuda-ALL-GRCC4H.iso
   boot
   # where Barracuda-ALL-GRCC4H.iso is a FreeDOS-based ISO 9660 image, and 
   # the mathematical 2-tuples or ordered pairs, (hd0,gpt2) and (hd0,gpt3), 
   # are GRUB 2's respective device notations for my rootfs partition 
   # (e.g., /dev/sda2) and home partition (e.g., /dev/sda3).
   # NOTE: This procedure also applies to Seagate's SeaTools (based on 
   #       FreeDOS as well); just substitute the file SeaToolsDOS223ALL.iso 
   #       for Barracuda-ALL-GRCC4H.iso.

Informações sobre memdisk do syslinux estão em link

Ao manipular comandos diretamente no mini-shell, esse procedimento é mais flexível e mais flexível do que a maioria dos métodos citados, já que você não precisa se preocupar em ajustar e atualizar as configurações do GRUB 2 toda vez que quiser experimentar uma distribuição Linux diferente ou um live CD baseado em BSD.

Atualmente, são essas 4 linhas de comandos que podem ser usadas como um padrão genérico no mini-shell do GRUB 2, isto é, a sequência loopback-linux-initrd-boot mais algum argumento ( s) passados para o kernel fornecido, por exemplo, para inicializar o máximo possível de imagens ISO populares do Linux (neste caso, com 3 argumentos de linha de comando do kernel para o CD do System Rescue):

   loopback lb (hd0,gpt3)/myUserAccount/download/systemrescuecd-x86-3.7.0.iso
   linux (lb)/isolinux/rescue64 isoloop=systemrescuecd-x86-3.7.0.iso setkmap=us docache
   initrd (lb)/isolinux/initram.igz
   boot

N.B. A parte loopback do padrão genérico não é, estritamente falando, obrigatória para o Linux, quando você pretende instalar uma distribuição do Linux, como um derivado do Debian, sem desperdiçar um disco ótico.

    
por pseudonym 20.05.2013 / 04:22
0

Como Mark Rooney disse, você pode encontrar um grande guia sobre os Fóruns do Ubuntu .

Isso permitirá que você inicialize a partir de um arquivo ISO, mas somente se o ISO o suportar. (Todas as versões recentes do Ubuntu devem, como várias outras distribuições).

Se você planeja instalar a partir da ISO ao vivo, você deve colocar o arquivo em uma partição diferente da que você vai instalar (desde que você não pode escrever na partição que você está usando). Provavelmente, o instalador irá reclamar de qualquer maneira. O que você precisa fazer é editar manualmente /etc/mtab e remover a entrada que corresponde à partição com o arquivo ISO.

    
por Zifre 05.02.2011 / 17:40
-1

Para inicializar a partir de um arquivo ISO em disco / stick USB, provavelmente a maneira mais amigável é MultiSystem : link

Você apenas arrasta e solta para ter as imagens ISO mais incluídas no menu de inicialização do seu disco / bastão do LiveUSB.

    
por Sadi 31.05.2013 / 13:15