Давно уже мне не приходилось сисадминить, а тут опять. Накопилось проблем на моём домашнем линуксном ноутбуке. Началось с того, что после очередного обновления BIOS от Lenovo линукс перестал стартовать. Пришлось разбираться, а заодно лечить давно накопившиеся проблемы.
Три года назад я купил себе новый ноут Lenovo ThinkPad P1, взамен сломавшегося Dell Inspiron 5551. Компьютер шёл с предустановленным Windows. Мне не особо нужен Windows, изредка, чтобы гонять радиолюбительский софт. Я тогда уполовинил раздел Windows на диске и на вторую половину установил Ubuntu. Которой и пользовался всё это время.
Два года назад после очередного обновления Windows 10 сломался и перестал фунциклировать. Известная нашумевшая проблема с кривым апдейтом. Ну и бог с ним, подумал я, и перестал бутить этот Windows вообще. Типа, потом когда-нибудь разберёмся, когда Микрософт баги починит.
Потом мне перестало хватать 250 Гбайт линуксного раздела. Я купил установил ещё один диск NVME, терабайтный на этот раз, чисто для Линукса. Но переставлять систему было лень, так что я смонтировал второй диск как /home. А грузился Линукс всё ещё с первого диска, причём по старинке, без UEFI.
И тут пришло обновление BIOS. Линукс отслеживает появление обновлений от Lenovo и предлагает установить, стандартной командой fwupdmgr. Обновления обычно проходят гладко, но в этот раз Линукс не загрузился с обновлённым биосом. Вместо этого вылез покалеченный Windows. Как позже выяснилось - изменилась дефолтная установка и обязательно требовался UEFI. Но я ещё этого не знал, и пришлось начать долгий процесс разбирательства.
1. Записать загружабельную флешку с установочным образом Ubuntu 22.10. Она же работает как LiveCD, и с неё можно бэкапить файловые системы, менять таблицу разделов, конфигурить первисный загрузчик и прочее.
2. Купить USB-диск для бэкапа. В принципе, у меня был старый 4-терабайтный Seagate, но он оказался забит всякой музыкой и фильмами, и вообще он в формате exFAT, а хотелось обычный линуксный ext4 для простоты. Сбегал в BestBuy и взял двухгиговый SanDisk G-drive ArmorATD. И скорость у него заметно выше, благодаря интерфейсу USB-С 3.1.
3. Для начала установить на бэкапный диск Ubuntu. Это очень удобно: при восстановлении можно грузиться прямо с бэкапного диска и переписывать всё, что нужно.
4. Переписать нужные файлы с разделов Windows10 и Ubuntu на бэкапный диск. Заодно и содержимое разделов EFI полезно сохранить для последующего разбирательства.
5. Убедиться, что Линукс корректно стартует с бэкапного диска. Тут пришлось покумекать, так как выяснилось, что линуксный установщик по какой-то причине прицепился к разделу EFI на основном диске NVME, вместо внешнего диска USB. Пришлось вмешаться и переставить GRUB вручную.
6. Стереть содержимое старых дисков NVME, обоих. Чтобы никакой древний мусор с них не перелез при установке нового Линукса и Windows. Бережёного бог бережёт. Эта операция заняла несколько часов: перезаписать полтора терабайта непросто.
7. Установить свежий Ubuntu 22.10 на первый диск NVME. Убедиться, что раздел EFI и загрузчик GRUB встали корректно.
8. Восстановить все файлы с бэкапного диска. Основное это /home, /opt, /usr/local, ну и всякое в /etc по мелочи.
9. Скачать установочный образ Windows10 с сайта Микрософт, пободаться с ним и убедиться, что дело тухлое. Он грузится, пытается ставить систему и первым делом спрашивает: а где у тебя, милок, драйверы для твоей конкретной материнки? Хрен его знает. На сайте Lenovo сотни каких-то драйверов для ThinkPad P1, пойди разбери.
10. Плюнуть и заказать у Lenovo за $29 установочную флешку Windows10 для этой конкретной модели ноутбука. Теперь жду, когда пришлют. Второй диск NVME остаётся пустым в ожидании этой флешки.
Это всё из серии "как я провёл выходные".
Три года назад я купил себе новый ноут Lenovo ThinkPad P1, взамен сломавшегося Dell Inspiron 5551. Компьютер шёл с предустановленным Windows. Мне не особо нужен Windows, изредка, чтобы гонять радиолюбительский софт. Я тогда уполовинил раздел Windows на диске и на вторую половину установил Ubuntu. Которой и пользовался всё это время.
Два года назад после очередного обновления Windows 10 сломался и перестал фунциклировать. Известная нашумевшая проблема с кривым апдейтом. Ну и бог с ним, подумал я, и перестал бутить этот Windows вообще. Типа, потом когда-нибудь разберёмся, когда Микрософт баги починит.
Потом мне перестало хватать 250 Гбайт линуксного раздела. Я купил установил ещё один диск NVME, терабайтный на этот раз, чисто для Линукса. Но переставлять систему было лень, так что я смонтировал второй диск как /home. А грузился Линукс всё ещё с первого диска, причём по старинке, без UEFI.
И тут пришло обновление BIOS. Линукс отслеживает появление обновлений от Lenovo и предлагает установить, стандартной командой fwupdmgr. Обновления обычно проходят гладко, но в этот раз Линукс не загрузился с обновлённым биосом. Вместо этого вылез покалеченный Windows. Как позже выяснилось - изменилась дефолтная установка и обязательно требовался UEFI. Но я ещё этого не знал, и пришлось начать долгий процесс разбирательства.
1. Записать загружабельную флешку с установочным образом Ubuntu 22.10. Она же работает как LiveCD, и с неё можно бэкапить файловые системы, менять таблицу разделов, конфигурить первисный загрузчик и прочее.
2. Купить USB-диск для бэкапа. В принципе, у меня был старый 4-терабайтный Seagate, но он оказался забит всякой музыкой и фильмами, и вообще он в формате exFAT, а хотелось обычный линуксный ext4 для простоты. Сбегал в BestBuy и взял двухгиговый SanDisk G-drive ArmorATD. И скорость у него заметно выше, благодаря интерфейсу USB-С 3.1.
3. Для начала установить на бэкапный диск Ubuntu. Это очень удобно: при восстановлении можно грузиться прямо с бэкапного диска и переписывать всё, что нужно.
4. Переписать нужные файлы с разделов Windows10 и Ubuntu на бэкапный диск. Заодно и содержимое разделов EFI полезно сохранить для последующего разбирательства.
5. Убедиться, что Линукс корректно стартует с бэкапного диска. Тут пришлось покумекать, так как выяснилось, что линуксный установщик по какой-то причине прицепился к разделу EFI на основном диске NVME, вместо внешнего диска USB. Пришлось вмешаться и переставить GRUB вручную.
6. Стереть содержимое старых дисков NVME, обоих. Чтобы никакой древний мусор с них не перелез при установке нового Линукса и Windows. Бережёного бог бережёт. Эта операция заняла несколько часов: перезаписать полтора терабайта непросто.
7. Установить свежий Ubuntu 22.10 на первый диск NVME. Убедиться, что раздел EFI и загрузчик GRUB встали корректно.
8. Восстановить все файлы с бэкапного диска. Основное это /home, /opt, /usr/local, ну и всякое в /etc по мелочи.
9. Скачать установочный образ Windows10 с сайта Микрософт, пободаться с ним и убедиться, что дело тухлое. Он грузится, пытается ставить систему и первым делом спрашивает: а где у тебя, милок, драйверы для твоей конкретной материнки? Хрен его знает. На сайте Lenovo сотни каких-то драйверов для ThinkPad P1, пойди разбери.
10. Плюнуть и заказать у Lenovo за $29 установочную флешку Windows10 для этой конкретной модели ноутбука. Теперь жду, когда пришлют. Второй диск NVME остаётся пустым в ожидании этой флешки.
Это всё из серии "как я провёл выходные".

