Я работаю с проектом с открытым исходным кодом. Сопровождающий Debian сообщил о сбое под X32 (не опечатка; это не X86), и я пытаюсь настроить тестовую среду для его воспроизведения.
Согласно вики Debian X32 Ports, мне нужно включить расширения X32 в ядре. Для этого мне нужно добавить запись Grub. Ниже приведено то, что я добавил в /etc/default/grub
, и оно взято со страницы вики (за исключением того, что я прокомментировал запись по умолчанию).
# GRUB_CMDLINE_LINUX_DEFAULT="syscall.x32=y quiet"
GRUB_CMDLINE_LINUX="syscall.x32=y"
Затем я выполнил update-grub
на странице вики и проверил записи в скомпилированном меню (см. Ниже).
Когда я загружаю систему, опция недоступна в главном меню или в дополнительных опциях:
Документация Debian Grub2 оставляет желать лучшего. В нем только обсуждается, как раскрасить пункты меню (вы не можете придумать такого рода вещи ...).
Я ожидал следующего после следования рецепту, предоставленному документами:
- Debian GNU/Linux
- Debian GNU/Linux (X32)
- Расширенные настройки
- Тест памяти (memtest86+)
- Тест памяти (memtest86+, серийный)
- ...
Как добавить параметры загрузки X32 в Grub, дать ему имя, например «Debian GNU/Linux (X32)», обеспечить его загрузку для ядра во время загрузки и обеспечить сохранение изменений после upgrade
или dist-upgrade
?
Согласно ответу Мариуса ниже, я добавил следующее в /etc/grub.d/40_custom
:
menuentry 'Debian GNU/Linux (X32)' --class debian --class gnu-linux --class gnu --class os
$menuentry_id_option 'gnulinux-simple-a4af7dfc-640c-4aa8-bf0b-068af3d72b01' {
linux/boot/vmlinuz-4.2.0-1-amd64 root=UUID=a4af7dfc-640c-4aa8-bf0b-068af3d72b01 ro syscall.x32=y quiet
}
Он обеспечивает именованную запись, как и ожидалось, но приводит к ошибке загрузки:
error: can't find command: `linux/boot/vmlinuz-4`
Я думаю, что это произошло из-за копирования / вставки в Emacs (очевидно, он удаляет пробелы ???). Поэтому я изменил его на linux /boot/vmlinuz-4.2.0-1-amd64...
Это привело к панике ядра: