Como criar USB multiboot com Linux

Como criar USB multiboot com Linux

Objetivo

Crie um dispositivo USB inicializável contendo várias distribuições Linux.

Requisitos

  • Um dispositivo USB com tamanho suficiente para conter vários ISOs
  • Permissões radiculares para modificar as partições do dispositivo e instalar o grub

Dificuldade

MÉDIO

Introdução

Ser capaz de executar um sistema operacional inteiro diretamente de uma mídia de instalação, é extremamente útil: podemos testar uma distribuição, usá -lo para fins de backup ou talvez para reparar um sistema existente. A maneira usual de criar uma mídia inicializável é escrever uma imagem do sistema usando o dd comando ou alguma ferramenta dedicada. Neste tutorial, veremos como criar um dispositivo USB multiboot que pode hospedar várias imagens de distribuições.

Uma palavra sobre bios vs uefi

Uefi (Interface de firmware extensível unificado) É o firmware moderno criado como um substituto para o legado BIOS (Sistema Básico de Entrada e Saída). A maioria das distribuições recentes do Linux pode inicializar nos dois modos sem problemas: o instalador ajustará automaticamente seu comportamento de acordo.

Os dois firmwares estão, por padrão, associados a um layout de tabela de partição específico: Uefi anda de mãos dadas com Gpt, enquanto BIOS Vem com o msdos um. Essas associações, no entanto, não são estritamente obrigatórias, pois, pelo menos em teoria, um Uefi o firmware pode iniciar o processo de inicialização de um msdos layout de disco e um legado BIOS o sistema pode fazer o mesmo de um Gpt disco particionado.



No primeiro caso Efi a partição deve ser a primeira no disco e ser formatada com o FAT32 Fileystem, neste último, um BOTO BIOS Partição sem qualquer sistema de arquivos nele deve existir, necessário para armazenar o estágio 1 da Grub 1.5, desde um Gpt Layout A lacuna entre o registro de bota mestre e a primeira partição não existe (é aqui que esse estágio de Grub geralmente é instalado).

Vamos preparar nosso dispositivo usando um tradicional msdos layout, instalando o carregador de inicialização do grub no modo EFI e Legacy para poder iniciar as distribuições ambos em Uefi e BIOS modo.

Preparando o dispositivo

A primeira coisa que precisamos fazer é preparar nosso dispositivo. Criaremos duas partições, em ordem:

  • Um Efi partição
  • Uma partição de dados

O primeiro é necessário para inicializar Uefi modo, já que é onde o grub-efi é instalado. A partição deve ser formatada com um FAT32 sistema de arquivo. Teoricamente, a configuração funcionaria mesmo com apenas esta partição, pois também poderíamos usá -la para armazenar as imagens de distribuições que queremos usar. No entanto, nesse caso, seríamos limitados, pois FAT32 não suporta arquivos Lager que 4 GB, e alguns ISO podem exceder esse tamanho.

A segunda partição será formatada com um sistema de arquivos suportado pelo GRUB e hospedará as imagens e os arquivos de configuração do GRUB.

Para o bem deste tutorial, assumirei que o dispositivo que queremos preparar é /dev/sdb.

A tabela de partição e a partição EFI

A primeira coisa a fazer é criar um msdos Tabela de partição no dispositivo:

$ sudo partido -s /dev /sdb mklabel msdos

Após esta etapa, podemos criar o Efi partição e formate -o com um FAT32 sistema de arquivo. O tamanho recomendado para a partição é 550 MIB: Em partições menores, poderíamos receber um erro como "clusters insuficientes para gordura de 32 bits":

$ sudo partido -s /dev /sdb mkpart primário 1mib 551mib


Vamos então prosseguir na ativação do esp e bota bandeiras:

$ sudo partido -s /dev /sdb Conjunto 1 ESP em $ sudo separado -s /dev /sdb Definir 1 bota em 

Finalmente devemos criar o FAT32 sistema de arquivo:

$ sudo mkfs.gordura -f32 /dev /sdb1

A partição de dados

A outra partição que devemos criar é a partição de dados, que hospedará as imagens ISO das distribuições e os arquivos de configuração do GRUB. Podemos ajustar o tamanho da partição para nossas necessidades: quanto maior é, a maior parte das imagens ela poderá conter. Aqui usaremos todo o espaço restante no dispositivo:

$ sudo partido -s /dev /sdb mkpart primário 551mib 100%

Podemos formatar a partição com um dos sistemas de arquivos suportados por Grub. Nesse caso, vou usar ext4:

$ sudo mkfs.ext4 /dev /sdb2

Crie os MountPoints e monte as partições

O próximo passo é montar o Efi Partição e a partição de dados em algum lugar do nosso sistema para que possamos criar os diretórios necessários, instalar o Grub e colocar nossos arquivos ISO no local:

# Crie os MountPoints $ sudo mkdir /mídia /efi, dados # montar a partição efi $ sudo montagem /dev /sdb1 /mídia /efi # montar a partição de dados $ sudo mount /dev /sdb2 /mídia /dados 

Instalando o carregador de inicialização do Grub

Para que nosso dispositivo possa trabalhar em ambos legado e Uefi modos que precisamos instalar o grub e o grub para efi. Em Fedora, o binário do Grub, é chamado GRUB2 e para gerar uma configuração personalizada em uma configuração da UEFI, a instalação do Módulos Grub2-EFI o pacote também é necessário. Em algumas outras distribuições, o nome do binário é apenas "Grub":

