LINUX.ORG.RU

Загрузчик Linux убегает на системный раздел

 , ,


0

1

Все привет! Прошу помощи.

Имеется ноутбук с двумя физическими ССД. На одном Вин10, на второй хочу поставить МИНТ.

Что требуется: чтобы по умолчанию грузилась Вин10, как будто ничего другого нет, а уже МИНТ грузился через выбор в бут меню (F11).

Порядок действий:(Bios в режиме UEFI) загружаю Live образ Linux MINT 19.3 / Запускаю установку дистрибутива / Отрезаю от второго SDD 40 Гб, и выбираю его в качестве места установки / Выбираю место установки загрузчика Linux тот же SSD, что и для дистрибутива (пробовал выбирать и диск и раздел этого диска) / Завершаю установку.

Что имею в итоге: при загрузке запись в бут меню находиться на том же диске, что и Вин10. При просмотре раздела EFI, там есть эта запись.

Как сделать чтоб эта запись была на разделе с Линуксом? Вариант с физическим отключением системного раздела пока не хочу использовать - ноут разбирается не совсем удобно.


ESP может быть только один. Если он уже существует (а он существует), любая другая устанавливаемая ОС будет туда ставить загрузчик.

Выход один: физически отключить диск с Windows 10 (и ESP на этом диске), установить Linux Mint, подключить диск с Windows 10. Но стабильности переключения ОС с таким раскладом нет и быть не может (читай первый абзац).

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

Понял, спасибо.

А что понимать под «стабильности переключения ОС с таким раскладом нет и быть не может»? какие могут быть проблемы?

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

чушь полная, тогда бы загрузка с usb-флэх в efi не работала, но она работает, без csm

если у дистрибутива кривой установщик, можно просто вручную efistub ядро/загрузкич кинуть на esp где хош и прописать ему root= через efibootmgr

anonymous
()

При установке можно выбрать, на какой диск загрузчик ставить.

Korchevatel ★★★★★
()

ну и ещё следует напомнить, что для efi при таком раскладе никакой загрузчик не нужен, есть efistub

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

А есть ли где то гайд как перенести загрузчик? Вы думаете, что если попробовать другой дистрибутив, то должен поставить загрузчик в то место, куда указываю? А нельзя ли как то размонтировать мой системный диск и попробовать установить Linux, xnj, инсталлер не видел раздел efi?

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

«загрузчик» для efi это просто efi-исполняемый файл(ядро linux или grub или загрузчик венды) на fat32 разделе, можно вручную создать этот раздел где удобнее и скопировать нужный файл туда

может вот это почитать поможет

https://wiki.archlinux.org/index.php/EFI_system_partition

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface

https://wiki.archlinux.org/index.php/EFISTUB

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

А что понимать под «стабильности переключения ОС с таким раскладом нет и быть не может»? какие могут быть проблемы?

Такие, что с какого ESP считывать загрузчик для выбранного диска (а такие казусы случались, хоть и редко) решает UEFI. То есть даже выбрав диск с Linux Mint, оно будет искать к нему данные в ESP на первом диске (с Windows).

mord0d ★★★★★
()

разбирается не совсем удобно

может в биосе программно отключить можно?

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

чушь полная, тогда бы загрузка с usb-флэх в efi не работала, но она работает, без csm

Чушь городишь здесь ты. UEFI прекрасно разбирается, removable media (в том числе переносной хард) ему подсунули, или HDD/SSD по SATA.

если у дистрибутива кривой установщик

Причём здесь это? Есть стандарт. А все твои пляски с бубном вокруг очередного васянского поделия меня не волнуют.

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

если запись в efibootmgr как раз указание конкретного ESP

Нет там привязки к ESP, есть привязка к диску.

А с этими ручными правками efivar… вынул диск, и полетели твои записи в /dev/null.

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

там указывается конкретный раздел, вася

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

Возможно есть какие-то реализации UEFI, где так происходит. Но по-хорошему - это неверное поведение.

Единственное ограничение - один ESP на один диск.

Собственно, у меня так и живут Windows и Linux'ы на разных дисках, каждый со своим собственным ESP. И выбираю через F11 в BootMenu откуда грузиться.

