Pull to refresh

Comments 129

станет невозможно запускать 16-битные операционные системы

Не 16-битные системы, а системы с 16-битным загрузчиком. Как Windows XP, например.

А grub-efi сможет загрузить ее, интересно?

grub для меня и так тихий ужас, не знаю, не уверен. Возможно. Но это уже костыль, а что дальше будет?
Проблема ведь шире, чем кажется, отсутствие традиционного BIOS — это отсутствие INT 13, INT 10, INT 1A, что там ещё в традиционной загрузке используется (даже в 32-битном режиме)?
Тут дальше читаю, похоже, вообще все 32-битные системы пролетают даже, что там XP.

Ну да 32 бита постепенно уходят в историю… вслед за ними уходит в историю и legacy загрузка в режиме совместимости с BIOS (ныне это чаще всего просто модуль CSM в составе UEFI — именно он устанавливает нужные режимы процессора и памяти, и эмулирует все эти INT10,13,1A...)

Однако стандарт UEFI никаких препятствий для 32-х битных платформ не ставит.
Препятствия ставят вендоры, многие из которых уже забили на поддержку 32-разрядных решений.
Однако стандарт UEFI никаких препятствий для 32-х битных платформ не ставит.

Вы читайте внимательней: UEFI Class 3 как раз ставит.

И таки вы сами невнимательно прочитали:
После удаления CSM на новых платформах станет невозможно запускать 16-битные операционные системы
Со стопроцентной уверенностью утверждать не буду, но, по-моему, не сможет. Я когда-то пытался найти способ загрузить Memtest из grub2-efi, не получилось.
вот про проблемы безопасности BIOS по сравнению с UEFI вкупе с трояном ME пусть своей бабушке рассказывают.
Статью бы понятную без демагогии, есть например ноут без харда, воткнули хард, в биосе выбрал загрузку с флешки, накатил ОС и всё, грузись с харда. С UEFI такой фокус не проходит, нужен какой-то подготовленный раздел на харде, какие-то странные особенности. Мне пока не понятно зачем оно надо, хочу с флешки грузиться.
В UEFI загрузка с флешки работает точно так же. Никаких подготовительных разделов не нужно.
У меня рядом ноут, если на нём легаси-биос не включен, то без харда он вообще не грузится, говорит, что не найден загрузочный раздел. Видимо я что-то не так делаю, но хоть пинайте, не понимаю что. По этому и сказал про статью, потому, что такие же как я наверняка есть ещё, и наверняка пытаются нагуглить ответ. Я не смог.
Статью про что? Запишите образ, например, любого современного 64-битного Linux программой, записывающей его посекторно, и он будет загрузочным.
Установочный образ Windows нельзя записать таким способом (его нельзя было зак записывать и в BIOS-режиме).
Для записи воспользуйтесь, например, Etcher.
На флешку записать? А если она уже бутабельная, содержимое не полетит? Если там уже развёрнутый образ куда там писать посекторно? Вот приблизительно про это статью. Наверно у вас в голове готовая картинка как поступать в таких случаях, а мне вы предлагаете инструкцию по рисованию совы.
Если там уже развёрнутый образ куда там писать посекторно?
Начиная с 0 сектора. Содержимое флеш перезапишется.

Если у вас там есть уже UEFI-загрузчик какой-то, скопируйте файлы на другой раздел и внесите изменения в конфигурационный файл загрузчика.
А если нет UEFI-загрузчика? Есть только флешка которую нельзя терять? Вы пожалуйста больше не пишите, потому что каждое ваше сообщение рождает десяток новых вопросов, а я их задавая начал получать минусы. Мне видимо с другой стороны надо разбиться начинать.
Есть только флешка которую нельзя терять?

Как вы тогда вообще собираетесь делать какую-либо загрузочную флешку?
Ну и цена восьмигигабайтной флешке копейки, а систем, которым нужно больше, я и не знаю.

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

А для меня загадка, что за ценность такая для вас флешка. И особенно данные с которой нельзя терять (кто хранит данные на флшке, вы о чём вообще?).

Да это не ценность, это просто чужое, надо вернуть как взял, нормальный чей-то рабочий инструмент, знаете типа «рекавери-флешка»? Вот мы начали-то с legacy bios, так вот такой флешкой я спокойно без каких либо лишних телодвижений просто ставлю на ноут винду и через пол часа возвращаю пользователю. В таких случаях с uefi коротких путей нет, и именно по этой причине я отрубаю этот uefi когда вижу.

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

Чем в этом плане отличается UEFI-загрузка? Вы существующий раздел для записи образа Windows используете, с существующими на нем файлами, только загрузчик устанавливаете, а потом файлы удаляете?

Ну, скопируйте флеш посекторно, сделайте то, что хотели, а потом запишите копию обратно на флеш.
Я правда всё равно не понимаю. Если у ноутбука есть поддержка uefi, а у меня нет ни одного uefi раздела, то что делать? Где-то найти и как-то записать на новый хард в начало диска? Ноут сам поймёт откуда грузиться? Так же не бывает. Надо наглядно, чтобы было понятно, моей голове не хватает данных.
Сделайте UEFI-раздел, отформатируйте его в FAT/FAT32, скопируйте загрузчик по пути EFI/BOOT/BOOTX64.EFI.
Это даже работает просто с флешкой, на которой один fat32 раздел. Я так загрузочную винды для uefi делаю — форматирую флешку, копирую файлы из исошника и всё, без всяких посторонних программ.
не спора ради, можете кинуть ссылкой в меня, объясняющей почему оно до сих пор не умеет читать NTFS?

