ti-enxame.com

Instalando o Grub 2 em uma unidade flash USB

MultiBootISOs é uma ferramenta que permite instalar o Grub em uma unidade flash USB. Eu realmente gosto disso, porque me permite inicializar a partir de arquivos ISO e me permite colocar um monte de ISOs no meu USB e escolher qual inicializar.

O problema é que esta é uma ferramenta do Windows e não sei como fazê-lo através das linhas de comando. Também gostaria de saber como instalar o Grub (2) dessa maneira, o Grub Legacy parece ser mais fácil ...

Edição: Eu não estou pedindo uma ferramenta (e definitivamente não é uma ferramenta do Windows). Quero conhecer os comandos que tenho que executar para ter os mesmos efeitos. Estou com o Ubuntu em mente agora, mas se houver uma maneira geral de inicializar qualquer ISO no USB, isso seria melhor.

30
phunehehe

Você me deixou curioso como isso seria feito. O site do Pendrivelinux teve um tutorial Eu fiz isso na minha instalação do Mint 9 em vez de um CD ao vivo, como o site sugere.

Comecei com a localização da minha unidade USB em um terminal em que corri df ela retornou a localização do dispositivo como

/dev/sdg1   /media/LINUXUSB

depois disso eu corri

Sudo su

e depois instalar o grub 2

grub-install --no-floppy --force --root-directory=/media/LINUXUSB /dev/sdg1

Eu tive que usar --force adicionalmente, o exemplo no site não. Então eu fiz

cd /media/LINUXUSB/boot/grub

O site forneceu um link para baixar uma cópia do grub.cfg no diretório/boot/grub na minha unidade USB. O link foi

wget http://pendrivelinux.com/downloads/grub.cfg

Depois disso, editei o grub.cfg para refletir os iso na minha unidade USB.

set timeout=10 set default=0

menuentry "Run Fedora" {
    loopback loop /Fedora13.iso
    linux (loop)/isolinux/vmlinuz0 boot=isolinux iso-scan/filename=/Fedora13.iso splash --
    initrd (loop)/isolinux/initrd0.img
}

menuentry "Run Ubuntu" {
    loopback loop /ubuntu-10.04-netbook-i386.iso 
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04-netbook-i386.iso splash --
    initrd (loop)/casper/initrd.lz
}

menuentry "Run Clonezilla" {
    loopback loop /clonezilla.iso
    linux (loop)/live/vmlinuz boot=live iso-scan/filename=/clonezilla.iso splash --
    initrd (loop)/live/initrd.img }

Eu descobri que nos diferentes iso's, vmlinuz e initrd estavam localizados em um diretório diferente. Consegui que os três iniciassem o processo de inicialização; mas, apenas o Ubuntu realmente carrega. Se eu descobrir o que preciso para que os outros dois terminem o carregamento, acrescentarei isso mais tarde. Eu não tentei nenhum outro iso é apenas esses três.

18
Steve Burdine

Tutorial completo do GRUB2 Bootloader é um bom local para iniciar configurações de inicialização múltipla com o GRUB2.
Se você estiver familiarizado com o GRUB, vá direto para a seção 5th ou 6th .

Há também uma pergunta de superusuário em Configurando um sistema de inicialização múltipla com o GRUB .
Há também uma página da comunidade Ubuntu MultiOSBoot , que sugere que você deve seguir o Legacy GRUB.

A técnica funciona em unidades flash muito desde que sua máquina possa inicializá-las.
Eu tenho trabalhando com flash drives há algum tempo .

5
nik

Finalmente encontrei um script que realmente funciona ao inicializar o Fedora 18 iso do usb: http://git.marmotte.net/git/glim/plain/Fedora18-fromiso

Os detalhes estão aqui: http://git.marmotte.net/git/glim/plain/README

0
valentt

passei horas na internet tentando descobrir como gerar um grub.cfg funcionando para um disco removível.

finalmente, com base no script de aqui , criei meu script de trabalho (o conteúdo abaixo é do grub.cfg):

### inputs ###
set UUID_ESP="E8C0-B8AE"
set UUID_ISO="c11f533e-a298-4381-950a-5d6d1f7f5907"
### end ###


search --no-floppy --set=ESP --fs-uuid $UUID_ESP # the address of the ESP
set ESP=($ESP) # add parentheses
echo "The address of the ESP is $ESP"
search --no-floppy --set=ISO_PART --fs-uuid $UUID_ISO # the address of the ISO partition
set ISO_PART=($ISO_PART) # add parentheses
echo "The partition on the flash drive with the iso is $ISO_PART"
echo "the prefix is $prefix" # GRUB folder with modules
sleep 5

insmod efi_gop
insmod font

if loadfont $ESP/boot/grub/fonts/unicode.pf2
then
        insmod gfxterm
        set gfxmode=auto
        set gfxpayload=keep
        terminal_output gfxterm
fi

menuentry "Arch_linux_iso" {
        set ISOFILE="/archlinux-2019.10.01-x86_64.iso"
        loopback loop ${ISO_PART}${ISOFILE}
        linux (loop)/Arch/boot/x86_64/vmlinuz img_dev=/dev/disk/by-uuid/$UUID_ISO img_loop=$ISOFILE
        initrd (loop)/Arch/boot/intel_ucode.img (loop)/Arch/boot/AMD_ucode.img (loop)/Arch/boot/x86_64/archiso.img
}
0
user3804598