edps
(usa Slackware)
Enviado em 31/08/2019 - 22:19h
O que eu iria sugerir e poupou-me o trabalho está descrito em:
https://github.com/ndeineko/grub2-bios-uefi-usb
basicamente:
1. pega o pendrive e com o cfdisk cria uma partição vfat, vá em type e escolha W95 LBA, depois marque-a como botável:
Se não aperecer essa opção nos tipos de sistemas, é porque sua tabela está como GPT, então vc terá que zerar a tabela de partição:
# cfdisk -z /dev/dispositivo # escolha dos , daí repita os passos acima
* isso eu fiz no 19º comentário em:
https://www.vivaolinux.com.br/topico/UbuntuBR/Mudar-de-DEBIAN-para-UBUNTU-UEFI?pagina=02
2. Se conseguir criar a partição, salvá-la como FAT 32 W95 LBS e marcá-la como inicializável, vá em Gravar ou Write, digite sim ou yes e saia.
3. Formate a partição para FAT32:
# mkfs.vfat -F 32 /dev/sdb1 # isso é só um exemplo
Aí vamos para a parte do link que passei, com algumas modificações:
Mount the filesystem :
# mkdir /mnt/teste
# mount -o umask=000 /dev/sdX1 /mnt/teste
Install /EFI/BOOT/BOOTX64.EFI and other grub files required to load grub from a 64-bit UEFI firmware :
# mkdir -p /mnt/teste/boot/grub
# grub-mkconfig -o /mnt/teste/boot/grub/grub.cfg
# grub-install --removable --boot-directory=/mnt/test/boot --efi-directory=/mnt/teste --target=x86_64-efi /dev/sdX
Eu só não tenho certeza quanto ao último comando, os 2 anteriores foram executados com sucesso aqui:
$ sudo mkdir -p /mnt/teste/boot/grub
$ sudo grub-mkconfig -o /mnt/teste/boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.2.9
Found Windows Boot Manager on /dev/sdb2@/EFI/Microsoft/Boot/bootmgfw.efi
Found Gentoo/Linux on /dev/sdb7
Found void on /dev/sdb8
done
$ sudo cat /mnt/teste/boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
insmod part_gpt
insmod btrfs
set root='hd1,gpt6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt6 --hint-efi=hd1,gpt6 --hint-baremetal=ahci1,gpt6 95d10779-adbb-4546-9fe7-d96b962e20a5
else
search --no-floppy --fs-uuid --set=root 95d10779-adbb-4546-9fe7-d96b962e20a5
fi
if loadfont /usr/share/grub/dejavusansmono.pf2 ; then
set gfxmode=1024x768x32
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=pt_BR
insmod gettext
fi
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Slackware-14.2+ GNU/Linux' --class slackware_14_2_ --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-95d10779-adbb-4546-9fe7-d96b962e20a5' {
load_video
insmod gzio
insmod part_gpt
insmod btrfs
set root='hd1,gpt6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt6 --hint-efi=hd1,gpt6 --hint-baremetal=ahci1,gpt6 95d10779-adbb-4546-9fe7-d96b962e20a5
else
search --no-floppy --fs-uuid --set=root 95d10779-adbb-4546-9fe7-d96b962e20a5
fi
echo 'Loading Linux 5.2.9 ...'
linux /boot/vmlinuz-5.2.9 root=/dev/sdb6 ro quiet gfxpayload=1024x768x32
}
submenu 'Advanced options for Slackware-14.2+ GNU/Linux' $menuentry_id_option 'gnulinux-advanced-95d10779-adbb-4546-9fe7-d96b962e20a5' {
menuentry 'Slackware-14.2+ GNU/Linux, with Linux 5.2.9' --class slackware_14_2_ --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.2.9-advanced-95d10779-adbb-4546-9fe7-d96b962e20a5' {
load_video
insmod gzio
insmod part_gpt
insmod btrfs
set root='hd1,gpt6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt6 --hint-efi=hd1,gpt6 --hint-baremetal=ahci1,gpt6 95d10779-adbb-4546-9fe7-d96b962e20a5
else
search --no-floppy --fs-uuid --set=root 95d10779-adbb-4546-9fe7-d96b962e20a5
fi
echo 'Loading Linux 5.2.9 ...'
linux /boot/vmlinuz-5.2.9 root=/dev/sdb6 ro quiet gfxpayload=1024x768x32
}
}
### END /etc/grub.d/10_linux ###
Se não funcionar, talvez seja problema devido a falta do diretório efi, então crie-o:
# mkdir -p /mnt/teste/boot/efi
# grub-mkconfig -o /mnt/teste/boot/grub/grub.cfg
# grub-install --removable --boot-directory=/mnt/test/boot --efi-directory=/mnt/teste/boot/efi --target=x86_64-efi /dev/sdX
Assim você não meche na configuração da máquina e sim só com o pendrive