Если вам дали нормальную рекавери-флешку, то можете просто с нее загрузиться, без лишних телодвижений. А если она легаси и с uefi грузиться не может — ну не повезло, но можно сделать новую. До 2020-го можно успеть.

Вот у меня похожие проблемы. Не смог ни одного свежего образа Limux прописанного на флешку запустить в UEFI режиме.
uefi-mbr загрузка, вроде как, не стандартизирована, а большинство флешек как раз идет размечеными в mbr (как правило, от msdos7 из win98).
с носителями без разметки (с floppy-style разметкой) uefi справляется, поэтому посекторное копирование и работает…
а с размечиванием (не могу придумать отглагольное существительное от «разметить») носителя в gpt у пользователей явные проблемы. да и с последующей присвоением guid от esp тоже… кроме того, согласно разделе 12.3 «UEFI Specification» File System Format не есть fat, а нечто (описанное в данном разделе), основанное на fat…

а человеки не любят перемен…
а с размечиванием (не могу придумать отглагольное существительное от «разметить»)

«С разметкой» же. Установкой, не устанавливанием; отделкой, не отделыванием — и т.д.
uefi-mbr загрузка — описана как штатный вариант загрузки в стандарте UEFI (само собой в разделе legasy support)

И при копировании образа (например UBUNTU) на флешке появляется нормальный такой MBR с таблицей разделов, в которой прописан раздел EFS, с которого и продолжается загрузка.
Не знал, что Etcher умеет винду.
Использую WoeUSB (WinUSB) для создания загрузочных флешек с виндой из линукса.
Не умеет. Умеет только записывать образы посекторно.
Тут да, есть проблемы. Если весь хард в NTFS, то с него грузиться ничего и не будет — нужен обязательно раздел с FAT/FAT32/exFAT.
вроде как, dxe-драйвер для ntfs существует… так что все вопросы к производителю оборудования…
Постоянно наталкиваюсь на требование FAT/FAT32, но у меня прекрасно грузится с NTFS. Доп. драйверы для поддержки различных ФС не ставил. ЧЯДНТ? Кстати, у FAT32 ограничение на размер файла в 4 ГБ. Сборки all-in-one не влазят.
Просто в вашем uefi есть драйвер ntfs, вот и грузится.
А у вас точно нету раздела мегабайт на 100 со странным типом 0xef?
Не, там скорее драйвер в прошивке, ОЕМы его любят.
Проблема только в том, что добавление любых нетривиальных парсеров на С в прошивку (а парсер NTFS — нифига не тривиальный, там в спецификации рота чертей все ноги сломит) сильно ухудшает безопасность платформы, потому что творчески испорченная флешка может на такой системе обходить SecureBoot, пароль на Bios Setup и черт знает что еще потому, что ФС надо парсить раньше, чем получится проверить загрузчик, который на ней лежит.
FAT потому и потребовали для ESP, что его спецификация весьма несложная, и написать и отладить относительно нормальный драйвер для этой ФС на С все таки можно.
Брр, писал в своё время драйвера FAT, NTFS и ext3 на ассемблере. Блин, даже ext3 был проще и меньше. При этом FAT был полноценный, а прочие только read-only без всяких поддержек ссылок и прочей чепухи.

Из присутствующих, наверное, драйвер FAT каждый второй писал (вместе со своей ОС))

Надо было для железки option rom сделать, а гадский ntfs тупо отожрал более половины (при учете того, что фат сожрал от силы 7кб с всякими long names и fat-12/16/32) — в результате блин пришлось добавлять джампер вида «FAT+EXT/NTFS», было очень стыдно.

Не, NTFS я бы делать не рискнул (даже r/o).
Кстати, тут 99% программистов отсекаются — а сможете ли вы сделать драйвер FS (не важно, какой, которая сделана) не только r/o, но и r/w?

Ext3 было бы довольно трудно внедрить в самом начале, потому что на тот момент Intel плотно работал над спецификацией вместе с MS, и люди просто использовали то, что знали. Зато стремление Интел открыть код нормально вывело FAT из под угрозы патентного преследования, правда случилось это буквально пару лет назад, а до этого драйвер поставлялся в бинаре, под отдельной лицензией и в отдельном репозитории.
У FAT есть главное преимущество — он простой как пробка. Ну и покажите мне тостер с разъемом usb/sd-card который не умеет FAT =)
Точно нет. Видимо, NTFS вшит уже в EFI, как сказали выше
У меня материнка достаточно старая, у вас, наверняка, поддержка ntfs уже в самом uefi есть. Интереса ради — не пробовали с ext2/3/4 грузиться?
GPT потому-что надо, а не MBR.
на тех же atom'ах (и atom продаваемых как pentium и celeron) давно уже csm выпилен… особо «радуют» планшеты с ia32 uefi…
Не люблю таки лживые статейки. Полу-правда ведь как известно тождественна лжи. В статье не сказано самое главное-UEFI пропихивала Microsoft с целью борьбы с пиратским Windows, сообществу Linux это UEFI даром не нужно было. Про ключи не сказано ни слова. Всё преподносится как забота о потребителе.
Разумеется мой негатив относится не только к этому частному случаю. Часто приходится читать ерунду про пользу пальмового масла в сметане и прочую чушь.

