Ubuntu 17.10 повреждает BIOS на некоторых ноутбуках Lenovo, Acer и Toshiba

r6crtbksj3tuvklhyfymyj7xwaq.jpegКомпания Canonical отозвала вышедший в октябре дистрибутив Ubuntu 17.10 и спрятала ссылку на сайте для скачиваний. Причиной стал критический баг с повреждением BIOS в некоторых моделях ноутбуков Lenovo и одной модели Acer. Полный список пострадавших моделей в данный момент уточняется и пополняется.

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

Что ещё хуже, ломается загрузка с USB-флешки, поскольку USB не распознаётся.
Судя по описанию бага, он как будто происходит после активации драйверов intel-spi-* в ядре. Судя по всему, эти драйверы ещё не доработаны до конца и не готовы для использования на пользовательских системах.

В качестве обхода можно попробовать деактивировать драйверы intel-spi-*. В описании бага отмечено, что последствия таких действий будут минимальными: «Маловероятно, что кто-то действительно делает что-нибудь такое, для чего требуется этот драйвер».

Список пострадавших моделей ноутбуков:

  • Lenovo B40–70
  • Lenovo B50–70
  • Lenovo B50–80
  • Lenovo Flex-3
  • Lenovo Flex-10
  • Lenovo G40–30
  • Lenovo G50–70
  • Lenovo G50–80
  • Lenovo S20–30
  • Lenovo U31–70
  • Lenovo Y50–70
  • Lenovo Y70–70
  • Lenovo Yoga Thinkpad (20C0)
  • Lenovo Yoga 2 11» — 20332
  • Lenovo Z50–70
  • Lenovo Z51–70
  • Lenovo Ideapad 100–15IBY
  • Acer Aspire E5–771G


Как уже отмечалось, список пополняется.

В комментариях к багу упоминается также модель Toshiba L50B-23G.

На многочисленных форумах пользователи жалуются на эту проблему, потому что у многих ноутбуков отсутствуют приводы CD-ROM — так что они не могут уже загрузиться с другого дистрибутива.

Особенно много жалоб на форумах Lenovo. Это особенно неприятно, потому что часто именно ноутбуки Lenovo ThinkPad часто рекомендуют для работы с Linux, а у компании Canonical на офсайте они включены в список официально поддерживаемого оборудования.

В предыдущих версиях Ubuntu баг не проявляется.

Теоретически, BIOS можно перепрошить и вернуть в исходное состояние (например, с помощью программатора), но это нетривиальная и немного рискованная процедура. К тому же, программатор есть не у каждого пользователя. Поэтому можно понять сильное недовольство тех, кто столкнулся с этой проблемой и не может загрузить ноутбук. «Это неприемлемо, прямо сейчас мой Lenovo G50–80 превратился в кирпич», — пишет один из пострадавших в комментариях к багу на сайте Canonical.

Canonical сейчас активно работает с Lenovo, чтобы найти истинную причину проблемы и выпустить патч. Готовятся новые образы Ubuntu 17.10 с обновленным ядром, которое не будет ломать BIOS на новых установках.

К сожалению, новые образы ничем не помогут тем, кто уже установил Ubuntu 17.10 и повредил прошивку BIOS. Крайний случай — нести ноутбук в ремонт на замену материнской платы. Если же ноутбук всё-таки загружается, то можно попробовать такой обходной манёвр, который предлагают на форумах техподдержки Lenovo.

У этого пользователя тоже сбилось сохранение новых настроек BIOS и пропала возможность загружаться с USB. Первым делом он проверил последовательность загрузки EFI. Это делается следующей командой:

efibootmgr -v

В его случае последовательность загрузки выглядела так:

BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0001,0002,2001,2002,2003
Boot0001* antergos_grub HD(1,GPT,f128f12b-fa3e-45b1-b5c9-f03c328498cb,0x800,0x64000)/File(\EFI\antergos_grub\grubx64.efi)
Boot0002* Windows Boot Manager HD(1,GPT,f128f12b-fa3e-45b1-b5c9-f03c328498cb,0x800,0x64000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC

Из этого следует, что первым по-любому будет загружаться grubx64.efi из директории antergos_grub и только с указанного диска.

Логично предположить, что мы можем управлять загрузкой, меняя содержимое папки antergos_grub. Он просто заменил содержимое этой папки на содержимое пакета менеджера загрузки rEFInd, переименовав при этом refind_x64.efi в grubx64.efi. Тогда после загрузки ноутбука появляется стандартное загрузочное меню rEFInd.

© Geektimes