GRUB (англ. GRand Unified Bootloader) — загрузчик операционной системы от проекта GNU. GRUB позволяет пользователю иметь несколько установленных операционных систем и при включении компьютера выбирать одну из них для загрузки.
Используется в образах Android-x86 для компьютеров со старым BIOS-ом.
Свои настройки хранит в файле menu.lst, который можно отредактировать например виндовым Блокнотом. Обычно этот файл находится на разделе с Андроидом, но из-под самого Андроида его не видно. Типичное содержимое:
default=0
timeout=6
splashimage=/grub/android-x86.xpm.gz
root (hd0,4)
title Android-x86 5.1-rc1
kernel /android-5.1-rc1/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/android-5.1-rc1
initrd /android-5.1-rc1/initrd.img
title Android-x86 5.1-rc1 (Debug mode)
kernel /android-5.1-rc1/kernel root=/dev/ram0 androidboot.hardware=android_x86 DEBUG=2 SRC=/android-5.1-rc1
initrd /android-5.1-rc1/initrd.img
title Android-x86 5.1-rc1 (Debug nomodeset)
kernel /android-5.1-rc1/kernel nomodeset root=/dev/ram0 androidboot.hardware=android_x86 DEBUG=2 SRC=/android-5.1-rc1
initrd /android-5.1-rc1/initrd.img
title Windows
rootnoverify (hd0,1)
chainloader +1
Тут default указывает номер пункта, котоый будет выбран автоматически после истечения timeout секунд. root и rootnoverify указывают с какого диска, и с какого его раздела загружать выбраную операционную систему. Как и в случае с default, нумерация начинается с нуля. Параметры загрузки прописываются в конец строки, которая начинается со слова kernel. Такими параметрами можно повлиять на многие аспекты работы Андроида с железом. К примеру настроить работу с внешним монитором.
GRUB 2 — следующая версия GRUB. Разработчики писали GRUB 2 «с нуля», чтобы добиться переносимости и модульности.
Используется в образах Android-x86 для компьютеров с новым UEFI-BIOS.
Может хранить свои настроки в файле grub.cfg либо menu.lst. Обычно этот файл лежит на отдельном системном разделе EFI (ESP). Типичное содержимое:
set timeout=60
set gfxmode=1024x768
terminal_output gfxterm
menuentry 'Android-x86 VER Live' --class android-x86 {
search --file --no-floppy --set=root /system.sfs
linuxefi /kernel CMDLINE quiet DATA=
initrdefi /initrd.img
}
menuentry 'Android-x86 VER DEBUG mode' --class android-x86 {
search --file --no-floppy --set=root /system.sfs
linuxefi /kernel CMDLINE DATA= DEBUG=2
initrdefi /initrd.img
}
menuentry 'Android-x86 VER Installation' --class android-x86 {
search --file --no-floppy --set=root /system.sfs
linuxefi /kernel CMDLINE DEBUG= INSTALL=1
initrdefi /initrd.img
}
menuentry 'Windows' {
search --file --no-floppy --set=root /EFI/Microsoft/Boot/bootmgfw.efi
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}