А вот википедия (и не только) пишет — «Изначально EFI создавалась для первых систем Intel-HP Itanium в середине 1990-х годов». Кому верить?


сообществу Linux это UEFI даром не нужно было.

Сообщество Linux никого не волнует, уж извините.

Если Википедия для вас авторитет то читайте там же:
Критика

EFI критиковался за то, что он привёл к усложнению системы, не давая существенных преимуществ[20], и за отказ от альтернатив BIOS с полностью открытыми исходными текстами — OpenBIOS и coreboot[21].

В 2011 году пользователи и разработчики операционных систем на ядре Linux предупреждали, что внедрение технологии Secure Boot способом, требуемым Microsoft для устройств с Windows 8, существенно ограничит свободу пользователей этих устройств в выборе операционной системы или действиях с ней[22][23].
Сообщество Linux, подписало у MS два загрузчика (shim и PRELoader) их ключом (который есть почти во всех UEFI прошивках) и спокойно грузит все, что хочет в режиме SecureBoot.

А кроме того сообщество Linux разработало утилиты для управления ключами, которые (в большинстве случаев) позволяют на компе завести вообще свои собственные ключи для SecureBoot (ключи MS при этом логично стираются напрочь, чтобы уже никакая продукция от MS не смогла загрузиться на этом компе никогда)

Так что вы действительно можете не беспокоится о сообществе Linux :)
В группе TOP500 самых производительных компьютеров мира только Linux.
Без UNIX/Linux сегодня весь мир рухнет — остановятся все АЭС, 80% газовых ТЭЦ, полностью рухнут авиа- и морские перевозки, три четверти авто станут колом, Почти полностью выйдет из строя медтехника, холодильники перестанут морозить, а электродуховки — греть.…
Каким образом Linux связан с mission critical системами?
Обыкновенно. Все mission critical системы либо под юниксами реального времени, либо под линуксом реального времени. Если считать фондовые и бабосовые биржы за mission critical системы, то и они.
Прогноз метеоусловий — mission critical. Все крутые прогнозные модели считаются на кластерах под Линукс.
Куча софта, которым обсчитывают поведение mission critical систем как в процессе разработки, так и в процессе эксплуатации. Тот же ANSIS, например.

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


И да, мир не рухнет. Кроме линукса, есть и другие оси, внезапно, тот же Windows.

Можно подумать, что фотошоп и игры настолько важны, чтобы связываться с виндами. Тот же фотошоп неплохо и под маком работает. Ну а игры — в игры можно и на консолях играть. Сам я не играю (сейсчас), но когда-то баловался. Сейчас жаль время тратить на бессмысленные упражнения.

Вот это вы к чему сейчас со своим маком и консолями?

Вас дезинформировали, или намеренно ввели в заблуждение, и теперь вы это делаете самостоятельно. UEFI не имеет отношения к Secure Boot, и Microsoft не могла никак использовать UEFI для борьбы с пиратским Windows. Secure Boot не создан для ограничения пользователя. Если вам нужно добавить ключи или удалить существующие, вы легко это сделаете на почти любой материнской плате, кроме единичных исключений.
Рекомендую статью «Укрощаем UEFI Secure Boot» от coderush
Никто в здравом уме не будет использовать legacy boot на сегодняшний день.
Видимо, я из нездравомыслящих. Точнее лень просто что-то менять. Grub2 вполне устраивает и дает меню выбора операционных систем. Пока больше не надо. Даже младший ребенок в 3 года нормально им пользуется)
Grub2 поддерживает EFI-режим. Я им и пользуюсь.
Так это его переустанавливать надо. У меня непрерывная цепочка обновлений с Kubuntu 11.10 тянется. Последние были Kubuntu 16.04 -> KDE Neon. Может со следующим LTS подумаю…
Никто в здравом уме не будет использовать legacy boot на сегодняшний день.

Пользователи Windows 7?
У них там, к сожалению, нет поддержки GOP, потому что в Microsoft принципиально решили, что этот протокол поддерживать не будут. В результате при отключенном CSM Windows 7 загружается «вслепую», если загружается вообще.
Инструментарий вокруг неё и старые компьютеры могут не поддерживать при сомнительных плюсах.