# Instalando o Legacy Grub2 Sudo Grub2-Install \--Target = i386-PC \--Recheck \ --boot-Directory = "/Media/Data/Boot"/Dev/Sdb # Instalando Grub para EFI Sudo Grub2-Install \-- -target = x86_64 -fi \--Recheck \--removable \ --efi-Directory = "/Media/Efi" \---Directory = "/Media/Data/Boot" 

Como você pode observar, em ambos os casos usamos /mídia/dados/inicialização Como o diretório de bota do grub. Este diretório será criado automaticamente quando os comandos acima forem lançados e hospedará arquivos de configuração do GRUB.

Copie as imagens e crie o grub.Arquivo CFG

Para criar ou atualizar uma configuração de grub em um sistema Linux moderno, geralmente executamos o GRUB2-MKCONFIG comando, ou, em distribuições baseadas em Debian, o update-grub wrapper-script. Essas ferramentas executam as operações necessárias automaticamente.



No nosso caso, no entanto, devemos sujar as mãos e criar a configuração manualmente. Nem todas as distribuições exigem as mesmas diretivas, mas aqui verá alguns exemplos comuns. Primeiro, devemos criar o diretório que hospedará as imagens de nossas distribuições:

$ sudo mkdir/mídia/data/boot/iso

Opcionalmente, podemos querer aproveitar esse diretório, para poder mover imagens nele com mais facilidade. Assumindo a eu ia e Gid de 1000 nós funcionaríamos:

$ sudo chown 1000: 1000/mídia/dados/boot/iso

Agora, suponha que queremos incluir a mais recente imagem do Fedora Netinstall em nossa configuração. Primeiro, temos que baixar a imagem no /mídia/dados/iso diretório:

$ wget -o/mídia/data/boot/iso/fedora-workstation-netinst-x86_64-28-1.1.iso \ https: // download.FedoraProject.org/pub/fedora/linux/liberações/28/workstation/x86_64/iso/fedora-workstation-netinst-x86_64-28-1.1.ISO 

Então, depois que o download terminar, devemos adicionar uma entrada para ele no grub.cfg arquivo no /mídia/dados/boot/grub2 diretório. Como é a primeira entrada, adicionamos o próprio arquivo deve ser criado:

MENUENTRY "Fedora-WorkStation-Netinst-X86_64-28-1.1 "isofile ="/boot/iso/fedora-workstation-netinst-x86_64-28-1.1.ISO "loopback loop" $ isofile "linux (loop)/isolinux/vmlluz iso-scan/filename =" $ isofile "inst.Stage2 = HD: Label = Fedora-WS-DVD-X86_64-28 Initrd Silencioso (Loop)/Isolinux/Initrd.img 

A estrutura de entrada é bem simples: definimos o isofile variável, com o caminho para a nossa imagem como um valor. Grub é capaz de inicializar a partir de uma diretora ISO, e é isso loopback O comando é para: No exemplo acima, a imagem do sistema de arquivos será montada e disponibilizada no laço dispositivo.

A linha começando com Linux contém o caminho para vmlluz, que é o executável do kernel, além de outras diretrizes de inicialização. Entre eles você pode notar ISO-Scan/FileName que é necessário para encontrar a imagem ISO no disco usando o caminho especificado.



Finalmente, a linha começando com initrd Especifica o caminho para o initrd. Todos esses caminhos são, obviamente, em relação ao dispositivo de loop, é por isso que eles são prefixados pelo (laço) notação.

Como sabemos as diretivas que devemos usar em um caso específico? Uma maneira é montar a imagem em algum lugar do nosso sistema e dar uma olhada nos arquivos colocados no diretório isolinux. No entanto, a configuração pré-escrita já existe e é fácil de encontrar online.

Outro exemplo, agora: adicionaremos a última imagem de lançamento do Ubuntu ao nosso dispositivo inicializável:

$ wget http: // libera.Ubuntu.com/18.10/Ubuntu-18.10-DESKTOP-AMD64.ISO?_ga = 2.232120863.1006005768.1540658570-734439277.1540658570 \ -o/mídia/data/boot/iso/ubuntu -18.10-DESKTOP-AMD64.ISO 

Agora, adicionamos a entrada ao arquivo de configuração:

menuEntry "Ubuntu 18.10 - Tente sem instalar "isofile ="/boot/iso/ubuntu -18.10-DESKTOP-AMD64.ISO "loopback loop" $ isofile "linux (loop)/casper/vmlluz iso-scan/filename =" $ isofile "boot = casper silencioso splash --- initrd (loop)/casper/initrd 

Aqui está a aparência do nosso MultiBoot-Menu neste momento:

Menu Grub Multiboot

Pensamentos finais

Neste tutorial, vimos como criar um dispositivo multiboot-USB contendo muitas imagens de distribuições. Após essa configuração, poderemos inicializar os dois no firmware da UEFI, escolhendo qual imagem lançar no menu Grub.

O
grub.A configuração do CFG aqui apresentada é absolutamente mínima e pode ser personalizada para incluir muitos outros módulos e ajustar outras configurações, como o tempo limite da GRUB: consultar a documentação oficial da GRUB é a maneira perfeita de começar a explorar as muitas possibilidades.

Tutoriais do Linux relacionados:

  • Crie Manjaro Linux inicializável USB
  • Introdução ao resgate do GRUB
  • Como criar o MS Windows Usb inicializável em Linux
  • Como criar um USB multiboot com Ventoy
  • Ubuntu 22.04 Não inicialização: Guia de solução de problemas
  • Crie ubuntu inicializável 22.04 disco de inicialização USB
  • Como fazer um USB inicializável a partir de um ISO no Linux
  • Coisas para instalar no Ubuntu 20.04
  • Ubuntu 22.04 Backup e restauração do sistema
  • Crie um ubuntu inicializável 20.04 USB Stick no MS Windows 10