mdmx: (почетный шаман)
[personal profile] mdmx
http://www.opennet.ru/opennews/art.shtml?num=43795

Один из любознательных пользователей Arch Linux столкнулся с непредвиденной проблемой, пытаясь провести эксперимент по выполнению "rm -rf --no-preserve-root /" на ноутбуке MSI GP60. Перед плановой переразбивкой диска пользователь решил понаблюдать как поведёт себя система в случае выполнения "rm -rf /", после чего ноутбук пришёл в неработоспособное состояние и перестал подавать признаки жизни, даже не пытаясь вывести что-то на экран при включении.

Проблема оказалась в монтировании в режиме записи псевдо-ФС efivarfs, предоставляющей доступ к переменным UEFI. Таким образом, при выполнении "rm -rf /" удалялось и содержимое директории /sys/firmware/efi/efivars, что приводило к очистке и повреждению конфигурации UEFI.

На запрос перейти к монтированию /sys/firmware/efi/efivars в режиме только на чтение разработчики systemd ответили, что не видят в этом проблемы, так как изменение efivars возможно только под пользователем root, который в случае неадекватных действий может с тем же успехом повредить содержимое /dev/sda или перемонтировать efivars на запись.

Стирание директории /sys под пользователем root нельзя отнести к типичным практикам, а запись в efivars необходима некоторым системным утилитам. Более того, очистка конфигурации UEFI-прошивки не должна приводить к блокированию работы устройства - в случае повреждения, конфигурация UEFI должна восстанавливаться в состояние по умолчанию. Поэтому причиной проблемы является UEFI-прошивка, а не конфигурация systemd. При желании пользователи и разработчики дистрибутивов могут самостоятельно перейти к работе efivars в режиме только на чтение, без изменения кода systemd, достаточно для efivars указать в /etc/fstab флаг "ro".

Дополнение 1: Мэттью Гаррет, известный разработчик ядра Linux, получивший от Фонда СПО премию за достижения в области обеспечения загрузки Linux на системах с UEFI Secure Boot, считает, что проблему нужно решать на уровне ядра Linux. В качестве примера подобного решения Гаррет опубликовал прототип патча.

Дополнение 2: Николай Шлей (CodeRush), автор утилиты UEFITool и исследователь безопасности UEFI, пояснил суть проблемы:

Сама проблема звучит так: "удаление некоторых переменных NVRAM приводит к остановке выполнения фазы DXE на некоторых ноутбуках MSI". Это действительно проблема, причина - в недостатке тестирования этого сценария (вполне, кстати, легитимного, и выполняемого в 20 строк на С в любой UEFI-совместимой ОС), а недостаток этот - он от сокращения времени разработки прошивки и прочих "оптимизаций Time-To-Market".

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

Решение: конкретный баг у MSI - найти и исправить, тест на этот случай - добавить в следующие версии FWTS, BITS и LUV, довести до производителей его необходимость через UEFI Forum. Пока реализации все еще сломаны - пользоваться воркэраундом Гаррета.

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

mdmx: (Default)
mdmx

January 2026

S M T W T F S
    123
45678910
11121314151617
1819 2021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 25th, 2026 09:20 pm
Powered by Dreamwidth Studios