Например, загрузка по сети поддерживается только начиная с Windows 8 (WinPE 4.0), а как заставить грузиться через роутер я вообще не нашел.
Давайте я вам дам Intel NUC, выключу на нем CSM, а вы мне оттуда семёрку запустите.
А что подразумевает CSM? Потому что семерка нормально грузится при настройке «UEFI only» (чипсет Z97) после пары махинаций с загрузочным образом (перетащить-переименовать файлы efi-загрузчика) — это все еще где-то CSM работает? Загрузка ломается только если еще включить пункт с мутным названием «Enable Windows 8/8.1/10 features», ну или SecureBoot/FastBoot — но с этими понятно.
Вот этот пункт с мутным названием, скорее всего, и отключает CSM полностью.
Что подразумевает: CSM — это реализация старого интерфейса BIOS Interrupt Call, в том числе прерывания 10h, которое используется для работы с видеоадаптерами.
При отключенном CSM никакие обработчики прерываний BIOS не инициализируются (потому что они 16-битные, и работа с ними на современной 64-битной системе — очень сильное колдунство), в том числе не инициализируется VideoBIOS и не выделяется legacy VGA framebuffer, расположенный по физическим адресам A0000-BFFFF, поэтому все, что его раньше использовало для вывода на экран, теперь ничего никуда не выводит.
Нормальные EFI-совместимые загрузчики могли бы просто переключиться на использование EFI-протокола Graphic Output Protocol (GOP) и выводить свои веселые картинки при помощи GOP->Blt(), но в MS решили, что для Windows 7 это все реализовано не будет по каким-то своим причинам, возможно объективным, а возможно и сугубо политическим.
Выше ответил, изображения не будет в лучшем случае до загрузки видеодрайвера, в худшем — все зависнет намертво еще на загрузке. Отключите Legacy Boot целиком и посмотрите, как Windows 7 отреагирует на это, даже будучи запускаемой через bootmgrfw.efi

Ну на ноутбуке недавно знакомому музыканту ставил («не хочу десятку, хочу семёрку»), единственная проблема была в кривой реализации UEFI на eMachines — c флешки так и не удалось загрузиться, понадобился внешний CD.
Там опять же жизненно важно было сохранить GPT и раздел восстановления на нём.

Это потому, что по умолчанию почти на всех нынешних ПК (за исключением совсем новых топовых систем Dell, HP, Lenovo и MS, и продукции Apple последних трех примерно лет) CSM включен по умолчанию и его никто не выключает, потому что для этого надо в настройки лезть.
Самое смешное, когда CSM оказывается включен по умолчанию на системах с процессорами Intel Kaby Lake и новее, для которых для ОС старше Windows 10 и драйверов то толком нет, и не осталось никаких уже причин иметь включенный CSM, ведь видеокарту внешнюю туда можно воткнуть только в порт USB-C/TB3, но нет, инерция мышления IBV (в данном случае — AMI) сильна как никогда, а Intel пофиг — ОС загружается, что еще надо, а то, что у вас умолчания ничего общего с безопасностью не имеют — значит она вам и не нужна.

Я как раз пытаюсь объяснить, что там по умолчанию CSM был выключен, включить его было можно, но это означало похерить всю структуру диска и гарантию в том числе (на самом деле, конечно, нет, но творческие люди они мнительные такие).


То, что CSM включен по умолчанию на совсем новых системах, для меня новость. «Они там все совсем сумасшедшие, что ли?»

Вы путаете CSM и легаси-загрузку. CSM — это вообще наличие интерфейса BIOS Interrupt Call, 16-битных обработчиков прерываний, BDA/EBDA и всего такого, а легаси-загрузка — это использование вот этого всего для загрузки 16-битного кода из MBR.
Почти все современные ПК по умолчанию используют UEFI-загрузку, но CSM при этом не отключают, и в DOS с флешки на них все еще можно загрузиться без необходимости идти в BIOS Setup и включать его специально.

Нет, они там все поддерживают дух старой школы. Пользователь ожидает от х86-совместимой системы поддержки всех наколенных за 30 лет ее развития костылей, каких-нибудь сумашедших ресетов через порт клавиатуры (который эмулируется теперь при помощи бубна и такой то матери) и управления адресной линией А20. Без этого всего — это уже не IBM PC, и некоторым категориям пользователей от этого очень грустно. Вон выше даже Meklon продолжает использовать CSM и легаси-загрузку, т.к. она «просто работает», а то что для ее работы разработчики прошивок каждые полгода через ад проходят — этого никто не видит.

