LINUX.ORG.RU

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

 , , ,


2

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 ()
Последнее исправление: JB (всего исправлений: 11)

А я поставил легаси сразу как только разобрался, как без потери данных сконвертировать GPT2MBR и снес комплектную с лэптопом «восьмерку».

Мои волосы стали гладкими и шелковистыми. :-)

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

как без потери данных сконвертировать GPT2MBR

Смысла менять адекватную GPT на старое досовское уг - 0.0%.

Deleted
()
Ответ на: Ядро не должно от Camel

Мне кажется ядро не должно решать подобных проблем.

Low-level взаимодействие с железом это компетенция ядра.

Deleted
()

Я с самого начала говорил, что UEFI - зло.

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

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

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

переустановка Windows

Это пережиток поколения Windows 7 и BIOS. Сейчас все решается просто в виде переустановки изнутри, без перезаписи. И я не верю все равно, что UEFI так зажопили. Иначе бы была огромная кампания по фиксингу UEFI. Но такого нет.

/// В этом плане OS X с ее EFI лучше))

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

Так ты же настоящий ГСМ.

ЧТо такое ГСМ, болезлый? Ты настолько «двинутый», что не можешь полными словами написать?

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

и только у Linux вечные проблемы?

У кого проблемы? У какого-то ССЗБ, который шаловливыми ручками от рута запускает rm -rf на чём попало?

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

знания о том, как им пользоваться правильно, как сгенерировать свои собственные PK и KEK, как удалить предустановленные, как подписать собственный загручик и так далее.

Есть одна проблема: все эти действия, по-хорошему, «неправильны», как, к примеру, Jailbreak iOS. Да, ты получаешь что хотел, но риск огрести по полной резко возрастает. UEFI работает по тому же видимо принципу.

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

В этом кстати и новость))

Видать в стане Linux куча желающих копаться в системе и ее часто rm -rf*-ить. Убунтенки видать не страдают. Они просто используют систему по своему назначению.

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

Компетенция ядра

Low-level взаимодействие с железом это компетенция ядра.

Да, это так. Ядро даёт возможность смонтировать efivars и писать туда, или не писать. Смонтировать можно как с ro, так и с rw. В ядре ошибки нет, ядро работает с железом в рамках своей компетенции.

Ядро должно работать в рамках своей компетенции, а не решать проблемы кривых прошивок.

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

99% всех проблем в черезжопной реализации спецификаций UEFI.

А что делать когда сами разработчики стандарта кладут болт на спецификации ? Например разрешили отключить секьюрити загрузку ,замечательно .Но если у вас 2 жестких диска и вы поменяете порядок загрузки в UEFI (с №2 загрузка с груб и на нем Lin или BSD ) ,например чтобы M$ не затирал загрузчик .Можете словить попорченный UEFI ,либо в случае с
М$ синий экран с прерванной инсталляцией - что мешает отработать по спецификациям ,включена поддержка совместимости с легаси биос ,поменян порядок загрузки дисков ,ну и хрен с ним , на 1 жестком диске стандартный мбр загрузчик ......

maximnik0 ★★
()

виртуальная файловая система в /sys/firmware/efi/efivars монтируется

Зачем она вообще монтируется, тем более на запись, тем более если не умеет восстановить себя после краша. Помнится для таких целей был двух-уровневый BIOS дабы можно был из recovery залить убитый BIOS, а тут только выпаивать UEFI микросхему и искать программатор, так что-ли? Вот вам и XXI век.

Deleted
()

Новости этой уже полмесяца. Заметив, что на ЛОРе тишина, я попытался её утром опубликовать. Мой вариант был зарезан, а через 8 минут новость опубликовал другой человек. Юля, как так-то? Я понимаю, если бы речь шла о свежей информации, когда счёт идёт на минуты, но тут полмесяца!

UEFI лично мне очень нравится, чего нельзя сказать о конкретной реализации. На моём ноутбуке Lenovo B590 я через efibootmgr однажды попытался «почистить» загрузочное меню, и в результате почистил прошивку ОТ загрузочного меню. Получился самый натуральный кирпич, не реагирующий ни на что. Я просто сидел и раз за разом перегружал его, под конец без особой надежды. Но судя по всему, из-за этих перезагрузок в какой-то момент повредился CRC, и чип восстановил «умолчальные» записи, но понервничал я изрядно.

Так вот что хочу сказать - как идея UEFI мне очень нравится, поскольку позволяет полностью отказаться от загрузчика. Не нужны никакие grub'ы и прочие! Поставил систему, лобавил в UEFI запись для нее, и больше ничего не надо. Для примера, на рабочем ноуте asus (довольно недорогом) настройка загрузочных записей есть из интерфейса самой прошивки и не требует применения консольных утилит. Зашёл в «биос», нажал «добавить запись», вписал название, путь к ядру и параметры - ВСЁ!

Я подозреваю, что все проблемы с UEFI вот отчего: Вендоры просто не предполагали, что пользователь полезет в прошивку! Реализовали кое-как, добавили пару своих строчек, которые отвечают за вход в меню при загрузке и за выбор загрузочного устройства - и всё. А предположить, что пользователь легко может эти записи удалить, причем иногда случайно - мозгов не хватило.

narical
()

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

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

Мой вариант был зарезан, а через 8 минут новость опубликовал другой человек.