Только вот всё это руками и нежно надо делать.

Установщики как Windows так и Linux путаются. Если руками раскатывать rootfs, потом руками ставить gummiboot (systemd-boot), потом руками прописывать правильные записи в efi через efibootmgr - то всё работает исправно.

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

UEFI прекрасно разбирается, removable media

нда? ну давай, покажи, какая для него разница removable оно или нет. и покажи в твойм любимом стандарте про эту разницу

Есть стандарт

что «стандарт»? как твои «пляски с бубном вокруг очередного васянского поделия» относятся к стандарту?

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

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

Правильно ли я понял, что достаточно перенести файлы для Linux из раздела EFI (я так понимаю это все файлы в папке ubuntu) в корневой каталог МИНТ? А если бы не было системного диска с разделом efi,куда ставиться загрузчик по умолчанию,в каталог boot? или инсталлер создает новый ESP?

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

Правильно ли я понял, что достаточно перенести файлы для Linux из раздела EFI (я так понимаю это все файлы в папке ubuntu) в корневой каталог МИНТ? А если бы не было системного диска с разделом efi,куда ставиться загрузчик по умолчанию,в каталог boot? или инсталлер создает новый ESP?

Нет. Тебе проще переустановить с отключением диска, как я писал в самом начале.

Или ручной вариант: создать раздел с файловой системой FAT32, поставить на него флаг boot/efi, переустановить grub (или что там используется) в этот раздел.

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

Понял. Буду думать стоит ли игра свеч. Не хочется разбирать ноут.

Возник ещё один вопрос. Вчера, пока пытался найти решение этой проблемы сам пришёл к следующему: удалил раздел с Линукс - осталась загрузочная запись. Удалил ее через командную строку вин10. Все равно осталась запись про Линукс в Биос. Восстановил из предварительно созданной копии ВСЕ СИСТЕМНОГО ДИСКА, но запись все равно не исчезла из биос. Потом только удалось ее удалить через вин10 утилитой easyefi. Где храниться эта запись? Выходит что перед загрузкой не сканируется раздел efi?

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

Где храниться эта запись?

Если простым языком, то в постоянной памяти UEFI (BIOS, если угодно, но это некорректно).

Выходит что перед загрузкой не сканируется раздел efi?

Сканируется только диск на наличие ESP. Если не нужно ничего загружать из ESP, то его сканирование не имеет смысла и отнимает время. Об адресах efi-программ в ESP есть упоминания в постоянной памяти, плюс дефолт, поэтому сканирование не нужно. Но если ESP с присвоенной boot entry отсутствует (диск отключен или отформатирован), эта запись будет автоматически удалена.

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

Единственное ограничение - один ESP на один диск

Нет такого ограничения. Как минимум один раз мне помогло создание второго ESP-раздела на диске. Правда, какой-нибудь данный конкретный УЕФИ может и заартачиться.

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

Сканируется только диск на наличие ESP. Если не нужно ничего загружать из ESP, то его сканирование не имеет смысла и отнимает время.

Зависит от данного конкретного УЕФИ. Неокоторые при каждой загрузке ищут ЕФИ-загрузчики на всех подходящих разделах и автоматом вносят их в боот-меню. С одной стороны такой подход даже удобен, не нужно вручную править записи в УЕФИ.

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

Неокоторые при каждой загрузке ищут ЕФИ-загрузчики на всех подходящих разделах

Это происходит каждый раз при загрузке, чтобы сверить записи с дисками (на случай, если диск был отключен, отформатирован или заменён, о чём я уже писал выше).

Но для этого сканирование не нужно. Нужно проверить таблицу разделов на наличие ESP, найти на ESP \EFI\Boot\BootX64.efi. Некоторые вендорлокнутые могут искать также \EFI\Microsoft\... (точный адрес загрузчика уже не помню). Так как FAT32 довольно примитивна, это практически не создаёт задержек.

и автоматом вносят их в боот-меню

Но не в постоянную память. Это сделано как раз для обыгрывания removable media.

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

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

Очень здравая идея.

достаточно перенести файлы для Linux из раздела EFI (я так понимаю это все файлы в папке ubuntu) в корневой каталог МИНТ?

