LINUX.ORG.RU

Память об истории загрузки


0

1

Когда устанавливается убунта, она в конце процесса установки заявляет что-то типа «выньте installation media перед перезагрузкой». То есть, она не помнит, что была загружена с PXE и травмирует пользователя непонятными сообщениями.

Такого же рода проблема есть в Fedora-е. Там инсталлятор anaconda не знает, откуда была выполнена загрузка, и ему раньше (до версии Fedora17) передавали параметр ksdevice=link, а сейчас сделали это вариантом по-умолчанию.

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

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

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

Никто не знает подобного?

Уважаемый, у вас странные идеи.

Когда устанавливается убунта, она в конце процесса установки заявляет что-то типа «выньте installation media перед перезагрузкой». То есть, она не помнит, что была загружена с PXE и травмирует пользователя непонятными сообщениями.

Такого же рода проблема есть в Fedora-е. Там инсталлятор anaconda не знает, откуда была выполнена загрузка, и ему раньше (до версии Fedora17) передавали параметр ksdevice=link, а сейчас сделали это вариантом по-умолчанию.

Ну если вас всё это так травмирует, то не используйте Linux. По сути, поправьте сценарии, которые отрабатывают при выключении, что бы они парсили параметры, переданные ядру, либо анализировали откуда что смонтировано, так что бы в случае загрузки по сети не выдавалось сообщение с предложением извлечь носитель информации.

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

Это не всё так тривиально. К примеру, вы по PXE можете загрузить только ядро и initramfs, но в то же время оставить в приводе диск со squashfs образом коневой файловой системы или скопировать этот образ на разделна жёстком диске, в таком случае этот образ будет монтироваться либо с cd привода, либо с раздела жёсткого диска. В этом случае считать, что загрузка сетевая или нет ? Или напрости с жёсткого диска или CD диска грузить ядро и Initramfs, а образ squashfs монтировать по сети.

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

Поэтому, как ясно, исходя из написанного выше, накакого API не нужно, достаточно анализировать параметры, переданные ядру и источник монтирования squashfs образ и править нужно лишь сценарии, которые отрабатывают при выключении.

Так что, если это вам нужно, то правьте сценарии, либо оставьте так, как сделали разработчики дистрибутива.

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