Если я правильно понимаю, при принудительном выборе UEFI Boot никакого CSM мы не получаем (чёрт, даже винда сообщение "press any key to boot from cd/dvd" выдаёт в графическом режиме. То есть тут нельзя «немножко UEFI, немножко CSM»/

Не-не-не, Девид Блейн, это зависит от конкретной прошивки. У AMI, к примеру, тип загрузки управляется отдельно, а состояние CSM — отдельно, причем некоторые экземпляры даже не показывают строчку с CSM On/Off пока пользователь принудительно не отключит вручную все, для чего CSM может быть нужен.
«Нет, я не хочу легаси-загрузку, не хочу ВидеоБИОСы, не хочу легаси рейд, не хочу легаси загрузку по сети, да отключите это ведро уже, собаки злые!»

Какой ужос.
Я пока что с необходимостью переключения только на ноутбуках сталкивался, а у них пока всё по-спартански (и без этой графической мерзости, кстати, которую почему-то приписывают UEFI, хотя она у меня на 486 AMI и Compaq+Pentium ещё была).

Вот так, примерно, только еще сделать опцию CSM серой пока вручную все не отключишь.

Другие вендоры иногда обзывают настройку CSM выбором ОС, т.е. Win7/other — включен, Win8+ — выключен, например.
Самое мерзкое, когда железка имеет Legacy+UEFI OpRom, а умный вендор платы к чертовой матери убирает возможность отключить Legacy OpRom first.

Ну и очередной пинок в сторону AMI — гады, если у меня нет UEFI драйвера на вставленную мной сетевую карту не надо мне орать, что там нету uefi compatible драйвера на 7734:1505 девайс и что так нельзя и фиг мне а не UEFI Only, научитесь наконец игнорировать отсутствие драйверов для некритичных устройств.
загрузка с флешек периодически (в моей практике — 5-10% случаев) приподносит сюрприз конфликта флешки и usb-контроллера ПК — ну вот не видит флешку машина до загрузки системы. та же флешка с тем же образом на соседней машине грузится нормально; другая флешка на проблемной машине — грузится нормально, а вот связка «именно эта модель флешки и именно эта модель материнки» может не работать ни в какую. точно не оно было?
btw низкоуровневую диагностику проблемы не делал — проще и быстрее всегда оказывалось взять другую флешку и выполнить работу.
В загрузчике Windows 7 пару раз дергается Int10h. А далее в зависимости от фазы луны и прочего мы либо имеем черный экран до запуска самой винды, либо мертвый завес.
Это вы дезинформатор. Вот первая же ссылка в гугле
www.securitylab.ru/blog/personal/Ennormoz/19457.php
Все вроде бы не плохо, НО Метью Гарет из компании RedHat пообщался с производителями железа и раскрыл кое какие дели этого общения.
1)Win-8 сертификация требует от от производителей поставлять оборудование со включенной Secure Boot.
2)Win-8 сертификация не требует от производителя предусматривать возможность отключения Secure Boot.
3)Win-8 сертификация не требует наличия в системе ключей, отличных от ключей MS.
и MS будет поощрять поставщиков, если они будут соблюдать требования Win-8 Secure Boot по-минимуму (то есть, ключи только от MS без возможности отключить).
Так что смотрите что берете своими глазками, чтоб потом не было на кого пенять кроме себя!
Зачем вы это делаете интересно? У вас есть акции Микрософт?
Все верно, но неотключаемый Secure Boot есть только на устройствах, выпускаемых Microsoft. Может, еще на каких-то, но это — единичные устройства.
Так что смотрите что берете своими глазками, чтоб потом не было на кого пенять кроме себя!
Обязательно. Я всегда смотрю, что покупаю, и другим советую.
Зачем вы это делаете интересно?
Я хочу использовать и UEFI, и Secure Boot, и Trusted Boot, в Linux.
Ваши слова?
«Secure Boot не создан для ограничения пользователя. Если вам нужно добавить ключи или удалить существующие, вы легко это сделаете на почти любой материнской плате, кроме единичных исключений.»
Не видите тут никаких противоречий?
А для чего вам Secure Boot можете пояснить аргументированно? Я вот всегда знаю какой ISO у меня на флэшке и не вижу никакой необходимости в цифровых подписях. По-моему Secure Boot нужен только если вы на флэшках продаёте загружаемое ПО. А если я сам качаю ISO с официального сайта и копирую его на флэшку то зачем мне Secure Boot?
Давайте я поясню, зачем нужен SecureBoot — он позволяет (при правильной реализации) гарантировать, что прошивка передаст управление только подписанному доверенным сертификатом коду, что в свою очередь гарантирует, что а) без вашего ведома ничего лишнего на вашей системе не запустится и б) если загрузчик ОС каким-то образом будет изменен — его подпись нарушится, система не загрузится, и вы неминуемо это заметите.

Тот факт, что по умолчанию UEFI-совместимые прошивки доверяют сертификатам Microsoft CA и UEFI CA — это сделано не для того, чтобы ограничить свободу простого пользователя, а для того, чтобы можно было включить SecureBoot на большинстве устройств и пользователь не заметил бы этого. Да, приходится доверять MS по умолчанию, но когда на 95% процентах продаваемых систем используется Windows — это вполне резонно.

Если вы не хотите доверять MS — ваше право, на абсолютном большинстве плат (точнее, вообще на всех, кроме телефонов с Windows Mobile и планшетов с Windows RT, которые не являются general-purpose hardware) SecureBoot можно перевести в режим Setup, добавить свои сертификаты список доверенных и удалить предустановленные по умолчанию сертификаты MS и производителя платы.

В конце концов, если вам действительно не нужна безопасная загрузка, и вы согласны следить за целостностью загрузчика самостоятельно, SecureBoot можно отключить на любой системе, которая поддерживает режим Setup, просто удалив Platform Key, в таком режиме система загрузит все, что угодно.

Теперь про то, зачем следить за целостностью загрузчика: дело в том, что security history любых современных операционных систем, написанных на С — это сплошная череда локальных повышений привилегий и удаленных исполнений кода, и каждая пара RCE+LPE дает злоумышленнику доступ к вашему загрузчику, который он затем может модифицировать и закрепиться в системе так, что практически никакими средствами уровня ОС получившееся заражение буткитом невозможно ни обнаружить, ни вылечить. История загрузочных вирусов, шифровальщиков и прочих остальных — давняя и славная, а SecureBoot решает проблему с ними раз и насовсем.
Да я знаю что лучшая реклама основана на страхе. Ночью микробы выползают из унитаза и расползаются по всему дому. Купите очиститель для унитаза фирмы Х и вы сохраните жизнь и здоровье своих близких.
Все вэб-сервера с которыми я имел дело были с ОС совсем не той что вы упомянули.
Со времён 5-ти дюймовых дискет я про boot-вирусы не слышал и не сталкивался с ними. Вот статейка интересная:
xakep.ru/2013/11/05/full-bootkit-history
вкратце суть в том что UEFI, как это иногда и бывает, может принести больше вреда чем пользы, ибо невзламываемых и безглючных систем не существует.

