Como criar USB multiboot com Linux
- 4967
- 347
- Loren Botsford
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 MultibootPensamentos 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