Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

загрузка GPT диска средствами BIOS

Olej

Re: загрузка GPT диска средствами BIOS

Сообщение Olej »

tupoll писал(а):Если учесть что всё сделано виртуально-внатуре неизвестно всё-таки
А разницы нет!
Это только для проверки загружаемости ... и того как это происходит.
(не перегружать же рабочий компьютер при каждом изменении?)
Olej

Re: загрузка GPT диска средствами BIOS

Сообщение Olej »

Olej писал(а):
tupoll писал(а):раздел EF02 как диск указывать не нужно но он должен быть вначале /dev/sdb т.е.
Все описания MBR загрузки GPT из дистрибутивов группы APT (Debian, Ubuntu, Mint, ... etc.) описывают именно указание раздела EF02...
tupoll писал(а):раздел EF02 как диск указывать не нужно
Возможно ... что и так и надо? :shock:
За подсказку спасибо.
Это как-раз типичное не то!

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

[olej@dell 11]$ sudo dd if=/dev/sdc bs=512 count=1 > mbr_sdc
[sudo] пароль для olej:
1+0 записей получено
1+0 записей отправлено
 скопировано 512 байт (512 B), 0,00187434 c, 273 kB/c

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

00000000 EB 63 90 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00  .c......................
00000018 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00  ........................
00000030 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00  ........................
00000048 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 80 │ 00 38 02 00  .....................8..
00000060 00 00 00 00 │ FF FA 90 90 │ F6 C2 80 74 │ 05 F6 C2 70 │ 74 02 B2 80 │ EA 79 7C 00  .......... t...pt....y|.
00000078 00 31 C0 8E │ D8 8E D0 BC │ 00 20 FB A0 │ 64 7C 3C FF │ 74 02 88 C2 │ 52 BE 05 7C  .1..؎ м . ..d|<.t...R..|
00000090 B4 41 BB AA │ 55 CD 13 5A │ 52 72 3D 81 │ FB 55 AA 75 │ 37 83 E1 01 │ 74 32 31 C0  .A..U..ZRr=..U.u7...t21.
000000A8 89 44 04 40 │ 88 44 FF 89 │ 44 02 C7 04 │ 10 00 66 8B │ 1E 5C 7C 66 │ 89 5C 08 66  .D.@.D..D.....f..\|f.\.f
000000C0 8B 1E 60 7C │ 66 89 5C 0C │ C7 44 06 00 │ 70 B4 42 CD │ 13 72 05 BB │ 00 70 EB 76  ..`|f.\..D..p.B..r...p.v
000000D8 B4 08 CD 13 │ 73 0D 5A 84 │ D2 0F 83 DE │ 00 BE 85 7D │ E9 82 00 66 │ 0F B6 C6 88  ....s.Z........}...f..ƈ
000000F0 64 FF 40 66 │ 89 44 04 0F │ B6 D1 C1 E2 │ 02 88 E8 88 │ F4 40 89 44 │ 08 0F B6 C2  d.@f.D...........@.D....
00000108 C0 E8 02 66 │ 89 04 66 A1 │ 60 7C 66 09 │ C0 75 4E 66 │ A1 5C 7C 66 │ 31 D2 66 F7  ...f..f.`|f..uNf.\|f1.f.
00000120 34 88 D1 31 │ D2 66 F7 74 │ 04 3B 44 08 │ 7D 37 FE C1 │ 88 C5 30 C0 │ C1 E8 02 08  4..1.f.t.;D.}7....0.....
00000138 C1 88 D0 5A │ 88 C6 BB 00 │ 70 8E C3 31 │ DB B8 01 02 │ CD 13 72 1E │ 8C C3 60 1E  ...Z.ƻ .p..1۸ ....r...`.
00000150 B9 00 01 8E │ DB 31 F6 BF │ 00 80 8E C6 │ FC F3 A5 1F │ 61 FF 26 5A │ 7C BE 80 7D  .....1..........a.&Z|..}
00000168 EB 03 BE 8F │ 7D E8 34 00 │ BE 94 7D E8 │ 2E 00 CD 18 │ EB FE 47 52 │ 55 42 20 00  ....}.4...}.......GRUB .
00000180 47 65 6F 6D │ 00 48 61 72 │ 64 20 44 69 │ 73 6B 00 52 │ 65 61 64 00 │ 20 45 72 72  Geom.Hard Disk.Read. Err
00000198 6F 72 0D 0A │ 00 BB 01 00 │ B4 0E CD 10 │ AC 3C 00 75 │ F4 C3 00 00 │ 00 00 00 00  or...........<.u........
000001B0 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 02 00 EE 0B │ E1 F2 01 00  ........................
000001C8 00 00 FF 17 │ 1E 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00  ........................
000001E0 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00  ........................
000001F8 00 00 00 00 │ 00 00 55 AA │                                                        ......U.
Загрузчик GRUB установлен именно в MBR-запись, 0-й сектор диска ... который для GPT диска вообще не имеет ни смысла, ни значения!
Olej

Re: загрузка GPT диска средствами BIOS

Сообщение Olej »

Olej писал(а): Загрузчик GRUB установлен именно в MBR-запись, 0-й сектор диска ... который для GPT диска вообще не имеет ни смысла, ни значения!
Нет, тут я неправ... :(

1. Убрал на фиг раздел EF02 с диска:

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

[olej@dell ~]$ sudo gdisk -l /dev/sdc
GPT fdisk (gdisk) version 1.0.1
...  
Number  Start (sector)    End (sector)  Size       Code  Name
   7            2048          145407   70.0 MiB    FB00  VMWare VMFS

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

[olej@dell ~]$ sudo grub2-install /dev/sdc
Installing for i386-pc platform.
grub2-install: предупреждение: метка раздела GPT не имеет BIOS Boot Partition; встраивание невозможно.
grub2-install: ошибка: встраивание невозможно, но оно необходимо для междисковой установки.
Не ставится.

2. Уменьшил раздел EF02 до бессмысленности (возможно, присутствие раздела EF02 является только меткой, и туда ничего фактически не пишется?):

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

[olej@dell ~]$ sudo gdisk -l /dev/sdc
GPT fdisk (gdisk) version 1.0.1
...
Number  Start (sector)    End (sector)  Size       Code  Name
   7            2048          145407   70.0 MiB    FB00  VMWare VMFS
  23          145408          145408   512 bytes   EF02  BIOS boot partition

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

[olej@dell ~]$ sudo grub2-install /dev/sdc
Installing for i386-pc platform.
grub2-install: предупреждение: BIOS Boot Partition слишком мал; встраивание невозможно.
grub2-install: ошибка: встраивание невозможно, но оно необходимо для междисковой установки.

Не ставится.

3. Создаю раздел EF02 минимально достаточного размера в самый конец диска:

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

...
Number  Start (sector)    End (sector)  Size       Code  Name
   7            2048          145407   70.0 MiB    FB00  VMWare VMFS
  23         1968128         1970175   1024.0 KiB  EF02  BIOS boot partition

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

Command (? for help): i
Partition number (7-23): 23
Partition GUID code: 21686148-6449-6E6F-744E-656564454649 (BIOS boot partition)
Partition unique GUID: 6C19702F-B143-4946-BA77-14D7C95F2ECE
First sector: 1968128 (at 961.0 MiB)
Last sector: 1970175 (at 962.0 MiB)
Partition size: 2048 sectors (1024.0 KiB)
Attribute flags: 0000000000000000
Partition name: 'BIOS boot partition'

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

[olej@dell ~]$ sudo grub2-install /dev/sdc
Installing for i386-pc platform.
Установка завершена. Ошибок нет.
Похоже, что происходит следующее:
- в резервный MBR пишется первичный загрузчик GRU...
- в неразмеченный (судя по всему) раздел EF02 пишется вторичный загрузчик GRU...
Olej

Re: загрузка GPT диска средствами BIOS

Сообщение Olej »

Olej писал(а): Похоже, что происходит следующее:
- в резервный MBR пишется первичный загрузчик GRU...
- в неразмеченный (судя по всему) раздел EF02 пишется вторичный загрузчик GRU...
Даже без минимального состава загруженных модулей GRUB для выполнения консольных команд:
g21.png
g21.png (13.23 КБ) 5598 просмотров
Но запишем GRUB по-другому:

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

[olej@dell ~]$ sudo grub2-install /dev/sdc --modules=help
Installing for i386-pc platform.
Установка завершена. Ошибок нет.

[olej@dell ~]$ sudo qemu-kvm /dev/sdc
WARNING: Image format was not specified for '/dev/sdc' and probing guessed raw.
         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.
...
q22.png
q22.png (19.14 КБ) 5598 просмотров
Olej

Re: загрузка GPT диска средствами BIOS

Сообщение Olej »

Olej писал(а): Похоже, что происходит следующее:
- в резервный MBR пишется первичный загрузчик GRU...
- в неразмеченный (судя по всему) раздел EF02 пишется вторичный загрузчик GRU...
Наблюдаемое (и вот эта догадка) полностью находит подтверждение в документации.
GNU GRUB Manual 2.00
GPT
Some newer systems use the GUID Partition Table (GPT) format. This was specified as part of the Extensible Firmware Interface (EFI), but it can also be used on BIOS platforms if system software supports it; for example, GRUB and GNU/Linux can be used in this configuration. With this format, it is possible to reserve a whole partition for GRUB, called the BIOS Boot Partition. GRUB can then be embedded into that partition without the risk of being overwritten by other software and without being contained in a filesystem which might move its blocks around.
When creating a BIOS Boot Partition on a GPT system, you should make sure that it is at least 31 KiB in size. (GPT-formatted disks are not usually particularly small, so we recommend that you make it larger than the bare minimum, such as 1 MiB, to allow plenty of room for growth.) You must also make sure that it has the proper partition type. Using GNU Parted, you can set this using a command such as the following:
# parted /dev/disk set partition-number bios_grub on
If you are using gdisk, set the partition type to ‘0xEF02’. With partitioning programs that require setting the GUID directly, it should be ‘21686148-6449-6e6f-744e656564454649’.
Caution: Be very careful which partition you select! When GRUB finds a BIOS Boot Partition during installation, it will automatically overwrite part of it. Make sure that the partition does not contain any other data.
Или кому не сильно нравится английский - Требования GRUB2-BIOS к GPT:
В отличии от MBR, GPT предусматривает возможность создания на диске специального раздела для встраивания BIOS-загрузчика. Раздел BIOS boot partition имеет GUID=21686148-6449-6e6f-744e656564454649, и может быть создан в fdisk как раздел типа 4, или в gdisk как раздел типа EF02. Этот раздел не должен содержать никакой файловой системы, иначе она будет затёрта при установке загрузчика. Номер раздела может быть любым, расположение также практически любым. На больших дисках рекомендуется располагать BIOS boot partition в пределах первых 2ТБ, поскольку средства BIOS, скорей всего, не позволят прочесть более дальние сектора.
...
Код GRUB (boot.img) будет встроен в начальный сектор, а загрузочный образ core.img – в просвет перед первым разделом MBR, или BIOS boot partition для GPT.
... ну и так далее - там много интересного... :)
Последний раз редактировалось Olej 12 янв 2017, 11:00, всего редактировалось 1 раз.
Olej

Re: загрузка GPT диска средствами BIOS

Сообщение Olej »

Итого, для загрузки из BIOS диска GPT нужно:
1. создать в структуре диска GPT небольшой раздел типа BIOS boot partition, с GUID=21686148-6449-6e6f-744e656564454649, создаётся: в fdisk как раздел типа 4, или в gdisk как раздел типа EF02, или в gparted с установленным флагом bios_grub...
2. раздел может быть любым: по месту размещения (начало-конец) дискового пространства и по номеру раздела GPT (/dev/sdb127)...
3. размер раздела - размер создаваемого образа core.img - от 25-31Kb в минимальном виде (MBR+ext4) и ... до 1Mb куда влезет всё...
4. запускаем grub2-install с указанием имени диска, а не раздела диска ... как описывают убунтоиды в своих обсуждениях :-?
5. но обязательно явно указать те модули (GRUB2), которые должны быть включены в этот образ вторичного загрузчика GRUB, типа:

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

[olej@dell ~]$ sudo grub2-install /dev/sdc --modules="help part_gpt chain fat ext2" --no-floppy
Installing for i386-pc platform.
Установка завершена. Ошибок нет.

[olej@dell ~]$ sudo qemu-kvm -drive file=/dev/sdc,format=raw
...
q2.png
q2.png (19.53 КБ) 5580 просмотров
При этом:
- первичный загрузчик GRUB boot.img прописывается как 442 байта в резервный MBR (RMBR), LBA 0
- собирается (модульно) вторичный загрузчик GRUB core.img ...
- который знает структуру хотя бы одной файловой системы диска...
- который записывается в не форматированный раздел типа BIOS boot partition
(в варианте EFI загрузки такой-же вторичный загрузчик GRUB, но под именем efi.img, записывается в загрузочный раздел EFI, но размеченный как FAT32).
Аватара пользователя
tupoll
Уважаемый участник
Уважаемый участник
Сообщения: 231
Зарегистрирован: 19 янв 2015, 07:30
Откуда: Vladivostok

Re: загрузка GPT диска средствами BIOS

Сообщение tupoll »

"но обязательно явно указать те модули (GRUB2), которые должны быть включены в этот образ вторичного загрузчика GRUB, типа:"-это совершенно лишнее,модули читаются из конфигурации -рэйд,файловая система и все что угодно в конфиге груба есть,если к примеру взять загрузку бсд систем видно вполне наглядно это пропишешь только ядро,он и будет грузить голое ядро каждый подгружаемый модуль нужно прописать конкретно,или взять загрузку zfs грубом с неё же на линуксе -всё в конфиге,взять даже загрузку через модуль виртуальной машины практикует это pc-bsd подгружается из конфига-никаких указаний для первичной загрузки не делается на практике проверено это.
Правильный линукс-BSD.
Olej

Re: загрузка GPT диска средствами BIOS

Сообщение Olej »

tupoll писал(а):никаких указаний для первичной загрузки не делается на практике проверено это.
Очень мало понятно описано, сумбурно...
Но, при сборке минимального core.img, который грузится именно в раздел EF02 (BIOS boot partition) многие модули, которые могут вам понадобиться, туда не подключаются. Вот из этого большого числа модулей:

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

[root@dell i386-pc]# ls -l /boot/grub2/i386-pc/*.mod | wc -l
263
И это относится именно к сборке вторичного загрузчика core.img под BIOS, потому что под EFI собирается другой загрузчик efi.img (об этом есть в документации GRUB2 подробно).

То, что многие модули, которые могут очень даже понадобиться, можно проверить на примере модулей, реализующих/поддерживающих консольные команды GRUB2: help.mod, chain.mod и т.д. Без них вы не сможете выполнять консольные команды GRUB2 и даже просто посмотреть справку help по установленным командам:
q3.png
q3.png (19.11 КБ) 5576 просмотров
Вы вот этот даже help по установленным командам не посмотрите, если не станете собирать загрузчик с указанием, как минимум:

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

[olej@dell ~]$ sudo grub2-install /dev/sdc --modules=help
...
Предполагаю также (по результатам наблюдений ... в частности консольной команды ls GRUB2), что при установке GRUB2 именно для BIOS в большинстве случаев нужно указывать и модуль part_gpt ... что-то типа:

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

[olej@dell ~]$ sudo grub2-install /dev/sdc --modules="help part_gpt fat ext2" --no-floppy
...
Аватара пользователя
tupoll
Уважаемый участник
Уважаемый участник
Сообщения: 231
Зарегистрирован: 19 янв 2015, 07:30
Откуда: Vladivostok

Re: загрузка GPT диска средствами BIOS

Сообщение tupoll »

Никаких добавочных записей при записи загрузчика никогда не делал,если нет в этом необходимости-зачем изобретать велосипед?Приведу автоматически сконфигурированный конфиг,единственно для некоторых модулей поправлен /etc/default/grub:

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

GRUB_DISTRIBUTOR="Funtoo"

# Default menu entry
#GRUB_DEFAULT=0

# Boot the default entry this many seconds after the menu is displayed
GRUB_TIMEOUT=3
#GRUB_TIMEOUT_STYLE=menu

# Append parameters to the linux kernel command line
#GRUB_CMDLINE_LINUX=""
#
# Examples:
#
# Boot with network interface renaming disabled
# GRUB_CMDLINE_LINUX="net.ifnames=0"
#
# Boot with systemd instead of sysvinit (openrc)
# GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"

# Append parameters to the linux kernel command line for non-recovery entries
GRUB_CMDLINE_LINUX_DEFAULT="nouveau.runpm=0 vga=0x0362 splash=silent,theme:powered_by_gentoo console=tty1 quiet"
# The resolution used on graphical terminal.
# Note that you can use only modes which your graphic card supports via VBE.
## You can see them in real GRUB with the command `vbeinfo'.
GRUB_GFXMODE=1366x768x24

