LINUX.ORG.RU

gpt - bios

 , ,


0

2

Решил к себе на ноутбук поставить систему на gpt диск для загрузки через bios. При попытке запуска системы, grub не грузится. Разбил подобным образом

/dev/sda1 8МБ "BIOS boot"
/dev/sda2 512МБ "Linux filesystem" ext2
/dev/sda3 системный раздел
Делал grub-install /dev/sda
На ноутбуке стоит UEFI/Legacy Boot в Both (Legacy Only пробовал)
Пробовал всё это дело переставлять по нескольку раз, в virtualbox при той-же схеме всё работает, я что-то упустил? Может кто подсказать?
Ещё раз, установил opensuse, она по умолчанию сама разбивает диск на gpt, прокликал далее на ноутбуке и на виртуалке, на ноутбуке в загрузчик не заходит, в виртуалке всё нормально. Тут-же проверил Uefi/gpt и Bios/ms-dos, всё работает.
В общем немного погуглив, пришёл к выводу что Bios/gpt зависит от firmware и может не работать, так ли это?



Последнее исправление: nammidd (всего исправлений: 4)

На ноутбуке включена поддержка Legacy Boot (Запуска в режиме BIOS)?

infomeh ★★
()

Так же ещё может быть, что тебе нужно выставить флаг активности на первый раздел.

Ноутбуки Lenovo бывало не грузились с дисков, на которых нет активных разделов.

Хотя этот относится в MBR разметке.

infomeh ★★
()
Ответ на: комментарий от infomeh

Есть только UEFI/Legacy Boot, ставил Legacy only когда ставил Bios/gpt и Bios/ms-dos. Какой флаг активности? Флаг boot? Он для mbr только, для gpt вместе с флагом boot ставится флаг esp, впрочем я и это пробовал делать, не запускается.

nammidd
() автор топика

В варианте с GPT нет места для «хвоста» от GRUB, в MBR его кладут в «просвет» между первым сектором и началом первого раздела, в GPT его кладут обычно на отдельный раздел BIOS Boot Partition.
https://en.wikipedia.org/wiki/BIOS_boot_partition
https://wiki.archlinux.org/index.php/GRUB_(Русский)#Загрузчик_в_BIOS

Требования GRUB2-BIOS к GPT
Начальный сектор диска с разметкой GPT зарезервирован, как ни странно, для MBR, которая обычно используется для совместимости, но точно так же оставляет в секторе те же 442 байта, достаточные для встраивания кода загрузчика из boot.img. Сама GPT располагается на следующих секторах.

В отличии от MBR, GPT предусматривает возможность создания на диске специального раздела для встраивания BIOS-загрузчика. Раздел BIOS boot partition имеет GUID=21686148-6449-6e6f-744e656564454649 («Hah!IdontNeedEFI» в little endian), и может быть создан в fdisk как раздел типа 4, или в gdisk как раздел типа EF02. Этот раздел не должен содержать никакой файловой системы, иначе она будет затёрта при установке загрузчика. Номер раздела может быть любым, расположение также практически любым. На больших дисках рекомендуется располагать BIOS boot partition в пределах первых 2ТБ, поскольку средства BIOS, скорей всего, не позволят прочесть более дальние сектора.

Если такой раздел на диске с GPT создан, программа установки GRUB2 автоматически найдёт его и использует для встраивания стартового образа BIOS-версии загрузчика. Минимальные требования к размеру раздела те же, что и для просвета перед первым разделом в случае MBR – на это место должен поместиться образ core.img. Так как расположение BIOS boot partition не привязано к началу диска, создать его с размером порядка 1МБ будет несложно, и более чем достаточно в любом случае.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от bormant

Всё есть, читайте первое сообщение, я создавал этот раздел сам ни один раз и потом мне его OpenSUSE создавал в другой чистой установке, не работает, в virtualbox всё работает, я уверен что и на другом компьютере будет всё работать.

nammidd
() автор топика
Ответ на: комментарий от nammidd

Не поменяется ли картина, если обойтись без

/dev/sda3 системный раздел

Или под ним имелся в виду корень?
Без идентификаторов типа разделов сложно ориентироваться...

