Grub2-EFI на флэшке: Pапускается. но не находит раздела с каталогом установки (модули, тема и конфиг)

Ответить
Аватара пользователя
Yamah
Сообщения: 1387
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Grub2-EFI на флэшке: Pапускается. но не находит раздела с каталогом установки (модули, тема и конфиг)

Сообщение Yamah » 20 янв 2017, 19:21

Решил сделать загрузочную флэшку с поддержкой Legacy и EFI.
Сделал соответсвующее разбиение:

Код: Выделить всё

Device        Start      End  Sectors  Size Type
/dev/sdk1      2048     6143     4096    2M BIOS boot
/dev/sdk2      6144   137215   131072   64M EFI System
/dev/sdk3    137216   399359   262144  128M Linux filesystem
/dev/sdk4    399360 17176575 16777216    8G Linux filesystem
/dev/sdk5  17176576 59119615 41943040   20G Linux filesystem
/dev/sdk6  59119616 60626910  1507295  736M Linux filesystem
Поставил в третий раздел Grub2 Legacy.
Загружается, выполняет grub.conf

Стал ставить Grub2-EFI.
Находясь в каталоге /usr/lib/grub/x86_64-efi, собрал образ

Код: Выделить всё

grub2-efi-mkimage -c /media/disk/boot/efi/EFI/BOOT/grub2-efi/grub.cfg -O x86_64-efi -o /media/disk/boot/efi/EFI/BOOT/grub2-efi/grub.efi -d /usr/lib/grub/x86_64-efi -p /grub2 \
$(find . -name '*.mod' -and -not -name "minix*" -and -not -name "affs*" -and -not -name "afs*" -and -not -name "bfs*" -and -not -name "md4*" -and -not -name "*amiga*" -and -not -name "sfs"| tr '\n' ' ' | sed -e 's/\.mod//g')
Модули, которые включил:

Код: Выделить всё

find . -name '*.mod' -and -not -name "minix*" -and -not -name "affs*" -and -not -name "afs*" -and -not -name "bfs*" -and -not -name "md4*" -and -not -name "*amiga*" -and -not -name "sfs"| tr '\n' ' ' | sed -e 's/\.mod//g'
./acpi ./adler32 ./ahci ./all_video ./aout ./appleldr ./at_keyboard ./ata ./backtrace ./bitmap ./bitmap_scale ./blocklist ./boot ./bsd ./btrfs ./bufio ./cat ./chain ./cmp ./configfile ./cpio ./cpio_be ./cpuid ./crc64 ./crypto ./cryptodisk \
./cs5536 ./date ./datehook ./datetime ./diskfilter ./dm_nv ./echo ./efi_gop ./efi_uga ./efifwsetup ./efinet ./ehci ./elf ./emuusb ./exfat ./exfctest ./ext2 ./extcmd ./fat ./fixvideo ./font ./fshelp ./functional_test ./gcry_arcfour ./gcry_blowfish \
./gcry_camellia ./gcry_cast5 ./gcry_crc ./gcry_des ./gcry_md4 ./gcry_md5 ./gcry_rfc2268 ./gcry_rijndael ./gcry_rmd160 ./gcry_seed ./gcry_serpent ./gcry_sha1 ./gcry_sha256 ./gcry_sha512 ./gcry_tiger ./gcry_twofish ./gcry_whirlpool \
./geli ./gettext ./gfxmenu ./gfxterm ./gptsync ./gzio ./halt ./hashsum ./hdparm ./hello ./help ./hexdump ./hfs ./hfsplus ./http ./iorw ./iso9660 ./jfs ./jpeg ./keylayouts ./keystatus ./ldm ./linux ./linuxefi ./loadbios ./loadenv ./loopback \
./ls ./lsacpi ./lsefimmap ./lsefisystab ./lsmmap ./lspci ./lssal ./luks ./lvm ./lzopio ./mdraid09 ./mdraid09_be ./mdraid1x ./memdisk ./memrw ./minicmd ./mmap ./msdospart ./multiboot ./multiboot2 ./net ./newc ./nilfs2 ./normal ./ntfs \
./ntfscomp ./odc ./ohci ./part_acorn ./part_apple ./part_bsd ./part_dvh ./part_gpt ./part_msdos ./part_plan ./part_sun ./part_sunpc ./parttool ./password ./password_pbkdf2 ./pata ./pbkdf2 ./play ./png ./priority_queue ./probe ./raid5rec \
./raid6rec ./read ./reboot ./regexp ./reiserfs ./relocator ./romfs ./scsi ./search ./search_fs_file ./search_fs_uuid ./search_label ./serial ./setjmp ./setpci ./sfs ./sleep ./squash4 ./tar ./terminal ./terminfo ./test ./test_blockarg ./testload ./tftp \
./tga ./time ./trig ./true ./udf ./ufs1 ./ufs2 ./uhci ./usb ./usb_keyboard ./usbms ./usbserial_common ./usbserial_ftdi ./usbserial_pl2303 ./usbtest ./video ./video_bochs ./video_cirrus ./video_fb ./videoinfo ./videotest ./xfs ./xnu ./xnu_uuid \
./xzio ./zfs ./zfscrypt ./zfsinfo
Содержимое файла /media/disk/boot/efi/EFI/BOOT/grub2-efi/grub.cfg

