LINUX.ORG.RU

Удаление /sys/firmware/efi/efivars может повредить материнскую плату

 , , ,


1

7

Обнаружилось, что на некоторых компьютерах с 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, и, возможно, других программ.

>>> Подробности

★★★★★

Проверено: JB ()

Ответ на: комментарий от Andrew

The EFI firmware must support the FAT32, FAT16, and FAT12 variants of the EFI file system.

FAT 8.3 file names are always stored as uppercase ASCII characters.

An EFI system partition that is present on a hard disk must contain an EFI defined directory in the root directory. This directory is named EFI.

There may also be an optional vendor subdirectory called BOOT.

The following is a sample directory structure for an EFI system partition present on a removable media device

\EFI
\BOOT
BOOT{machine type short name}.EFI

http://www.uefi.org/sites/default/files/resources/UEFI 2_5.pdf#page=536

Sahas ★★★★★ ()

даёшь вирус чтобы к хреням порушило пару миллиардов ПК. Чтобы прошивкописателей засудили на пожизненное рабство.

targitaj ★★★★★ ()

Согласно спецификации UEFI, такого не должно происходить: настройки прошивки должны просто сброситься на заводские. Однако прошивка многих материнских плат содержит ошибки.

Тот редкий случай, когда поттер действительно не виноват.

Manhunt ★★★★★ ()
Ответ на: комментарий от PaulCarroty

Буду очень благодарен, если у Вас получится реализовать эту идею.

Orlusha ★★★★ ()
Последнее исправление: Orlusha (всего исправлений: 1)
Ответ на: комментарий от Macil

Не понимаю в чём проблема.

Это ненормально, что железка *настолько* легко окирпичивается.

Manhunt ★★★★★ ()

Не буду оригинален: UEFI не нужен.

Но, как обычно, такова воля корпораций, что они его везде пропихивают, отчего и имеем сегодняшний тред.

Twissel ★★★★★ ()
Ответ на: комментарий от proud_anon

Почитать вопли людей с той же матерью, которые удалили, например.

их количество стремится к одному

очевидно что матери выпускаемые в европе америке и снг-разные,и порой даже некоторые модели регионально специфичны

вот у меня мат плата текущего(2015) года полного АТХ формфактора,не самая дорогая и не дешевая,она была нерабочая по началу(я не знал) прошивка была кривая,через 2 дня вышла новая прошивка....и знаешь сколько человек загрузило новую прошивку?
55 человек в течении недели-тоесть юзеров этой материнки во всем мире(учитывая что она выходила всего пару месяцев в снг и европе,в китае и америке не было) потом заменили на «обновленную серию»(с другой прошивкой)...

тоесть я о том что слишком большое разнообразие сразными прошивками и...более конерктный способ теста на месте нужен

tem3 ()
Ответ на: комментарий от Sahas
$ ls -l /boot/efi/EFI/ubuntu/
итого 35555
-rwxr-xr-x 1 root root      126 окт.  24 13:08 grub.cfg
-rwxr-xr-x 1 root root   956792 окт.  24 13:08 grubx64.efi
-rwxr-xr-x 1 root root 27062936 янв.  20 12:57 initrd.img
-rwxr-xr-x 1 root root  1271672 окт.  24 13:08 MokManager.efi
-rwxr-xr-x 1 root root  1289424 окт.  24 13:08 shimx64.efi
-rwxr-xr-x 1 root root  5825088 янв.  20 12:57 vmlinuz.efi

Единственное, что я вижу капсом тут, это каталог EFI, и всё.

Andrew ★★★ ()
Последнее исправление: Andrew (всего исправлений: 1)
Ответ на: комментарий от curufinwe

Ну и что он не так сказал? Кто мешает пользователю или мейнтейнерам дистрибутива добавить строчку в fstab и радостно огрести при работе efibootmgr? systemd тут вообще не причем.

Нее, погодите, читаем внимательно «/sys/firmware/efi/efivars монтируется systemd». Так что systemd очень даже причем. И Поцериг - таки большой половой поц!

anc ★★★★★ ()
Ответ на: комментарий от templarrr

отсутствие резервной копии таблицы разделов и анальную нумерацию разделов, конечно же. Люди любят страдать.

