Grub2: различия между версиями

Материал из sysadm
Перейти к навигации Перейти к поиску
(Новая страница: « <pre> # установка grub2 в MBR на USB mkdir /mnt/usb mount /dev/sdXN /mnt/usb mkdir /mnt/usb/boot grub2-install --no-floppy --root-directory=/mnt/usb...»)
 
 
(не показано 6 промежуточных версий этого же участника)
Строка 1: Строка 1:
  
 +
'''Загрузка с флешки в режиме UEFI'''
 +
* EFI System раздел должен иметь специальный тип
 +
** для MBR: EF
 +
** для GPT: 01
 +
* USB диск не обязательно размечать в GPT, чтобы использовать EFI загрузку
 +
* EFI System раздел поддерживает только FAT12/16/32, exfat не поддерживается
 +
* FAT32, размер файла не может превышать 4ГБ, это проблема если нужно размещать большие ISO образы
 +
* exfat, поддерживает файлы больше 4ГБ и поддерживается в grub2, Windows, MacOS, Linux
 +
* Если нужно грузить флешку с EFI, то можно создать небольшой раздел с FAT16 для EFI загрузки, а второй раздел отформатировать в exfat
 +
 +
'''Установка grub2 в MBR на USB'''
 
<pre>
 
<pre>
# установка grub2 в MBR на USB
 
 
mkdir /mnt/usb
 
mkdir /mnt/usb
 
mount /dev/sdXN /mnt/usb
 
mount /dev/sdXN /mnt/usb
 
mkdir /mnt/usb/boot
 
mkdir /mnt/usb/boot
 +
 
grub2-install --no-floppy --root-directory=/mnt/usb --boot-directory /mnt/usb/boot --target i386-pc /dev/sdX
 
grub2-install --no-floppy --root-directory=/mnt/usb --boot-directory /mnt/usb/boot --target i386-pc /dev/sdX
 +
 +
# в некторых дистрибутивах команда имеет имя grub-install
 +
</pre>
 +
 +
'''Установка grub2 на USB в EFI раздел'''
 +
<pre>
 +
# не проверено
 +
# выдает предупреждение, что при такой установке необходимо отключать Secure Boot в UEFI(BIOS)
 +
grub2-install --efi-directory /mnt/esp --boot-directory /mnt/usb/boot --target x86_64-efi --removable /dev/sdX1
 +
 +
# как вариант, создать правильную структуру каталогов и расположить готовые файлы для EFI загрузки grub2, с использованием подписанного посредника shim, чтобы Secure Boot пропускал
 +
# пока только идея, не проверял
 +
 +
</pre>
 +
 +
 +
'''Пример загрузки Kali linux с iso образа LiveCD'''
 +
<pre>
 +
menuentry "Kali Linux Live ISO" --class kali --class linux {
 +
#    set root='(hd0,msdos1)'
 +
    set isofile="/images/kali-linux-2023.3-live-amd64.iso"
 +
#    rmmod tpm
 +
    insmod exfat
 +
    insmod loopback
 +
    insmod iso9660
 +
    loopback loop $isofile
 +
    linux (loop)/live/vmlinuz boot=live components quiet splash toram noeject findiso=${isofile} tpm_tis.interrupts=0
 +
    initrd (loop)/live/initrd.img
 +
}
 
</pre>
 
</pre>

Текущая версия на 20:40, 24 октября 2024

Загрузка с флешки в режиме UEFI

  • EFI System раздел должен иметь специальный тип
    • для MBR: EF
    • для GPT: 01
  • USB диск не обязательно размечать в GPT, чтобы использовать EFI загрузку
  • EFI System раздел поддерживает только FAT12/16/32, exfat не поддерживается
  • FAT32, размер файла не может превышать 4ГБ, это проблема если нужно размещать большие ISO образы
  • exfat, поддерживает файлы больше 4ГБ и поддерживается в grub2, Windows, MacOS, Linux
  • Если нужно грузить флешку с EFI, то можно создать небольшой раздел с FAT16 для EFI загрузки, а второй раздел отформатировать в exfat

Установка grub2 в MBR на USB

mkdir /mnt/usb
mount /dev/sdXN /mnt/usb
mkdir /mnt/usb/boot

grub2-install --no-floppy --root-directory=/mnt/usb --boot-directory /mnt/usb/boot --target i386-pc /dev/sdX

# в некторых дистрибутивах команда имеет имя grub-install

Установка grub2 на USB в EFI раздел

# не проверено
# выдает предупреждение, что при такой установке необходимо отключать Secure Boot в UEFI(BIOS)
grub2-install --efi-directory /mnt/esp --boot-directory /mnt/usb/boot --target x86_64-efi --removable /dev/sdX1

# как вариант, создать правильную структуру каталогов и расположить готовые файлы для EFI загрузки grub2, с использованием подписанного посредника shim, чтобы Secure Boot пропускал
# пока только идея, не проверял


Пример загрузки Kali linux с iso образа LiveCD

menuentry "Kali Linux Live ISO" --class kali --class linux {
#    set root='(hd0,msdos1)'
    set isofile="/images/kali-linux-2023.3-live-amd64.iso"
#    rmmod tpm
    insmod exfat
    insmod loopback
    insmod iso9660
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live components quiet splash toram noeject findiso=${isofile} tpm_tis.interrupts=0
    initrd (loop)/live/initrd.img
}