# Set to 'text' to force the Linux kernel to boot in normal text
# mode, 'keep' to preserve the graphics mode set using
# 'GRUB_GFXMODE', 'WIDTHxHEIGHT'['xDEPTH'] to set a particular
# graphics mode, or a sequence of these separated by commas or
# semicolons to try several modes in sequence.
GRUB_GFXPAYLOAD_LINUX=1366x768x24


/boot/grub/grub.cfg:

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

 cat /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
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
set root='hd2,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt3 --hint-efi=hd2,gpt3 --hint-baremetal=ahci2,gpt3  8e7b65bd-66aa-4028-90cf-c405fc91bc25
else
  search --no-floppy --fs-uuid --set=root 8e7b65bd-66aa-4028-90cf-c405fc91bc25
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=1366x768x24
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=ru_RU
  insmod gettext
fi
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=3
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=3
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Funtoo GNU/Linux' --class funtoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-8e7b65bd-66aa-4028-90cf-c405fc91bc25' {
	load_video
	set gfxpayload=1366x768x24
	insmod gzio
	insmod part_gpt
	insmod ext2
	set root='hd2,gpt3'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt3 --hint-efi=hd2,gpt3 --hint-baremetal=ahci2,gpt3  8e7b65bd-66aa-4028-90cf-c405fc91bc25
	else
	  search --no-floppy --fs-uuid --set=root 8e7b65bd-66aa-4028-90cf-c405fc91bc25
	fi
	echo	'Загружается Linux x86_64-4.9.0-gentoo …'
	linux	/boot/kernel-genkernel-x86_64-4.9.0-gentoo root=UUID=8e7b65bd-66aa-4028-90cf-c405fc91bc25 ro  nouveau.runpm=0 vga=0x0362 splash=silent,theme:powered_by_gentoo console=tty1 quiet
	echo	'Загружается начальный виртуальный диск …'
	initrd	/boot/initramfs-genkernel-x86_64-4.9.0-gentoo
}
submenu 'Дополнительные параметры для Funtoo GNU/Linux' $menuentry_id_option 'gnulinux-advanced-8e7b65bd-66aa-4028-90cf-c405fc91bc25' {
	menuentry 'Funtoo GNU/Linux, с Linux x86_64-4.9.0-gentoo' --class funtoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-x86_64-4.9.0-gentoo-advanced-8e7b65bd-66aa-4028-90cf-c405fc91bc25' {
		load_video
		set gfxpayload=1366x768x24
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd2,gpt3'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt3 --hint-efi=hd2,gpt3 --hint-baremetal=ahci2,gpt3  8e7b65bd-66aa-4028-90cf-c405fc91bc25
		else
		  search --no-floppy --fs-uuid --set=root 8e7b65bd-66aa-4028-90cf-c405fc91bc25
		fi
		echo	'Загружается Linux x86_64-4.9.0-gentoo …'
		linux	/boot/kernel-genkernel-x86_64-4.9.0-gentoo root=UUID=8e7b65bd-66aa-4028-90cf-c405fc91bc25 ro  nouveau.runpm=0 vga=0x0362 splash=silent,theme:powered_by_gentoo console=tty1 quiet
		echo	'Загружается начальный виртуальный диск …'
		initrd	/boot/initramfs-genkernel-x86_64-4.9.0-gentoo
	}
	menuentry 'Funtoo GNU/Linux, с Linux x86_64-4.9.0-gentoo (режим восстановления)' --class funtoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-x86_64-4.9.0-gentoo-recovery-8e7b65bd-66aa-4028-90cf-c405fc91bc25' {
		load_video
		set gfxpayload=1366x768x24
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd2,gpt3'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt3 --hint-efi=hd2,gpt3 --hint-baremetal=ahci2,gpt3  8e7b65bd-66aa-4028-90cf-c405fc91bc25
		else
		  search --no-floppy --fs-uuid --set=root 8e7b65bd-66aa-4028-90cf-c405fc91bc25
		fi
		echo	'Загружается Linux x86_64-4.9.0-gentoo …'
		linux	/boot/kernel-genkernel-x86_64-4.9.0-gentoo root=UUID=8e7b65bd-66aa-4028-90cf-c405fc91bc25 ro single 
		echo	'Загружается начальный виртуальный диск …'
		initrd	/boot/initramfs-genkernel-x86_64-4.9.0-gentoo
	}
	menuentry 'Funtoo GNU/Linux, с Linux x86_64-4.8.7-gentoo' --class funtoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-x86_64-4.8.7-gentoo-advanced-8e7b65bd-66aa-4028-90cf-c405fc91bc25' {
		load_video
		set gfxpayload=1366x768x24
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd2,gpt3'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt3 --hint-efi=hd2,gpt3 --hint-baremetal=ahci2,gpt3  8e7b65bd-66aa-4028-90cf-c405fc91bc25
		else
		  search --no-floppy --fs-uuid --set=root 8e7b65bd-66aa-4028-90cf-c405fc91bc25
		fi
		echo	'Загружается Linux x86_64-4.8.7-gentoo …'
		linux	/boot/kernel-genkernel-x86_64-4.8.7-gentoo root=UUID=8e7b65bd-66aa-4028-90cf-c405fc91bc25 ro  nouveau.runpm=0 vga=0x0362 splash=silent,theme:powered_by_gentoo console=tty1 quiet
		echo	'Загружается начальный виртуальный диск …'
		initrd	/boot/initramfs-genkernel-x86_64-4.8.7-gentoo
	}
	menuentry 'Funtoo GNU/Linux, с Linux x86_64-4.8.7-gentoo (режим восстановления)' --class funtoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-x86_64-4.8.7-gentoo-recovery-8e7b65bd-66aa-4028-90cf-c405fc91bc25' {
		load_video
		set gfxpayload=1366x768x24
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd2,gpt3'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt3 --hint-efi=hd2,gpt3 --hint-baremetal=ahci2,gpt3  8e7b65bd-66aa-4028-90cf-c405fc91bc25
		else
		  search --no-floppy --fs-uuid --set=root 8e7b65bd-66aa-4028-90cf-c405fc91bc25
		fi
		echo	'Загружается Linux x86_64-4.8.7-gentoo …'
		linux	/boot/kernel-genkernel-x86_64-4.8.7-gentoo root=UUID=8e7b65bd-66aa-4028-90cf-c405fc91bc25 ro single 
		echo	'Загружается начальный виртуальный диск …'
		initrd	/boot/initramfs-genkernel-x86_64-4.8.7-gentoo
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
Правильный линукс-BSD.
Аватара пользователя
tupoll
Уважаемый участник
Уважаемый участник
Сообщения: 231
Зарегистрирован: 19 янв 2015, 07:30
Откуда: Vladivostok

Re: загрузка GPT диска средствами BIOS

Сообщение tupoll »

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

 ls /etc/grub.d
00_header  10_linux  20_linux_xen  30_os-prober  40_custom  41_custom  README
при правильно собранном груб2 всё происходит автоматом без лишних движений
Правильный линукс-BSD.
Ответить

Вернуться в «Железный вопрос. Производительность и оптимизация»