Код: Выделить всё

search.fs_uuid a0624e8b-faf1-4282-9455-5794fbc0a43e root hd0,gpt3
set prefix=($root)/grub2
configfile $prefix/grub.cfg
UUID - раздела, где находится каталог grub2

Код: Выделить всё

/dev/sdk3: LABEL="Boot" UUID="a0624e8b-faf1-4282-9455-5794fbc0a43e" TYPE="ext3" PARTLABEL="Linux filesystem" PARTUUID="ffb4c58b-5661-4fb7-872b-193805eae2cd"
Что нахожится в разделе:

Код: Выделить всё

mount | grep sdk && pwd && ls -l
/dev/sdk4 on /media/disk type ext4 (rw,relatime,data=ordered)
/dev/sdk3 on /media/disk/boot type ext3 (rw,relatime,data=ordered)
/dev/sdk2 on /media/disk/boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/media/disk/boot
итого 29
drwxr-xr-x 3 root root 16384 янв  1  1970 efi/
drwxr-xr-x 6 root root  1024 янв 20 19:32 grub2/
drwx------ 2 root root 12288 янв 20 16:26 lost+found/
Все это я установил командой

Код: Выделить всё

grub2-efi-install --target=x86_64-efi --bootloader-id=grub --efi-directory=/media/disk/boot/efi --boot-directory=/media/disk/boot --removable /dev/sdk
В UEFI-режиме флэшка загружается. Но Grub2 выдает ошибку "prefix not set" две строки и зависает. На клавиатуру не откликается.

В связи с этим у меня два вопроса:
1. Как заставить Grub2 находить нужный раздел с рабочим каталогом GRUB2?
2. Какие модули можно, или даже нужно еще выкинуть?

trs
Сообщения: 1939
Зарегистрирован: 07 сен 2015, 16:08
Operating system: -

Re: Grub2-EFI на флэшке: Pапускается. но не находит раздела с каталогом установки (модули, тема и конфиг)

Сообщение trs » 21 янв 2017, 08:57

По-моему grub2-efi-install следует выполнять из chroot-окружения, тогда и пути окажутся корректны, без /media (они вкомпилируются в тело образа), и модули нужные будут добавлены.

Разбивал так, MBR:

Код: Выделить всё

/dev/sdc1                2048   206847   204800  100M ef EFI (FAT-12/16/32)
/dev/sdc2  *           206848 30029823 29822976 14.2G 83 Linux
Ну и установленный 32х битный grub.efi пришлось скопировать в bootia32.efi
Последний раз редактировалось trs 21 янв 2017, 09:12, всего редактировалось 1 раз.

Аватара пользователя
Yamah
Сообщения: 1387
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: Grub2-EFI на флэшке: Pапускается. но не находит раздела с каталогом установки (модули, тема и конфиг)

Сообщение Yamah » 21 янв 2017, 09:10

То есть нужно в /media/disk прокинуть все каталоги, кроме /boot, сделать chroot туда и запустить просто
grub2-efi-install --removable
?

trs
Сообщения: 1939
Зарегистрирован: 07 сен 2015, 16:08
Operating system: -

Re: Grub2-EFI на флэшке: Pапускается. но не находит раздела с каталогом установки (модули, тема и конфиг)

Сообщение trs » 21 янв 2017, 09:17

В /media/disk как я понял смонтирована флешка с имеющейся там ОС? Если она пуста, то можно туда ОС скопировать (вместо установки). Будет ли работать c "прокинутыми" каталогами я не пробовал.

Аватара пользователя
Yamah
Сообщения: 1387
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: Grub2-EFI на флэшке: Pапускается. но не находит раздела с каталогом установки (модули, тема и конфиг)

Сообщение Yamah » 21 янв 2017, 17:42

Или grub2-efi-install что-то не то, или еще какая-то шняга.
В общем, скопировал с дистрибутива на раздел флешки, который выбран в качестве корневого раздела, /bin /sbin, /lib /lib64 создал каталоги и смонтировал туда одноименные из рабочей системы /dev /proc /sys /usr, создал на ней var/log /run tmp. Смонтировал в каталог boot на этом разделе, раздел, где будет у меня Grub жить, в нем смонтировал раздел с EFI. Иза пакета с grub-efi, вытащил каталог /boot/efi/EFI/DISTR/grub2-efi разместил в каталог /media/disk/boot/efi/EFI/BOOR/grub2-efi Черутнулся туда.и выполнил

Код: Выделить всё

grub2-efi-install --removable
.
И все заработало.

Ответить

Вернуться в «Программы РОСА десктоп»