Обнаружилось, что на некоторых компьютерах с UEFI удаление файлов в каталоге /sys/firmware/efi/efivars
, а также, как следствие, команды вроде rm -rf /sys
и rm -rf --no-preserve-root /
могут привести к повреждению прошивки материнской платы, после которого компьютер вообще перестаёт загружаться. Восстановить прошивку «в домашних условиях» после этого часто невозможно.
Согласно спецификации UEFI, такого не должно происходить: настройки прошивки должны просто сброситься на заводские. Однако прошивка многих материнских плат содержит ошибки.
Ошибка стала широко известной благодаря сообщению о баге в systemd (хотя это не первое сообщение об этой проблеме): так как виртуальная файловая система в /sys/firmware/efi/efivars
монтируется systemd, разработчикам посоветовали монтировать её только для чтения. Леннарт Поттеринг, главный разработчик systemd, отказался это делать, отметив, что существуют программы, которые намеренно меняют настройки прошивки через этот каталог. systemd можно заставить монтировать его только для чтения, если вписать соответствующую строчку в /etc/fstab
с параметром ro
.
Мэттью Гэррет, специалист по безопасности CoreOS, в прошлом активный разработчик ядра Linux, поддержал решение Поттеринга и принял вину на себя как автор соответствующего кода в ядре. Он считает, что ядро должно само решать эту проблему: оно обычно содержит воркэраунды для проблем с оборудованием, в том числе для проблем с UEFI.
Пользователям GNU/Linux можно посоветовать узнать, не подвержены ли их системы этой ошибке, и быть очень осторожными при массовом удалении системных файлов. А также, при необходимости, настроить монтирование efivars
только для чтения, но это может привести к неполадкам при установке GRUB, при работе efibootmgr
, и systemctl --firmware-setup reboot
, и, возможно, других программ.
>>> Подробности