Наверное потому, что у тебя нет звезд, плакЪ-плакЪ :(

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

Я подозреваю, что все проблемы с UEFI вот отчего: Вендоры просто не предполагали, что пользователь полезет в прошивку!

Ты оказался тут один умный, только вот...

А предположить, что пользователь легко может эти записи удалить, причем иногда случайно - мозгов не хватило.

...немного ни правильна. Просто потому что лишь 1-2% особо непоседливых будут заниматься какирьством и лезть в те прошивки, которые могут парализовать ПК.

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

1-2% особо непоседливых будут заниматься какирьством

А за остальных это сделает вирус под виндой.

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

Вышеупомянутые окирпиченные виндовс ноуты это и есть «работают»? Вах!

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

Дело в том, что разные ОС однозначно будут заниматься «какирством», и это было известно с самого начала. Что установщик винды будет это делать - уж точно. Потому что речь идёт о замене устаревшей технологии загрузки на более продвинутую.

А дальше можно было включить логику: есть и другие ОС помимо винды, и им тоже потребуется работать с UEFI. А раз такого понятия, как «установщик linux» не существует (имеется в виду общий для всех дистров) - в прошивку полезут разного рода и степени сомнительности утилиты, чтобы вписать загрузочную запись. И значит, люди БУДУТ заниматься упомянутым вами выше занятием. У них выбора особо нет - или на устаревающей связке grub+mbr сидеть, или пользоваться современными технологиями.

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

Зачем тогда Microsoft требует делать secureboot отключаемым?

Уже не требует.

anonymous
()

И опять повторюсь, что леня тут прав. А разработчики сами пусть мудохаются со своими прошивками

sehellion ★★★★★
()

Алсо, умиляет как люди хейтят UEFI в этом треде. И за что? За то что из под линукса можно с ним взаимодействовать.

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

99% всех проблем в черезжопной реализации спецификаций UEFI. Я например отключил его у себя ...

его нельзя отключить.

точнее говоря единственный способ отключить — выключить купьютер из электророзетки

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

Потому что производители тестируют десктопное железо только под виндой. Если винда при попытке её установить окирпичивает железку, то такую железку в продажу не выпустят, а профиксят (скорее всего костыльным способом) баг. На полное соответствие спецификациям UEFI никто не тестирует, главное работает на целевой ОС и ладно. А теперь докажи, что нарушает спецификацию UEFI Linux, а не железяка.

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

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

Dark_SavanT ★★★★★
()

Пользователям GNU/Linux можно посоветовать узнать, не подвержены ли их системы этой ошибке

и как это сделать?

(без удаления ефиварс конечно)

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

Прикол в том, что это стоковый AMI, редкий производитель правит что-то, максимум красивостей добавят.

gadfly ★★
()

а в чем проблема монтировать как rw с битом +i?

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

Юля, как так-то? Я понимаю, если бы речь шла о свежей информации, когда счёт идёт на минуты, но тут полмесяца!

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

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

Для говножелеза - да, для нормального - нет.

1. Может, всё же для говнопрошивок?

2. Какой бы добрый человечек завёл бы где-нибудь на общедоступном ресурсе чёрный списочек говнопрошивок? Если бы Вы взялись, было бы здорово.

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

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

Как минимум делл и хьюлетт тестируют всё то же самое и под линуксом (убунтой). Под федорой точно никто не тестирует, ибо дистр по определению экспериментальный.

Orlusha ★★★★
()

Не понимаю в чём проблема. VFS — один из самых простых и эффективных способов коммуникации с юзерспейсом. Если юзерспейс выдаёт некорректные команды через этот интерфейс (с помощью rm -rf /sys), то это проблема юзерспейса. И никакой защиты от этого просто не придумать.

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

Почему тогда люди жалуются на периферию, что не работает? То звук, то wifi, то ещё что? Или это уже не входит в тестирование?

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

Уточню: заставил UEFI понимать только legacy-режим загрузки. А так да, сама прошивка не поменялась.

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

1. Делл по старой традиции нередко ставит вайфаины, которые требуют своего драйвера; драйвер обычно выкладывается на делловский сайт. Сложности начинаются тогда, когда пользователь ставит версию убунты, под которую этот драйвер не годится.

2. У профессиональных моделей хьюлетта есть белые списки оборудования; по словам ребят из BCC, оборудование из белого списка поддерживается всеми заявленными ОС (в качестве линукса у профессиональных моделей хьюлетта идёт SLED).

3. Про проблемы со звуком у моделей делла и хьюлетта, поставляемых с линуксом, не слышал; киньте, пожалуйста, ссылочку, если можно.

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

Почему у тысяч людей во всем мире на Windows работают ПК на UEFI

Бгг. Переустанавливали давеча в сервисцентре венду на одном гнусмасе, больше гнусмас не загрузился. А саппорта - ноль.

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

А с деллом и хьюлетом были проблемы с uefi? Раньше самсунги ломались при загрузке Linux. Сейчас не знаю, для каких производителей свойственна проблема.

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

1. Ок.

2. Идея безусловно крутая, но один человек не потянет такое дело. Надо для начала прошерстить пару сотен гуглозапросов типа «linux+UEFI+brick», отсортировать, пропиарить на куче ресурсов чтобы народ добавлял новое железо и т.д. Трудозатраты большие, может подумаю в свободное время.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.