targitaj ★★★★★ ()
Ответ на: комментарий от PaulCarroty

Это как раз должно быть: например, инсталлятор должен после завершения установки с помощью ebibootmgr прописать путь к bootloader.efi

Да, хтож спорит, только вот за каким его монтировать постоянно? Шо нельзя для тех утилит кому это нужно перед запуском смонтировать?
Например efibootmgr если vars нэма, сам выдает подсказку что нужно сделать modprobe имя_модуля_не_помню.

anc ★★★★★ ()
Ответ на: комментарий от Manhunt

Это ненормально, что железка *настолько* легко окирпичивается.

Это не проблема интерфейса. Если нужен контроль, то есть LSM. В федоре, например, это моментально (если уже не) пофиксят патчем к политике SELinux.

Macil ★★★★★ ()
Ответ на: комментарий от proud_anon

Ну я согласен что твой вариант лучше, просто не смог молчать) К слову сказать, весь абзац с бугуртом запихан под кат, но почему-то это не сработало.

narical ()
Ответ на: комментарий от Macil

Это не проблема интерфейса.

Команда слишком неспецифическая (rm -rf /*), а повреждение (окирпичивание железки) слишком значительное для того, чтобы всю вину за возлагать на запустившего эту команду пользователя.

Какой смыл вытаскивать в интерфейс действие класса «окирпичься»?

Manhunt ★★★★★ ()

и почему никто не отписал еще про винду?

также тоже такое должно работать-тоесть удаление ключей ефи из бута

какой шикарный вирус будет

tem3 ()

Ах вот Поттеринг негодяй. Хотя если бы такое было раньше, то просто бы сказали что баг в линуксе и не плевали ни в кого конкретного

vertexua ★★★☆☆ ()
Ответ на: комментарий от vertexua

Причем здесь баг в линуксе, когда это баг в прошивке. Если в UEFI предусмотрена перезапись настроек, то так оно и должно быть. А при затирании настроек нормальная прошивка должна сама их сбросить на заводские. Это мне напоминает поведение некоторых телевизоров. Бывает, что в телевизоре дохнет флешка с настройками и он перестает включаться. так вот, в большинстве случаев достаточно впаять пустую флешку, а телевизор сам её заполнит заводскими настройками. Но попадаются экземпляры, которые не включаются до тех пор, пока в флешку не зальешь настройки программатором.

anonymous ()
Ответ на: комментарий от targitaj

отсутствие резервной копии таблицы разделов

А это не оно?

Deleted ()
Ответ на: комментарий от Deleted

резевная копия есть в GPT, которое поддерживается uefi. Насколько я понимаю, невозможно получить gpt + legacy загрузку. Если неправ, поправьте.

targitaj ★★★★★ ()

Поясните мне такую штуку, я так понял, что каталог нужно удалить из работающей системы и УЕФИ-БИОС будет стерт-поврежден и мать превратится в кирпич, так? А если я просто сотру весь раздел с этим каталогом, загрузившись из другой ОС (ну хоть с флешки), то УЕФИ-БИОС поведет себя аналогично или что?

Kompilainenn ★★★★★ ()
Ответ на: комментарий от targitaj

Ой, я перепутал, думал ты про GPT говорил.

Deleted ()
Ответ на: комментарий от targitaj

Установить систему через legacy (BIOS) на GPT. Делается это созданием вначале одного маленького раздела с флагом bios_mbr.

Andrew ★★★ ()
Последнее исправление: Andrew (всего исправлений: 1)
Ответ на: комментарий от Andrew

но работает это только на прошивках uefi, не так ли? Оригинальный bios ведь не сможет понять таблицу gpt?

targitaj ★★★★★ ()
Ответ на: комментарий от targitaj

Биос ничего не знает про gpt. ему и не надо знать, это проблема загрузчика, первая ступень которого будет лежать в protective mbr а 1.5 ступень в спец разделе bios_mbr. Но винда так конечно не умеет, потому специально для оффтопика существует hybrid mbr. Сам уже много лет использую только GPT и на UEFI и на BIOS машинах. Самая большая плюшка которая однажды меня спасла, это то что есть резервная копия таблицы разделов на случай если основная испорчена.

pftBest ★★★★ ()

Рекомендую всем присутствующим, особенно вопящим о том, что-де UEFI - зонд M$, навернуть вот этот цикл статей. Очень мозги прочищает.

droserasprout ★★ ()
Ответ на: комментарий от templarrr

Обычный граб и стабильную работу.

Поставил все по-старинке и забыл, что оно есть.

Twissel ★★★★★ ()

А вот нефиг в /sys вообще лазить. Чего там при каждодневном использовании ноута делать? Ну и да, у меня тот редкий случай где нет уефи. :)

Alexonline ★★★ ()

что на некоторых компьютерах с UEFI

Как хорошо, что у меня BIOS...

Odalist ★★★★★ ()
Ответ на: комментарий от anonymous

mint 17.2 вообще не монтируется)))) хрень ваш системд

В минте нету системд...

Odalist ★★★★★ ()
Ответ на: комментарий от curufinwe

Потому что UEFI придумали идиоты.

Напиши это John Wendell Thompson...

Odalist ★★★★★ ()
Ответ на: комментарий от Twissel

С GPT значит ничего не работало, а с MBR все зашибись, так?

templarrr ★★★★★ ()
Ответ на: комментарий от Dark_SavanT

Только в том же виндовсе у тебя efivars не экспортятся в файловую >систему и патч Бармина не поможет сдать железку в ремонт.

Винда тоже может убивать UEFI .Убедился на своем компьютере .Производитель правда пропадчил UEFI и теперь просто умирает винда и не портиться прошивка .А делов всего то - поставь 2 жестких и поменяй очередность загрузки в UEFI,XP отрабатывала нормально и не лазила куда не нужно ,при этом груб на 2 жестком не трогала .Начиная с Висты либо портила UEFI (благородя автоматическому восстановлению не получался с компьютера кирпич ) либо синий экран .Сейчас с обновленной прошивки просто синий экран ,хочиш чтоб винда поставилась ставь нормальный порядок загрузки или временно отключай 2 диск .....

maximnik0 ★★ ()

UEFI это Malware.

anonymous ()

Тред не читал. В этом тоже есть фанатики systemd, считающие что «так и должно быть»?

Yossarian ()

UEFI
Systemd
Grub

Пользователи ненужно должны страдать.

anonymous ()
Ответ на: комментарий от anonymous

Монсеньор слышал о VLC ? Монсеньор слышал, что сей софт позволяет выставить громкость динамика выше 100 процентов ? Знаете, что на многих ноутбука из-за того, что некоторые делали «погромче» горели динамики ? :) Так что следуя великой логике анонимуса, надо поставить крест на ВСЕХ производителях ноутбуков :) И все из-за vlc :)

DrRulez ()
Ответ на: комментарий от templarrr

Смысл в том, что реализация UEFI 2.3 емнип, в Lenovo G580 была настолько глючной, что лучше бы ее не было вообще.

А смысла использовать GPT на 500 Гб винте совместно с биос я не увидел, если есть мбр, которая мне просто привычнее и понятнее.

Только и всего.

Twissel ★★★★★ ()
Ответ на: комментарий от Andrew

Я один раз несколько лет назад залезал в ноут с UEFI, там было несколько каталогов с капсом, и внутри какая-то лабутень непонятная... К счастью, мне не пришлось с этим особо разбираться, потому что ноут накрылся :) Так что, возможно, это мне не повезло...

Sahas ★★★★★ ()
Ответ на: комментарий от devl547

А у меня на леново g505s линукс в легаси режиме ставится с диска, а потом наглухо виснет после загрузки инитрамфс. Проц при этом на полную вжаривает.

При этом если в uefi ставить, то всё ок.

Я так и не понял в чём проблема.

Zidane ()
Ответ на: комментарий от bookman900

Вот тут и не понятно, Винда Виндой, но что это творение делает в linux. На крайняк, если это препятствует установки linux, всегда найдутся люди, которые это ограничение хакнут.

У меня после установки убунты, на ноуте, появилась в биосе загрузочная запись «ubuntu», я ее удалил. И больше никаких uefi.

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