Вы слишком сильно распространяете свой собственный опыт на всю индустрию, мне кажется. «Не нужно мне — значит не нужно никому». Если вы буткитов не видели — это не значит, что их не бывает, а про шифровальщики вроде ExPetr/NotPetya, которые и возможны то исключительно потому, что большинство машин продолжает с удовольствием загружать все подряд из MBR, слышали почти все.
Я тоже слышал. Но работая в Убунте не воспринимаю угрозу всерьёз) Я вообще не против EUFI, SecureBoot и т.д. если это поможет виндузятникам защитить свои компьютеры. Просто не хотелось бы что бы Микрософт, известная своей агрессивной маркетинговой политикой, воспользовалась этими фичами чтобы пропихивать своё изделие и создавала проблемы таким как я. Я себе и своим знакомым покупаю компьютеры без ОС в магазинах, и иногда это вызывает трудности. А если ещё и из-за SecureBoot компьютер откажется устанавливать Убунту я буду вообще в ярости.
2 Гб не BIOSа ограничение, а таблицы разделов в MBR.
Обязательным использованием SecureBoot пугали MS (давно), но если вам не лень почитать стандарты UEFI то там ни разу не сказано, что SecureBoot нельзя отключать.
Там конечно предусмотрен режим (методика выхода из которого — на совести вендора) в котором отключить SecureBoot нельзя. Однако это уже вопрос вендора: в каком режиме находится UEFI при передаче оборудования клиенту, и предоставляются ли клиенту инструменты для выхода из защищенного режима.
Это верно, но обещают стандарт UEFI Class 3+ с неотключаемым SecureBoot

То есть да здравствует возня с ключами и прочими подписями?

Ставите связку shim (подписан ключом MS) и GRUB (подписан ключом Canonical, который знает shim), и загружайте в режиме SecureBoot все что только вашей душе угодно.

Да, тот еще велосипед получается… но зато работает.
В режиме Deployed — да: SecureBoot не отключить никак и ключи не подменить, но даже сервисмену может потребоваться вывести UEFI из режима Deployed.

Ну а если есть возможность прописать в PK/KEK/db свои ключи (т.е. в режим Setup перейти) то, организовать загрузку в режиме SecureBoot можно чего угодно.

Конечно можно запретить загрузку в setup режиме (что логично и вроде бы даже требуется в последних стандартах), а для User режима явно требовать включенного SecureBoot, но остается еще Audit режим (в котором кстати по стандарту SecureBoot явно выключен).

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

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

BIOS-а уже давно нет.
Есть UEFI с модулем CSM (который эмулирует загрузку в режиме BIOS).
UEFI Class 2, как ни назови.
Вы про гиков с Coreboot забыли. Оно вам и uefi может стать (tiano core udk), и legacy bios (seabios) и вообще что угодно выдать после настройки железа (хотите ядро линукса в flashrom засунуть — можно, хотите выбирать из десятка ядер на харде — filo в помощь, хотите прям после старта без операционки улететь на марспинать станок с ЧПУ — пожалуйста, вам поможет libpayload). Хотя на x86 этот проект уже можно хоронить, интел исходниками никогда не делилась и давала FSP гуглу, amd от своего «мы дгужим с опенсоцсом и даём вам нашу agesa в исходниках» с появлением PSP открестилась и послала лесом выдав binary pi.

Сколько плат гики с Coreboot поддерживают? 0,01%?

Даже меньше. Из того, что сейчас можно купить более-менее новыми — штук 10-15 может и наберется, и то, это будут отладочные платы от AMD и всякий embedded.

На которые есть более-менее подробная документация. Предсказуемо.

Эта документация как минимум идёт под NDA. И в оной относительно того, как инициализировать память особо не говорится.
Потому что память у AMD теперь тренирует PSP своей подписанной и зашифрованной прошивкой, а документация рассказывает, как ему mailbox заполнить и где находится бит, на котором надо ждать, пока тренировка закончится.
Пацаны там, конечно, вообще ребята, но идея переписать PEI потому, что мы можем — она очень плохо сочетается с современными реалиями. Ни один производитель нормальных х86 процессоров код иницилизации своего оборудования просто так не отдаст (я не знаю, чего они там все боятся, но вот так), а реверсить его можно до ишачьей пасхи, и к моменту, когда тренировка памяти наконец-то заработает, платформа успеет 10 раз устареть.
Идея заменить фазу DXE на Линукс — она в принципе не плохая, особенно для ребят вроде Гугла (проект NERF), которые в Линукс уже умеют, а в DXE — еще не сильно, но на таких системах кроме линукса в итоге ничего толком и не запустишь, а если снова начинать реализовывать SMBIOS, ACPI, SMM и UEFI — есть неплохой шанс, что снова получится DXE, только теперь уже местного разлива. Если их там NIH не разбил в самое сердце — пусть лучше TianoCore пилят, на мой взгляд.
Собственно некоторые хостеры не гнушается использованием coreboot-а. В прошлом году online.net пиарились, что они очередную ультра-дешевую линейку серверов запилили на авотонах. Взял попробовать, глянул в dmesg, увидел строчку
DMI: NOT SPECIFIED NOT SPECIFIED /01T6CV, BIOS ADI_SILVERSHADOW-01.00.00.05-nodebug 02/01/2017