no subject
Date: 2022-10-24 06:32 (UTC)Ого как интенсивно. И куча всякой такой фигни, от которой я традиционно стараюсь вообще держаться подальше.
no subject
Date: 2022-10-24 06:49 (UTC)no subject
Date: 2022-10-24 14:24 (UTC)С этим же трахался, мудозвоны. Если можно минимально загрузить винду, то рецепт таков (у меня уже работал EFI):
In elevated cmd.exe:
> bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
Reboot.
Где найдено:
https://github.com/fwupd/firmware-lenovo/issues/6
https://doc.ubuntu-fr.org/uefi#lenovo
https://superuser.com/questions/965751/how-to-access-efi-partition-on-windows-10
no subject
Date: 2022-10-24 19:41 (UTC)no subject
Date: 2022-10-24 22:41 (UTC)no subject
Date: 2022-10-24 23:09 (UTC)no subject
Date: 2022-10-24 16:52 (UTC)no subject
Date: 2022-10-24 19:40 (UTC)no subject
Date: 2022-10-24 22:43 (UTC)no subject
Date: 2022-10-26 12:16 (UTC)лучшее - враг хорошего
с трудом представляю себе удалённо эксплуатируемую уязвимость в firmware обычного ноутбука
no subject
Date: 2022-10-26 15:06 (UTC)https://en.m.wikipedia.org/wiki/Intel_Active_Management_Technology
no subject
Date: 2022-10-26 15:26 (UTC)Но всё же эта хрень выключена в большинстве потребительских материнских плат и ноутбуков. Бывают премиум-решения для бизнеса за соответствующую цену, но там нужен и специальный процессор, и поддержка в прошивке, и энтерпрайзный софт для администрирования всего этого хозяйства (с минимальным количеством копий в заказе). Короче, все эти риски, связанные с Intel ME — не в списке моих забот. В потребительских ноутбуках и материнских платах Intel ME не держит открытых портов.
no subject
Date: 2022-10-26 15:49 (UTC)no subject
Date: 2022-10-26 16:00 (UTC)Просто я считаю, что если мой adversary — это government, тогда я уже позаботился в том числе и о деактивации Intel ME (хотя с философией "безусловно доверяем всем обновлениями от вендора железа" и это не поможет), а если нет — то и на соответствующие уязвимости мне как бы пофиг — ближайший script kiddie о них никогда не узнает и их не проэксплуатирует.
no subject
Date: 2022-10-30 10:45 (UTC)дожили! ;-P
no subject
Date: 2022-11-05 03:51 (UTC)no subject
Date: 2022-11-05 05:09 (UTC)no subject
Date: 2022-11-05 07:21 (UTC)Старая шутка, что килобайт это отечественный аналог мегабайта.