Как сделать установку нового диска в десктоп незабываемой от полного непонимания, что вообще творится и на каком свете находишься? Надо всего лишь просочетать несколько факторов:
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 есть, но молча игнорируется.
Таки взлетел. Выдыхаю:)
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 есть, но молча игнорируется.
Таки взлетел. Выдыхаю:)
no subject
Date: 2022-01-10 09:56 am (UTC)Тут у тебя тоже старые данные. На фре это называется reroot (reboot -r из комстроки если) и я его тестировал в 2016-м году на FreeBSD 11-CURRENT, оно работало уже тогда.
no subject
Date: 2022-01-10 10:02 am (UTC)Нет, по крайней мере по ману:
>> The system kills all processes, unmounts all filesystems, mounts the new root filesystem, and begins the usual startup sequence. After changing vfs.root.mountfrom with kenv(1), reboot -r can be used to change the root filesystem while preserving kernel state.
А так чтобы без "kills all processes"? По крайней мере некоторые вещи удобно и полезно передавать напрямую новому корневому процессу, или вообще его не менять.
no subject
Date: 2022-01-10 11:07 am (UTC)Кусочек моего скрипта для обновления MIPS-роутера (U-Boot) по сети:
echo Downloading $url
fetch -vo $image $url
kenv vfs.root.mountfrom=ufs:$md
echo Closing network connections and unmounting flash...
reboot -r
fetch скачивает обновление на md, куда уже положены особые стартовые скрипты с init, ядро заново монтирует рут с этого md-устройства, скрипт мигает индикаторами особым образом, обновляя разделы с ядром и с fs на флеше и ребутит систему "по-полной", запуская новое ядро.