далее посмотрел и увидел знакомые
ACPI: RSDP 0x00000000000F5E50 000024 (v02 CORE )
ACPI: XSDT 0x000000007FBE4EE0 000054 (v01 CORE COREBOOT 00000000 CORE 00000000)
и типичные для реализации
ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 12 14 15) *0
ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 11 12 14 15) *0
Причём, если верить lshw, то тут без Dell не обошлось
Если они его могут завести так, чтобы он у них работал и жрать не просил — я двумя руками за, пусть расцветают сто цветов, и вот это все.
Просто я когда-то давно уже участвовал краем уха в запуске коребута на нескольких платах congatec (даже в комментариях про это уже писал, ЕМНИП), и могу сказать, что чуть что не так — и ты один в этом мире, иди в IRC и надейся, что тебе там помогут, а не пошлют заткнуться и хакать. Пока за коребутом не встанет большая корпорация и не начнет продавать для него поддержку и нанимать разработчиков на зарплату — из 0.01% затея не вылезет. А т.к. даже Гугл, активно использовавший в прошлом коребут на хромобуках, уже медленно но верно съезжает на вендорский PEI + свой рантайм на go, то дальше этот процент будет, скорее всего, только уменьшатся, пока отличный, в общем то, проект не заглохнет совсем.
Собственно я от этого сам был слегка с мордой офигевшего кота. И оно у них прекрасно работает, судя по тому, что сервера вечно расхватывают
Подумал ещё немного — а что мешает в роли DXE запустить Xen/KVM/QEMU и уже под виртуализацией запустить всяких hp-ux/macos/windows? С модой на «давайте засунем это в Cloud» — очень даже себе хорошее решение.
В принципе — ничего не мешает, только тяжело это все. Можно запустить гипервизор вместо загрузчика и дальше там уже рулить как угодно, не трогая саму прошивку — это и отлаживать проще, и результат тот же практически, если на всякие вещи вроде редиректа SMI из ВМ наружу и совместного использования NVRAM не думать пока.
Я не про гиков. Я про то, что сейчас во всех (почти) покупных компах и ноутах «бытового» сектора рынка. Само собой есть куча всего специфичных решений и там много всякой своей специфики. Но если вы пойдёте сейчас в обычный магазин и купите там комп/ноут. То никакого bios-а (в стиле pc at) вы там уже не найдёте.
А какие мысли на этот счет у AMD, никто не знает?
Теже самые. И мысли в основном не у Intel&AMD, а у IBV, которым этот CSM надоел порядком.
Кроме того, неизменность системы на протяжении этих лет привели к проявившимся аппаратным ограничениям (16-битный режим процессора, максимум 1 Мб адресованной памяти и т.д.), проблемам с производительностью, безопасностью и другим недоразумениям, которые должны были быть преодолены еще в 90-х, но передаются по наследству даже сейчас. И не только передаются, но и продолжают множиться с развитием техники — так, скажем, вылезло ограничение на размер загрузочных дисков в 2 Тб.

Это всё дезинформация. И непонятно, почему она в блоге такой компании. Никаких препятствий к использованию 32-бит режима в биосе нет. Более того, уже около 20 лет как назад имеется стандарт на 32-битную версию VESA BIOS ("продвинутый" биос-драйвер видеокарты) (она даже успела устареть с тех пор), для использования из защищённого режима операционной системой. Никаких препятствий для адресации более 1Мб в 16-бит режиме тоже давно нет (драйвер himem.sys делал это ещё на 16-битном 80286 проце, можно было делать двумя способами, на 32-битном 80386 добавился ещё один, который я видел в коде одного биоса из конца 90-х).
Ограничение на размер дисков тоже не в тему. Можно только сказать о невозможности поставить раздел (включая загрузочный) дальше 2ТБ от начала диска на MBR. А раньше, кстати, нельзя было дальше 500МБ, но биос после преодоления этого препятствия никто переименовывать не стал, и даже MBR не переименовали.
Указанная в цитате "неизменность" на самом деле касается только интерфейсов, а внутреннее устройство разных биосов естественно менялось и до того, как некто начал пиарить слово UEFI.

Все конечно хорошо, но только вот код в MBR при своем запуске требует те самые 16 бит, реальный режим адресации, 1 Мб адресного пространства (с маппингом IO портов на верхние адреса), и прочие прелести IBM AT.

