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 ()

Про LinCih еще никто не пошутил?

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

Поттеринг то прав, но всё же непонятно, при чём он тут вообще.

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

Ути-пути, вы правда такой глупенький?! А эпопею с прошивками intel nuc'ов не желаете прокомментировать? А то было бы оченно интересно узнать, отчего же там нынче лялихи проще устанавливать, нежели форточки?

Да, там были проблемы с лялихами. Только вот закончились они уже два года как. Ну так что, будем блистать, знаток вы наш за злобность корпорациев?!!

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

Вендоры не виноваты; вся проблема только в Линуксе.

Своё враньё как то можете обосновать??? Чисто на-поржать, валяйте, не стесняйтесь.

Что вы идиотик, и так уже понятно.

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

А ещё, бывает, делается «гибридная MBR».

По спецификации, когда на диске используется GPT, вместо MBR (первого сектора) нужно класть заглушку с одним разделом типа 0xEE на весь диск. А можно немного нарушить спецификацию и вторым разделом в эту заглушку впихнуть алиас какого-либо действительно существующего в GPT раздела (и пометить его как bootable).

Я так венду дуалбутил на одном из старых компов, где не было UEFI, но GPT использовать хотелось.

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

Ядро вообще не обязано исправлять чужие косяки.

В идеальном мире — да. В реальности — при таком подходе, ляликс вообще нигде работать не будет (причём по разным причинам). Не даром инженеры (sic!) Ubuntu/RedHat/etc дополнительно пропатчивают ядро.

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

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

В работающей системе записи в прошивке UEFI монтируются в псевдо-фс в виде горстки файлов. При обращении к этим файлам стандартной файловой утилиты с запросом на удаление эти вызовы обрабатываются ядром и транслируются в команды чипу на удаление записи из NVRAM. Если ты загрузишься из другой ОС, то в корневой ФС первой ОС не будет никаких файлов, связанных с UEFI. Как не будет файлов устройств, файлов портов, звука, файлов с переменными ядра. Поэтому всё вышеперечисленное и называется «псевдо-ФС».

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

В моем случае, когда я поудалял «лишние» записи, у меня исчезло загрузочное меню. То есть, ни в настройки зайти, ни загрузочное устройство выбрать. Просто висяк после включения. После пары десятков ребутов прошивка сама восстановила переменные, скорее всего из-за повреждения контрольной суммы она «догадалась», что что-то не так.

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

Значит динамики в ноутбуках хреновые. А громкость выше 100% установить невозможно. Это просто программный трюк с усилением самого звукового потока и в конечном счете ни к чему, корме искажения звука не приводящий. А раз динамики «летели» значит они и «полетели» бы и при проигрывании в любом плеере с задранными настройками эквалайзера.

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

Значит динамики в ноутбуках хреновые. А громкость выше 100% установить невозможно. Это просто программный трюк с усилением самого звукового потока и в конечном счете ни к чему, корме искажения звука не приводящий. А раз динамики «летели» значит они и «полетели» бы и при проигрывании в любом плеере с задранными настройками эквалайзера.



Там в другом было дело :поставили хреновые динамики ,ограничили громкость в вин драйверах .А чипсет позволял выставлять более мощный звук ,Соответственно под Lin и VLC с 100% громкостью имеем гарантийный ремонт ,и производитель чтобы не попадать на бабки сказал LINUX не потдерживаемая операционка и в ремонт принимать не будем .

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

ааа, то есть эти файлы «появляются» автоматически при загрузке ОС и система помещает их в строго определенном месте в ФС. ок, спасибо за вменяемое пояснение

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

Производитель ПК/Матплаты?

Просто интересно, оно у всех криво сделано или Леново этим грешит особенно.

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

Значит динамики в ноутбуках хреновые. А громкость выше 100% установить невозможно.

Ещё как возможно. Я даже как-то ссылку постил на автора который спалил (в буквальном) смысле свой хромобук, немного пошалив в alsamixer.

Прикол в том, что у хромобука: а) нет reset; б) нет аппаратного poweroff; в) аккумулятор несъёмный. Так что автору пришлось тупо смотреть как его аудиотракт выгорает.

Macil ★★★★★ ()

Леннарт Поттеринг, главный разработчик systemd, отказался это делать, отметив, что существуют программы, которые намеренно меняют настройки прошивки через этот каталог. systemd можно заставить монтировать его только для чтения, если вписать соответствующую строчку в /etc/fstab с параметром ro.

Мог бы костыль с перемонтированием сделать.

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

Можно, но bios boot partition понадобится, как минимум для древних биосов.

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

Из упоротышей, кричащих, что во всём виноват Поттер, ты второй.

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

кричащих, что во всём виноват Поттер

Не проецируй на меня свои фантазии, в моём сообщении такого нет.

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

Просто интересно, оно у всех криво сделано или Леново этим грешит особенно.

Ноут у меня Lenovo B590 (Pentium 2020m, 4 Gb, NV610). В его защиту скажу, что это самая дешевая и при этом рабочая машина своего времени - весь матовый, с матовым экраном и связкой встроенная intel / дискретная nvidia. Купил за 16 т.р. осенью 2015 сразу после прыжка доллара, пока были в наличии по старой цене.

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

