Я пытаюсь сделать свою собственную Multiboot-USB-флешку с пользовательской конфигурацией GRUB2. Я в основном следовал инструкциям из https://wiki.archlinux.org/index.php/Multiboot_USB_drive, чтобы установить GRUB2 на USB-накопитель в режиме EFI:
- Флешка формата, имеющая один раздел EFI (100 МБ) и раздел EXT4
- смонтировать разделы в каком-то месте
- Выполнение
grub-install --target=x86_64-efi --recheck --removable --efi-directory=/EFI_MOUNTPOINT --boot-directory=/DATA_MOUNTPOINT/boot
Итак, у меня есть EFI-раздел, включающий grub.cfg
search.fs_uuid <uuid> root hdX,gptY
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
и загрузочный раздел с одной папкой /boot /grub, содержащей
- шрифты (папка)
- локаль (папка)
- x86_64-efi (папка)
- grubenv (файл)
Это работает настолько, насколько я могу записать свой собственный файл grub.cfg в /boot /grub, содержащий несколько пунктов меню, и я могу загружаться с этих записей. Но я не могу загрузить любые модули. Если я введу в командной строке, например, набрав
insmod ntfs
абсолютно ничего не делает. Нет сообщений об ошибках или чего-то подобного, модуль просто не загружается (проверяется с помощью lsmod). Я также пробовал абсолютную адресацию, как
insmod (hdX,gptY)/boot/grub/x86_64-efi/ntfs.mod
с тем же результатом. Путь правильный, потому что, например, я могу вывести .mod-файл на стандартный вывод.
Что я на самом деле могу сделать, это удалить модули. Например
rmmod btrfs
rmmod btrfs
выводит сообщение об ошибке только во второй строке, поэтому модуль btrfs удаляется, что подтверждается выводом lsmod. Но печатать (когда btrfs уже удален)
insmod btrfs (or absolute addressing like above)
rmmod btrfs
приводит к сообщению об ошибке в строке 2, поэтому первая строка, очевидно, не имела никакого эффекта.
У вас есть идеи, что происходит не так? Я даже пытался скопировать папку с модами в EFI-раздел, но это не помогло ...
заранее спасибо