LINUX.ORG.RU
ФорумTalks

Растогруб

 ,


1

9

https://www.opennet.ru/opennews/art.shtml?num=62945

Разработчики GRUB2 рассматривают возможность использования языка Rust.

Владимир Сербиненко, один из трёх мэйнтейнеров загрузчика GRUB2, внёсший в кодовую базу более пяти тысяч изменений, выставил на обсуждение возможность написания модулей для GRUB2 c использованием языка Rust. Владимир представил первые результаты экспериментов с добавлением поддержки Rust в GRUB2 и созданием необходимых обвязок. Для GRUB также подготовлены изменения, позволяющие использовать разделяемые библиотеки («.so», ET_DYN) для модулей, вместо связывания на уровне объектных файлов («.o», ET_REL).

Инициатива пока позиционируется как отдельный эксперимент, который не будет влиять на разработку GRUB2. В качестве оптимального применения Rust в GRUB упоминается написание модулей для новых файловых систем. Также не исключается переписывание на Rust кода для работы с дисковыми разделами и GPT.

Предполагается, что использование Rust поможет проекту уменьшить вероятность появление некоторых видов ошибок, особенно в коде модулей, содержащем множество больших и сложных процедур парсинга. В феврале в результате аудита кодовой базы GRUB были выявлены 72 проблемы с безопасностью, 21 из которых признаны опасными уязвимостями, пригодными для обхода механизма верифицированной загрузки UEFI Secure Boot. 20 из 21 уязвимостей вызваны ошибками при работе с памятью, приводившими к переполнению буфера или обращению к памяти после её освобождения.

Дополнительно можно отметить выпуск проекта GNU Boot 0.1 RC6, в состав которого вошли вышеотмеченные исправления уязвимостей (в самом GRUB2 исправления продолжают распространяться в виде патчей без формирования отдельного релиза). Проект GNU Boot развивает замену проприетарным прошивкам UEFI и BIOS, основанную на CoreBoot, но применяющую более жёсткие требования к включению бинарных компонентов. GNU Boot преподносится как «coreboot-libre», т.е. как редакция CoreBoot, избавленная от блобов и несвободных компонентов, по аналогии с тем, как проект Linux-libre развивает очищенный вариант ядра Linux. Отдельно развиваются похожие проекты Libreboot и Canoeboot.

★★★★★

Не вижу особого смысла в GRUB2 во времена UEFI.

sudo efibootmgr --create --disk /dev/nvme0n1 --part 1 --label "Void Musl" --loader /vmlinuz-void-musl --unicode 'root=/dev/nvme0n1p5 rw initrd=\initramfs-void-musl.img zswap.enabled=1'

и готово.

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

Разве что для альтернативных ОС может понадобиться? Наверное? Я давно всякие BSD и Haiku не тыкал, они так умеют, или обязательно нужен загрузчик вроде GRUB?

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

Разве что для альтернативных ОС может понадобиться? Наверное?

У меня /boot шифрованный, на флешке, а на ssd и хардах даже разметки невидно. Без GRUB никак…

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

а можно подробней про все это: «/boot шифрованный, на флешке, а на ssd и хардах даже разметки нет.»

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

А, точно, ещё для этого.

А если не секрет, зачем шифровать /boot?

Там секретное ядро? Что может сделать злоумышленник, если завладеет содержимым /boot?

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

А если не секрет, зачем шифровать /boot?

В основном, для успокоения паранойи, и просто потому что могу. Объективных причин, действительно нет… Если же чисто в теорию, то для того, чтобы без знания пароля не смогли встроить злобный вирус в ядро или initrd.

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

а можно подробней

Ну /boot шифрован, на отдельной флешке, а разметку невидно потому как она поверх LUKS. Хочу скоро вообще от разметки избавиться, потому как в таком варианте смысла от неё немного.

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

Нет. Именно разметка поверх LUKS. То есть весь накопитель зашифрован LUKS, заголовок лежит в поддериктории boot раздела, а размека уже на расшифрованном пространстве накопителя. Без ввода пароля разметку на ssd и хардах даже невидно, как и то что они зашифрованы. На флешке разметка есть, но доступен без пароля только ESP. Сам boot зашифрован, но то что кроме ESP есть раздел зашифрованный LUKS видно. При таком варианте использования смысла в самой разметке почти нет. А вот совсем её убрать - более интересная задача. Как убрать разметку с ssd и хардов уже придумал, будет время попробую. А вот как спрятать, или убрать разметку с флешки пока идей нет.

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

А вот как спрятать, или убрать разметку с флешки пока идей нет.

Только с помощью coreboot и его вариаций. Там как-нибудь вшить grub или первое ядро так, что они будут искать диск и просить ввести ключ. Иначе никак. Для uefi требуется esp, который никак не зашифровать, а поместить esp на диск без разметки вряд ли возможно. А в legacy bios требуется mbr разметка, на которой он будет искать загрузочный сектор.

mister_me
()
Ответ на: комментарий от dataman

Не, это про человека. Либо нетрадиционной ориентации, либо просто нехорошего.

Способ образования тот же, что у «нельзяграм». Типа запрещённая соцсеть, значит полностью слово говорить «нельзя». Прямо так и говорим, а окончание добавляем от оригинала.

Вот и здесь так же, полное слово говорить «грубо» — прямо «грубо» и говорим, а окончание добавляем от оригинала.

CrX ★★★★★
()

А поможет оно вообще? Возможно ли написать эти парсеры дисковых структур так чтобы они не пестрили unsafe-ми?

cobold ★★★★★
()

Растогруб

grustb: грусть или груздь

Kolins ★★★★★
()

Canoeboot

Автор случайно не с Бали?

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

У меня большинство железа пока ещё в Legacy режиме загружается. Поэтому все загрузочные диски делаю универсальными, чтобы грузилось как в EFI режиме, так и в Legacy. (а если говорить о VM - то там вообще всё на Legacy, только одна машинка с EFI для тестов)

И в общем-то не особо хочется изучать еще один boot manager, в дополнение к grub legacy и grub2. Опять же я использую вывод в serial console (но это обычно умеют все boot manager`ы).

MirandaUser2
()

теперь придется посвещать все молодые годы чтобы только собрать генту из stage1

#везде_залезть #перепишем_потому_что_оно_не_на_руст

Syncro ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)