bormant ★★★★★
()

Я сталкивался с проблемой на одной материнке, что она по такой схеме у меня ничего не грузила, пока я не обновил на ней биос. А так схема рабочая.

turtle_bazon ★★★★★
()
Ответ на: комментарий от bormant

Или под ним имелся в виду корень?

да, впрочем изначально я туда lvm ставил

Без идентификаторов типа разделов сложно ориентироваться...

А какая разница какие остальные разделы если даже загрузчик не грузится? Или я что-то не понимаю?

nammidd
() автор топика
Ответ на: комментарий от nammidd

какие остальные разделы если даже загрузчик не грузится? Или я что-то не понимаю?

Например, «системный раздел» был ESP, а firmware настолько крива, что даже при Legacy/CSM загрузке наличие ESP раздела вводит ее в ступор...
Когда поведение глючное, тут всё что угодно может влиять, и возможностью сократить наличие потенциальных проблемных факторов пренебрегать не стоит.

bormant ★★★★★
()

CSM кривой наверное. Попробуй обновить UEFI.

mandala ★★★★★
()

А чем efi загрузка не нравится? Refind поставить в качестве загрузчика он простой как три копейки и при этом удобный. Sda2 только в фат форматнуть и флаг поставить

anonymous
()

Эта схема гарантировано будет работать только на платах без EFI, платы с EFI могут видеть, что разметка GPT и даже не пытаться грузить загрузчик из первого сектора.

anonymous
()
Ответ на: комментарий от anonymous

Эта схема гарантировано будет работать только на платах без EFI

Воткнул диск в десктоп с EFI, система грузится

А чем efi загрузка не нравится

Всем всё нравится, просто изначально план был другой и если уж открыл тему, то наверное следует поставить в ней точку

Попробуй обновить UEFI.

Обновил

CSM кривой наверное.

На ноутбуке в настройках bios такого пункта у меня нет, в отличии от десктопа, это и есть показатель того что система не способна грузиться с gpt в bios режиме?

nammidd
() автор топика
Ответ на: комментарий от nammidd

На ноутбуке в настройках bios такого пункта у меня нет, в отличии от десктопа, это и есть показатель того что система не способна грузиться с gpt в bios режиме?

CSM это модуль UEFI, именно он предоставляет возможность использовать Legacy режимов.

Работает это всё так:

  • Запускается UEFI и отрабатывает как обычно.
  • Запускается CSM поверх и эмулирует BIOS.

Лишняя прослойка. Не понимаю зачем её использовать если есть возможность работать нативно.

Для понимания: именно также работает XWayland, например.

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 2)
Ответ на: комментарий от mandala

Лишняя прослойка. Не понимаю зачем её использовать если есть возможность работать нативно.

Желание использовать преимущества gpt и не желание использовать uefi? Для меня как для конечного пользователя выглядело всё просто. Получается что gpt сделан только для работы с uefi и лучше придерживаться нативных схем ms-dos/bios, gpt/uefi?

nammidd
() автор топика
grub-install --target=i386-pc /dev/sda
anonymous
()
Ответ на: комментарий от nammidd

GPT сделан так как DOS-разметка ограничена 4-мя разделами. Да, есть костыль с расширенным разделом, в котором можно тоже создать расширенный, но глупость же цепляться за это. Еще DOS ограничен максимальным размером диска. Устарел он тупо, короче.

При этом BIOS-ы нормально работали с GPT. Конечно достаточно современные.

А почему выкинули биос? Потому что это тоже устаревшее говно. Но это уже боль разрабов, пользователям вообще по большому счету пофиг что под капотом.

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 4)
Ответ на: комментарий от mandala

А почему выкинули биос?

Потому что к UEFI легче добавлять бэкдоры и зловредные модули.

пользователям вообще по большому счету пофиг что под капотом

До тех пор пока зловред BadBIOS не впендюрился в ваш дырявый UEFI

anonymous
()
Ответ на: комментарий от anonymous

Потому что к UEFI легче добавлять бэкдоры и зловредные модули.

Спасибо, улыбнуло.

зловред

Secure Boot

mandala ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.