Биос то мог быть 32-х-битным и как угодно измененным от того что было вначале, но вот загрузка ОС производилась в 16-и битном реальном режиме CPU… хотя почему производилась, оно и по сей день так на многих компьютерах происходит…
Я может чего-то не понимаю, но по-моему после ресета процессор и должен находиться в реальном режиме. В защищённый режим его должна переводить ОС. Разве не так?
Так было, только очень-очень давно. Нынешние прошивки переходят в 32-битный реальный режим с плоской памятью практически сразу с ресет-вектора, а в 64-битный — либо в начале фазы DXE, либо перед OS resume vector, то просто потому, что в PEI очень своеобразная вычислительная среда, и там большую часть времени приходится экономить место в L2 cache, поэтому 32-битный режим там все еще используется.
В последнее время (тоесть со времён Intel Pentium 3), основная часть BIOSа живет в Unreal/Flat Protected режиме, с доступными 4Гб памяти. 16 бит в чистом виде появляются в момент Int18/Int19. С момента появления строчек вида Boot from: USB HDD без этого жить вообще стало сложно. Ну а если рассмотреть последние потуги legacy BIOS — (а это 945/965 и 3х/4х серии чипсетов), то там после включения CAR сразу идет прыжок в flat mode с 4гб, далее по исполнению кода раза четыре оно реально выходит в чистый нативный 16битный режим, последний раз перед вызовом загрузчика ОС.
Как разработчик прошивок (в прошлом) и инженер по их безопасности (в настоящем) я горячо поддерживаю Intel в желании выкинуть наконец CSM, только вот проблема в том, что просто так выкинуть 30 лет обратной совместимости и при этом никого не обидеть — решительно невозможно.
Большая часть промышленных систем х86 как загружалась дедовским 16-битным загрузчиком, так и продолжит загружаться, и менять ради Intel какой-нибудь ткацкий станок Bosch за миллион долларов никто не будет, поэтому производители для Embedded и Industrial вроде Kontron, congatec, Advantec, DFI и т.п. будут поддерживать CSM до последнего патрона, причем такой home-grown CSM будет, скорее всего, еще более кривым, дырявым и глючным, чем то, что Intel поставляет нам сейчас.
С другой стороны, Apple отказались от CSM уже довольно давно, и т.к. на их машинах редко запускали DOS и прочее легаси времен царя Гороха, этого почти никто не заметил. Для большей части нынешних пользователей отказ от CSM пройдет совершенно незаметно — они DOS и не запускали никогда, а в каком режиме процессор стартует и какой интерфейс использует для взаимодействия с прошивкой — 99.9% пользователей решительно пофиг, лишь бы ОС загружалась.
Ну я для извращенств пару раз собирал SeaBIOS в роли CSM, и оно нормально жило и работало. Беда не в дырах и уязвимостях Legacy, а в дырах и уязвимостях того, что Intel/AMD отдаёт нам в виде черного ящика, с последними новостями про ME/PSP/TXT и прочие ругательства я уже обожрался попкорна. Ну и спасибо интелу за то, что они один из своих matryoshka processors выдали в общее пользование на эдиссоне, помогло.
Оно там все кривое просто потому, что сам интерфейс BIOS IC — кривой как бараний рог, даже безотносительно безопасности.

Про матрешка-процессоры — то ли еще будет, про Integrated Sensor Hub как-то все молчат в тряпку, хотя там точно такое же ядро Quark, как и то, на котором МЕ исполняется, и его тоже можно использовать для каких-то своих интересных целей, если влом ставить свой копеечный АРМ вместо EC.
Ну про безопасность — после \0 \0 «You are logged in» на ARC и RCE неподписанного кода на этом самом кварке мне что-то не хочется это видеть ещё пару-тройку лет, пока детские болячки не починят.
Выбора у нас толком нет, потому что приличных RISC-V в кремнии в соседний магазин еще не завезли, а у остальных там те же примерно яйца, вид сбоку. Я, вообще говоря, очень рад, что эти проблемы с МЕ вскрылись сейчас, а не еще через 10 лет, потому что их так намного быстрее починят (или сделают вид, что починили). Пока прошивку никто не атаковал — сидели 20 лет с голым задом и дальше бы сидели, а теперь вон за три года сколько всего… Очень жду подобного развития событий и с МЕ и прочими периферийными контролерами, которые никогда никто не трогал, и не в курсе, насколько там все у всех сломано.
Ну можно продать почкувзять кредит и оформить предзаказ на TALOS II. Правда это подойдет только если слова Microsoft и Windows будут вычеркнуты из списка желаний.
Фиг с ним, в принципе, его можно на виртуальной машине запустить, если очень хотеть, только вот непонятно, есть ли для OpenPOWER хоть какие-нибудь приличные ВМ даже за деньги, на которых можно было бы запустить (пусть даже с бубном) всю большую тройку. Ну и там может получиться примерно как с OpenBSD — безопасность Джо обеспечивается в основном его неуловимостью, даже без учета того, что на стоимость рабочей станции с Линуксом на борту можно купить неплохой автомобиль или месяц отдыхать на далеких островах.
Увы, нет там ничего нормального. Даже костыль формата wine маловозможен. А с безопасностью — недавно какое-то умное существо сумело шеллшоком пролезть на мою игрушку, вот только игрушка оказалась ультраспарком и я очень долго ржал над попытками запустить i686 ELF binary…
А вот интересно как будут поддерживаться WinXP и Win98?
Никак, запускайте их на виртуальных машинах, ибо на современных системах для них и драйверов то уже давно нет.
Sign up to leave a comment.