netch80: (Default)
[personal profile] netch80
Как сделать установку нового диска в десктоп незабываемой от полного непонимания, что вообще творится и на каком свете находишься? Надо всего лишь просочетать несколько факторов:

1. Если диск не упомянут в пункте "Hard drive BBS priorities" в настройке BIOS, то та его не отдаёт в I/O через int 13h. В результате GRUB не может его увидеть.

1б. Первым в списке стоял тот диск, с которого не загружаются ;(

2. Простых надёжных способов собрать grub.cfg под новые условия (смена корневого раздела) нет, а замена UUID редактором не позволяет подсказать, что надо было ещё добавить "insmod part_gpt" (на старом такого не было).

3. На диске с GPT но без "BIOS boot partition" GRUB ставит свой core.img урезанным и неверно работающим. Но чтобы понять, что не так, его родной документации не хватает, там связь замолчана.

4. Если GRUB не нашёл по указанным UUID и пути типа (hd1,msdos5) раздела со своими модулями и конфигами, он хватает первый попавшийся, который нашёл.

4б. При этом он ещё перезаписывает UUID в параметрах загрузки, чтобы совсем уже никто не догадался.

5. Спросить, по какому пути GRUB прошёл и прочитал свои конфиги, откуда грузил модули - невозможно.

6. На то, загрузит ли BIOS внешнюю флэшку, если она была вставлена до перезагрузки, влияет погода на Марсе. Если нет - пункт в boot menu есть, но молча игнорируется.

Таки взлетел. Выдыхаю:)

Date: 2022-01-10 11:33 am (UTC)
dadv: (Default)
From: [personal profile] dadv
Мне как-то даже неловко повторять те ответы, которые ты отрезал при цитировании, оборвав предложение как раз там, где дальше приводится обоснование.

> А если не хочется вообще морочиться с возможной несовместимостью этих вариантов загрузки?

Несовместимостью чего с чем? Сам loader тоже может быть не один, при желании - можно иметь несколько разных по разным путям и boot2 можно инструктировать, который загружать, либо интерактивно набрав путь (включающий другой диск или раздел), либо прописав этот путь в /boot/config или в /boot.config.

> Те же UUIDʼы, кстати, ценное средство для уникальной идентификации раздела. Для линукса норма - их использовать. Как мне их прочитать или записать через gpart? Ман молчит.

Это реализовано в отдельном классе GEOM_LABEL и про него отдельный ман glabel(8). Да, это дефект страницы gpart(8), отсутствие ссылки.

> Я могу их применить в fstab? Ман молчит.

The first field, (fs_spec), describes the special device or remote file system to be mounted.

После прочтения man glabel этого становится достаточно.

Date: 2022-01-10 01:18 pm (UTC)
dadv: (Default)
From: [personal profile] dadv
> Ну например синхронное изменение boot2 и loader, так что старый boot2 не работает с новым loader, и наоборот. Такое уже было. А loader соответственно лучше работает с ядром своей версии и хуже - с другой.

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

Date: 2022-01-10 01:21 pm (UTC)
dadv: (Default)
From: [personal profile] dadv
> Можешь просто ссылку дать и уточнить, что ты считаешь, что там полный и достаточный ответ.

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

https://netch80.dreamwidth.org/53057.html?thread=410433#cmt410433

Date: 2022-01-10 01:22 pm (UTC)
dadv: (Default)
From: [personal profile] dadv
> В этом плане я как раз доволен GRUBʼом, что он позволяет грузить boot2 (или вообще loader) напрямую, подсунув им достаточно данных, чтобы идентифицировать указанный загрузочный раздел.

Я об том и говорю всю дорогу - мультизагрузчик должен прочитать начальный загрузчик из бутсектора раздела и передать ему управление. Дальше он сам.

Date: 2022-01-10 01:27 pm (UTC)
dadv: (Default)
From: [personal profile] dadv
> А от чего зависит, что при наличии /dev/gpt/метка

Я не большой специалист по потрохам GEOM, это лучше спрашивать у Мотина mav@freebsd.org

Альтернативные девайсы из devfs ядро убирает, когда объект GEOM открывается на запись по одной из альтернатив: например, монтируется в r/w, но можно просто запустить sleep 3600 <> /dev/md0p2

Date: 2022-01-17 07:03 am (UTC)
dadv: (Default)
From: [personal profile] dadv
>> Это реализовано в отдельном классе GEOM_LABEL и про него отдельный ман glabel(8). Да, это дефект страницы gpart(8), отсутствие ссылки.
> OK, рекомендую сделать PR :)

Я добавил ссылку на glabel.8 в gpart.8 во все четыре ветки, от stable/11 до head.

Profile

netch80: (Default)
netch80

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 11th, 2026 12:19 am
Powered by Dreamwidth Studios