Только не в корневой раздел. УЕФИ находит свои загрузчики только на разделе с файловой системой FAT32. Это практически единственное обязательное условие. Еще довольно часто нужно, чтобы у этого раздела был установлен флаг «boot,esp». Нужно создать на диске с минтом раздел с ФАТ32, размером достаточно 100мб, желательно в начале диска. Для начала файлы лучше не переносить, а скопировать. Если заработает на новом месте, тогда на старом можно и удалить. Нужно будет еще в fstab внести изменения монтирования ESP-раздела.

Не знаю, как там в Минт. Но в *бунту может быть проще на новый ESP-раздел скопировать из исо-образа каталоги /EFI, /boot. Конфиг груб отредактировать вручную. Получишь грубЕФИ независимый от любой системы. Даже если удалишь минт, он останется работоспособен.

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

Но не в постоянную память.

Не буду спорить. Но попадалась информация, что все пишется в nvram. Более того, она перезаписывается каждую загрузку, даже если ничего не изменилось.

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

Нет такого ограничения.

Во всех спецификациях UEFI, которые я нашел (от 1.0 до 2.8):

12.2.2 Partition Discovery
...
When a check for a valid partitioning scheme succeeds, the search terminates.
https://uefi.org/specifications

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

мне помогло создание второго ESP

Скорее всего речь о поврежденном разделе. Возможно даже не разделе, а флагах раздела.

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

Но если ESP с присвоенной boot entry отсутствует (диск отключен или отформатирован), эта запись будет автоматически удалена.

Я тоже на это надеялся. но этого не происходит. Я удалял раздел с МИНТ со второго диска,а запись о наличии Линукс все равно висела в бут меню.

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

Только не в корневой раздел. УЕФИ находит свои загрузчики только на разделе с файловой системой FAT32

Получается необходимо создать на втором диске свой ESP?

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

Я удалял раздел с МИНТ со второго диска,а запись о наличии Линукс все равно висела в бут меню

Из того, с чем приходилось сталкиваться, сложилось такое мнение.

Зависит от данного конкретного УЕФИ. В некоторых нужно все вручную добавлять и вручную удалять. Некоторые сами все добавляют и удаляют. Плюс все промежуточные варианты. Плюс некоторые действуют по своим, только им ведомым правилам.

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

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

Хм, исходя из этого, создание второго ESP может и не помочь в моем случае.

Выходит проверить как ведет себя мой efi можно только (не буру пока в расчет ручной способ) отключив физически системный диск и установить Линукс заново?

Нет ли способа как в винде програмно отключить диск из под интерфейса live образа дистрибутива?

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

необходимо создать на втором диске свой ESP?

Да, если хочешь независимый диск с ЕФИ-загрузчиком.

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

Я тоже на это надеялся. но этого не происходит. Я удалял раздел с МИНТ со второго диска,а запись о наличии Линукс все равно висела в бут меню.

Если запись с Linux на первом диске (с Windows, а ESP на нём), хоть ты взорви второй, ничего не произойдёт.

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

Нет ли способа как в винде програмно отключить диск из под интерфейса live образа дистрибутива?

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

  • создать на втором диске раздел ESP «в ручном режиме», установить флаги и отформатировать в FAT32. как располагаются разделы на диске для UEFI значения не имеет, поэтому сносить установленный LinuxMint нет необходимости.
  • установить grub-efi на раздел ESP второго диска.
  • с помощью efibootmgr просмотреть записи о загрузчиках и удалить записи о загрузке LinuxMint. при этом grub останется и в разделе ESP диска с Windows. если уж сильно будет мулять глаза удалишь потом его файлы. «но зачем?!» ©
  • проверить что всё работает как ты и планировал.

ссылки на вики ArchLinux тебе выше давали. по ним узнаешь подробности всех манипуляций.

опять же… если будешь переустанавливать LinuxMint, то выбирай загрузку в live-режиме. сначала подготовишься (спрячешь диск с виндой, сделаешь разбивку диска для установки, создашь ESP-раздел, …). потом уже запустишь установку. графический инсталлер всё равно пропишет в UEFI запись о загрузке LinuxMint. efibootmgr тебе поможет ;)

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