В его защиту скажу, что это самая дешевая и при этом рабочая машина своего времени

Именно, но ефи в первых версиях прошивок там реализовано просто отвратительно.

У меня Lenovo G580.

Просто вроде как у Асеров и HP тех же годов выпуска прошивки были получше.

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

В его защиту скажу, что это самая дешевая и при этом рабочая машина своего времени

Именно, но ефи в первых версиях прошивок там реализовано просто отвратительно.

У меня Lenovo G580.

Просто вроде как у Асеров и HP тех же годов выпуска прошивки были получше.

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

Просто вроде как у Асеров и HP тех же годов выпуска прошивки были получше.

На рабочем ASUSе чуть более ранних времен UEFI заметно лучше по возможностям (из меню прошивки позволяет добавлять/менять/удалять загрузочные записи), но по качеству... Короче, пришлось обновлять прошивку до последней версии, потому что иначе добавленная таким образом ОС не грузилась )

narical ()
Ответ на: Ты чьих будешь? от LongLiveUbuntu

Я не системДшных; они, видать, «особые пупсики», а системДшники — обычные пользователи.

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

Так чьих будешь?

Чей холоп, я спрашиваю? Apple? Microsoft?

Ибо оборот «ты линуксойд» какбе намекает на засланного казачка.

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

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

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

Написать скрипт удаляющий переменные uefi и заставить запустить. Тогда поймёшь как не ломает.

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

Lin.CIH какой-то

Аналогичная мысль возникла. 20 лет почти прошло, а ужас возвращается.

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

«защищает» ПК от вторжения линукса

эм, нет. uefi и secure boot — не одно и то же

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

все эти действия, по-хорошему, «неправильны», как, к примеру, Jailbreak iOS.

Эти действия описаны в спецификации, в отличие от джейлов, так что мимо.

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

Почему у тысяч людей во всем мире на Windows работают ПК на UEFI, и только у Linux вечные проблемы? Меня это, к примеру, очень напрягает.

Почему у тысяч людей работают и не зависают счёты? И только у ПК с виндоус всякие вечные зависания, вирусы и баги? Меня это, к примеру, очень напрягает.

А если серьёзно, то у винды тоже всё далеко не шоколадно, и окирпичивание при переустановке и прочее счастье. Программка на 20 строк точно так же удалит переменные и из винды и с тем же успехом окирпичит комп.

zink ★★ ()

Кстати, уже кто-то писал, что sustemD говно?

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

Нужно. Ибо ни какая программа не должна аппаратно жечь динамики.

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

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

Регулировать температуру процессора и подсветку.

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

Слава RMS у меня BIOS вместо этого вашего UEFI

RMS бы не очень оценил ни то, ни другое.

wasd ()

Кто-нибудь может дать адекватный ответ причине разработки UEFI? Чем BIOS был плох?

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

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

В общем необходимость в замене БИОСА была, но проприетарщики сделали это по своему и в своих интересах.

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

А то UEFI не аутентифицирует каждую вставленную клавиатуру, а то что сделали в своих интересах это больше похоже на истину.

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

Я так понимаю, причин была масса. Начиная тупо от поддержки оборудования, управления оборудования и заканчивая микро-прошивками, которые позволяют ходить в Сеть без загрузки ОС.

targitaj ★★★★★ ()

Нужно больше воркэраундов в ядре!

systemd, как всегда, не виноват.

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

Опять же ничего определенного, может я чего то не понимаю, но зачем в сеть то ходить без загрузки ОС?

light_voldemar ()

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

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

Если «Монсеньор» внимательно читал бы историю про vlc то обратил бы внимание, что нигде не было написано что vlc сжег динамики, было написано что людям отказали в гарантии только на основании того что на ноуте установлена vlc.

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

В итоге даже десятая винда отлично работает не то что без Secure Boot - без UEFI. Реально. Только сегодня поставил её в виртуалочку, в которой включена только поддержка BIOS. Отлично работает и не даже нет никаких предупреждений.

Кстати, иногда только это и спасает. Ибо на некоторых особо кривых UEFI какая-либо винда ставится отказываться или может окирпичить систему при переустановке. То есть банальное «переустановить винду» может привести к печальным последствиям, даже если пользователь слышать не слышал ничего про Linux.

Так что виноват таки вендор прошивки, который не соблюдает спецификации.

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

Производители-идиоты делают так, что именно только предустановленная винда и работает. То есть можно окирпичить ноут даже просто при попытке поставить другую винду или восстановить старую.

То есть нажимаешь в винде «восстановление системы» или «сброс к заводским настройкам» - и ноутбук кирпичится. Или ты купил более крутую винду (какую-нибудь Pro вместо Home) и поставил её вместо того, что стояло по дефолту - ноутбук кирпичится. А ведь ещё нынче всем навязывают обновление до десятки. Скачал обновление и запустил установку - и ноутбук кирпичится. Такие производители реально есть.

На такие материнки Linux и то проще поставить, потому что есть хоть какой-то контроль за процессом и можно обойти острые углы. А винда то действует всегда по одной типовой, но никому неизвестной процедуре. И если материнка от неё дохнет, то выхода нет.

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