Sergey
Это нужно ему, чтобы, опять повторюсь, пользователю было удобно делать дуал Бут с Виндой
Выше уже не только я написал про то, что systemd-boot умеет находить и впускать приложения на всех разделах ESP. Ему без разницы - Windows это, игра или Linux. )
Artem
В материнке есть бут меню, так что же отказываться, добавим ещё одно с кодом 20 летней давности, можно и 3 влепить, чтобы наверняка
Для меня не проблема использовать Бут меню. Но вот очень многим было бы удобнее видеть менюшку с выбором системы при загрузке
Sergey
а если само ядро находится на btrfs))
А зачем? Логично совместить ESP с /boot, что некоторые дистрибутивы и делают. Ядро лежит на FAT32 и само читает Btrfs/ZFS/ХренФС.
Влад
Вот если использовать systemd-boot + Secure Boot, то можно будет подписать только efi самого systemd-boot. Получает, что ядро или initrd все равно можно поменять, тогда какой смысл в Secure Boot? В Grub, вроде бы, возможно настроить проверку подписи initrd и ядра
Artem
А зачем? Логично совместить ESP с /boot, что некоторые дистрибутивы и делают. Ядро лежит на FAT32 и само читает Btrfs/ZFS/ХренФС.
Проблема в том, что ты не примонтируешь Виндовый раздел, чей размер 100Мб, к буту. Ты либо должен расширить этот раздел, либо должен создать новый и перегнать файлы efi винды с одного раздела на другой, что может создать головняк. И ради чего?
Artem
Ефи раздел винды не всегда может находится в конце или начале диска, что могло бы упростить расширение загрузочного раздела
Artem
Ефи раздел винды не всегда может находится в конце или начале диска, что могло бы упростить расширение загрузочного раздела
Плюс, насколько я помню, нельзя встроенными утилитами винды расширить эфи раздел (тут могу ошибаться)
Artem
Это всё создаёт лишний геморрой для тех, кто хочет попробовать Линукс.
Sergey
Проблема в том, что ты не примонтируешь Виндовый раздел, чей размер 100Мб, к буту. Ты либо должен расширить этот раздел, либо должен создать новый и перегнать файлы efi винды с одного раздела на другой, что может создать головняк. И ради чего?
Зачем его монтировать? Все проще: есть Windows со своей организацией диска и своим ESP. Есть Linux, со своим ESP, корень которого совмещён с /boot. UEFI грузит systemd-boot с линуксового ESP. systemd-boot находит виндовый ESP. Все прекрасно работает на нескольких разных системах. При желании - можно отключить линуксовый диск и снова грузиться лишь с виндового ESP.
Ugleplastic
Хм. А сдбут умеет с других разделов грузить efi?
Да. Сдбут может находиться на виндовом ефи, а ядра на другом фат32 разделе
Artem
Надо глянуть, как это на Арче сделать. Интересно стало
Sergey
Вот если использовать systemd-boot + Secure Boot, то можно будет подписать только efi самого systemd-boot. Получает, что ядро или initrd все равно можно поменять, тогда какой смысл в Secure Boot? В Grub, вроде бы, возможно настроить проверку подписи initrd и ядра
Стопе. Почему? В UEFI API есть вызов для запуска дочерних процессов. sd-boot лишь запускает другие EFI-приложения, а подпись проверяет в любом случае прошивка в соответствии со своими сертификатами.
Greerein
Это всё создаёт лишний геморрой для тех, кто хочет попробовать Линукс.
Нельзя забыват и то, что бывает, что Windows с неизвесного перепугу иногда при обновлении затирает весь раздел efi.
Sergey
пресс Ф таким дистрибутивам. я бы так не делал, максимум на ext4.
Почему? Открой для себя Boot Loader Specification от Freedesktop.
Anonymous
Да. Сдбут может находиться на виндовом ефи, а ядра на другом фат32 разделе
На арч вики говорят, что все должно быть на 1 разделе
Greerein
Нехватало с Грубом ещё потерять и ядро с конфигурациями и т.д.
Artem
Нельзя забыват и то, что бывает, что Windows с неизвесного перепугу иногда при обновлении затирает весь раздел efi.
В таком случае, отдельный раздел может иметь преимущества. Если я найду, как это делается, то признаю, что смысла в Грабе не так много :)
Ugleplastic
На арч вики говорят, что все должно быть на 1 разделе
https://wiki.archlinux.org/index.php/systemd-boot#Installation_using_XBOOTLDR
Artem
На арч вики говорят, что все должно быть на 1 разделе
Он бинари с других разделов не читает. Я тоже щас на арчвики ищу
Влад
Да, разумеется. Она проверяет подписи любого запускаемого приложения.
А я голову сломал, как защитить initrd, не сливая его в один efi с ядром)
Artem
Про ефи файлы пока что ничего не нашёл
Greerein
Почему? Открой для себя Boot Loader Specification от Freedesktop.
Спасибо, я сейчас понял что мне и Груба хватает.
Greerein
Да и с rEFInd тоже живется норм.
Artem
Ща почитаем
Sergey
А я голову сломал, как защитить initrd, не сливая его в один efi с ядром)
Постой, initrd не запускается. Это не EFI-приложение. Нет смысла его подписывать. Его содержимое можно проверять, но это уже задача системы безопасности ОС.
Greerein
Refind красивый
И ширококо кастомизируемый.
Sergey
Про ефи файлы пока что ничего не нашёл
Это обычные PE-приложения Windows. )
Artem
https://wiki.archlinux.org/index.php/systemd-boot#Installation_using_XBOOTLDR
Ага, я правильно понимаю, что нужно сделать отдельные разделы под /boot для ядер и /boot/efi для всех efi файлов, в том числе и виндовых?
Влад
Но не initrd же
Влад
Он раньше ядра грузится
Ugleplastic
Ага, я правильно понимаю, что нужно сделать отдельные разделы под /boot для ядер и /boot/efi для всех efi файлов, в том числе и виндовых?
Efi раздел создавать не нужно, если уже существует. Отдельный бут да, при нехватке места на ефи разделе
Artem
Нет. Достаточно иметь один FAT-раздел с флагом ESP, который монтируется как /boot.
Так, а Виндовый просто оставить? Так как в таком случае сдбут увидит Виндовый efi, если он на другом разделе?
Sergey
Но не initrd же
Он не грузится. Это просто архив. Это не задача загрузчика проверять целостность подсистем ядра.
Artem
Efi раздел создавать не нужно, если уже существует. Отдельный бут да, при нехватке места на ефи разделе
Блин, выразился немного неправильно. Можно же Виндовый оставить, туда положить efi для Линукса, а /boot сделать отдельный
Sergey
Так, а Виндовый просто оставить? Так как в таком случае сдбут увидит Виндовый efi, если он на другом разделе?
Виндовый вообще не трожь. Он как был нетронутым после установки винды, таким и останется.
Artem
А как грузить с Виндого раздела efi?
Sergey
Так, а Виндовый просто оставить? Так как в таком случае сдбут увидит Виндовый efi, если он на другом разделе?
sd-boot найдет все рпзделын с флагом ESP и заглянет в них в соответствии с спецификацией UEFI.
Влад
Он не грузится. Это просто архив. Это не задача загрузчика проверять целостность подсистем ядра.
Это архив, который содержит образ initramfs, который загружется в память перед ядром. То есть initrd - часть цепи загрузкки, а проверять ее целостность стоило бы
Artem
Может надо команды какие-то прописать?
Влад
Это архив, который содержит образ initramfs, который загружется в память перед ядром. То есть initrd - часть цепи загрузкки, а проверять ее целостность стоило бы
Даже если подписать secure-boot, то все еще ни что не мешает тебе подменить initrd и встроить свой код в цепь загрузки
Artem
Может надо команды какие-то прописать?
os-prober поставить, например, и его запустить
Artem
Что-то такое надо делать?
Влад
Может, это и не задача sd-boot проверять такое, но sd-boot и не совсем загрузчик
Sergey
Может надо команды какие-то прописать?
Ну руками можешь сам конфиги на каждую ОС создать с путями до EFI-приложений навроде загрузчика Windows.
Sergey
Это архив, который содержит образ initramfs, который загружется в память перед ядром. То есть initrd - часть цепи загрузкки, а проверять ее целостность стоило бы
Не совсем. В UEFI/SecureBoot нет ничего про Linux Boot protocol. initramfs никаким боком туда не втыкается. SecureBoot работает лишь с приложениями EFI и X.509.
Влад
То есть аргумент в пользу GRUB, что с ним полностью настроить Secure Boot проще
Sergey
Ну и ладно, я к тому, что в sd-boot нет никакой возможность проверять initrd, а в GRUB есть
Граб, возможно, и имеет какие-то костыли, позволяющие проверять подписи теми же сертификатами, что и используются в SecureBoot. Но это именно костыль, который не имеет прямого отношения ни к загрузчику, ни к SecureBoot.
Влад
Пусть это даже не связано с Secure Boot, в GRUB такой функционал есть, в sd-boot - нет. Тут же был диалог про sd-boot vs GRUB, вроде?
Artem
Виндовый вообще не трожь. Он как был нетронутым после установки винды, таким и останется.
Стоп. По той ссылке говорится, что xbootdlr позволяет грузить ядра с раздела /boot, если efi файл находятся на отдельном разделе /boot/efi. Каким образом это помогает не трогать Виндовый раздел esp??
Sergey
Пусть это даже не связано с Secure Boot, в GRUB такой функционал есть, в sd-boot - нет. Тут же был диалог про sd-boot vs GRUB, вроде?
Тут был диалог про архитектурную сложность и ненужность GRUB в современных системах. С точки зрения идеи SecureBoot, Shim и GRUB - это вообще, скорее, костыль и дыра в безопасности.
Artem
Я нигде не вижу упоминания возможности грузить efi файлы с других разделов
Artem
Или я не так понимаю ставил фразы "не трогать Виндовый раздел"
Artem
У нас же вроде древовидное разделение на разделы
Artem
Как я смогу использовать grub, если у меня в /boot/efi уже сдбут стоит? Просто примонтировать его туда не получится
Sergey
Или я не так понимаю ставил фразы "не трогать Виндовый раздел"
Забудь, что он есть. Установил Windows на один накопитель. Установил Linux на другой. В меню UEFI запускаешь sd-boot (или любое другое приложение) с линуксового ESP.
Artem
То есть мы опять вернулись к тому, что чтобы загрузить меню, нужно применить boot menu Биоса?
Artem
Мы не можем друг друга понять
Artem
Либо я не могу тебя понять
Sergey
Как я смогу использовать grub, если у меня в /boot/efi уже сдбут стоит? Просто примонтировать его туда не получится
"стоит" - это просто лежит файл программы, с произвольным именем, в любом каталоге, путь к которому записан в меню UEFI. Не нужно усложнять. ) UEFI куда тупее и проще, чем его везде представляют.
Artem
Я хочу, чтобы во время загрузки было меню, где я могу выбрать систему: Windows или Linux. Как это реализовать с сдбутом?