Como obter uma distribuição Linux (preferencialmente Ubuntu) instalada em um pendrive USB inicializável tanto EFI e legacy mods?

1

Estou tentando conseguir algo de alguma forma desafiadora. Eu tenho um stick USB bastante rápido e grande (SanDisk Ultra USB 3.0 16GB) que eu gostaria de usar de uma maneira pouco ortodoxa:

  1. Eu preciso de uma partição com um tamanho de cerca de 1 GB, que pode ser lida tanto pelo Windows quanto pelo Linux (como você deve saber, as versões anteriores do Windows não se dão muito bem com pen drives USB multiparticionado. , em tudo? Eles lêem apenas a primeira partição e ignoram o resto)
  2. Eu preciso de uma distribuição Linux (preferencialmente Ubuntu) instalada no stick
  3. Eu preciso que esse bastão seja inicializável nas máquinas legadas e ativadas por EFI.

Instalar o Ubuntu no disco foi bastante simples, e a velocidade do stick é melhor do que eu esperava. Mas eu não consegui inicializar o bastão de uma máquina não UEFI. A máquina simplesmente não lê o bastão e fica pendurada em uma tela totalmente preta.

Então, minha pergunta é:

  • O que eu tento conseguir é possível?

  • Em caso afirmativo, preciso de um esquema especial de particionamento? Estou bem em fazer uma nova instalação.

  • Posso instalar o grub em UEFI e em mods herdados? Se sim, como?

por SercioSoydanov 02.01.2018 / 11:15

1 resposta

1

Is what I try to achieve even possible?

Sim!

If so, do I need a special partitioning scheme? I'm ok with doing a fresh installation.

Você precisará de um esquema especial de particionamento. Pode ser possível modificar o seu existente para caber (tudo que você precisa adicionar é uma pequena partição de inicialização do BIOS de 1MiB), mas vou descrever o esquema de particionamento necessário abaixo.

Can I install grub in both UEFI and legacy mods? If so, how?

Você só precisa instalar o GRUB para cada modo. Abaixo estão as instruções para o Ubuntu e o Debian.

Configuração

Aqui estão as instruções do zero sobre a instalação do Ubuntu nos modos de inicialização herdados e UEFI. Essas instruções funcionam em qualquer disco, não apenas em USB.

Este guia pressupõe que você deseja começar do zero e seu disco é /dev/sdX . Substitua /dev/sdX pelo seu dispositivo de bloco de disco.

  1. Remova todas as partições para obter uma lista limpa:

    sgdisk --zap-all /dev/sdX
    
  2. Crie uma tabela de partições GPT no seu disco:

    sgdisk --mbrtogpt /dev/sdX
    
  3. Você tem uma exigência de uma partição de 1 GB no início do seu pen drive, então aqui está o comando para fazer uma partição de 1GiB (nota: GiB em vez de GB):

    sgdisk --new 3::+1G --typecode 3:0700 /dev/sdX
    
  4. Crie uma partição de inicialização do BIOS. Isso é necessário para adicionar suporte EFI na inicialização herdada.

    sgdisk --new 1::+1M --typecode 1:ef02 /dev/sdX
    
  5. Crie uma partição do sistema EFI:

    sgdisk --new 2::+50M --typecode 2:ef00 /dev/sdX
    
  6. Crie a partição de dados onde você instalará o Ubuntu:

    sgdisk --new 4::+ --typecode 4:8300 /dev/sdX
    
  7. Instale o Ubuntu na unidade flash, usando o esquema de particionamento já definido acima.

    Prossiga para o próximo passo agora apenas se você não quiser usar o instalador gráfico do Ubuntu.

    Se você quiser usar o instalador gráfico do Ubuntu, faça isso agora usando o esquema de particionamento já criado, volte aqui e execute estes comandos:

    mount /dev/sdX4 /mnt
    mount --rbind /dev  /mnt/dev
    mount --rbind /proc /mnt/proc
    mount --rbind /sys  /mnt/sys
    chroot /mnt /bin/bash --login
    

    Como você usou o instalador gráfico, pule para a etapa 17.

  8. Crie um sistema de arquivos para o Ubuntu em /dev/sdX4 , a partição de dados que acabamos de criar:

    mkfs.ext4 /dev/sdX4
    
  9. Monte o novo sistema de arquivos em um caminho temporário:

    mount /dev/sdX4 /mnt
    
  10. Instale barebones Ubuntu (substituindo bionic pelo nome de código da versão do Ubuntu que você deseja instalar):

    debootstrap bionic /mnt
    
  11. Defina o nome do host da sua nova instalação do Ubuntu (substituindo HOSTNAME pelo seu nome de host desejado):

    echo HOSTNAME > /mnt/etc/hostname
    
  12. Configure as fontes de pacotes escrevendo o seguinte conteúdo em /mnt/etc/apt/sources.list (substituindo bionic pelo nome de código da versão do Ubuntu que você instalou):

    deb http://archive.ubuntu.com/ubuntu bionic main universe
    deb-src http://archive.ubuntu.com/ubuntu bionic main universe
    
    deb http://security.ubuntu.com/ubuntu bionic-security main universe
    deb-src http://security.ubuntu.com/ubuntu bionic-security main universe
    
    deb http://archive.ubuntu.com/ubuntu bionic-updates main universe
    deb-src http://archive.ubuntu.com/ubuntu bionic-updates main universe
    
  13. Prepare-se para entrar no novo sistema Ubuntu:

    mount --rbind /dev  /mnt/dev
    mount --rbind /proc /mnt/proc
    mount --rbind /sys  /mnt/sys
    
  14. Faça login no seu novo sistema Ubuntu:

    chroot /mnt /bin/bash --login
    
  15. Configure a localidade (modifique conforme desejado):

    locale-gen en_US.UTF-8
    echo LANG=en_US.UTF-8 > /etc/default/locale
    
  16. Instale o restante do Ubuntu Desktop (substitua ubuntu-desktop pelo sabor que você deseja, se você não quiser o Ubuntu Desktop):

    dpkg-reconfigure tzdata
    ln -s /proc/self/mounts /etc/mtab
    apt update
    apt install -y ubuntu-desktop
    
  17. Instale o GRUB para inicialização herdada:

    apt install -y grub-pc
    
  18. Configure o sistema de arquivos EFI e instale o GRUB para inicialização EFI:

    apt install -y dosfstools
    mkdosfs -F 32 -n EFI /dev/sdX2
    mkdir /boot/efi
    echo PARTUUID=$(blkid -s PARTUUID -o value /dev/sdX2) /boot/efi vfat nofail,x-systemd.device-timeout=1 0 1 >> /etc/fstab
    mount /boot/efi
    apt install -y grub-efi-amd64
    
  19. Configurar o GRUB para inicialização herdada:

    grub-install --target=i386-pc /dev/sdX
    
  20. Configurar o GRUB para inicialização EFI:

    grub-install --target=x86_64-efi /dev/sdX
    
  21. Atualize os arquivos initrd:

    update-initramfs -ckall
    
  22. Atualize a configuração de inicialização do GRUB:

    update-grub
    
  23. Limpe saindo do chroot e desmontando:

    exit
    umount -R /mnt
    

Agora você deve ter o Ubuntu instalado em seu disco com a capacidade de inicializar no modo EFI ou no modo herdado.

/dev/sdX3 é a partição de dados que você solicitou. Você pode formatar isso com um sistema de arquivos compatível com o Windows, conforme desejado.

Agradecimentos

Eu reuni este guia de duas fontes diferentes:

por 02.01.2018 / 14:13