(UEFI) Цепная загрузка GRUB из GRUB

vi /etc/ssh/sshd_config

Затем установите для этой строки значение:

PasswordAuthentication yes

Запуск ОС обновит службу и перезагрузит конфигурацию openssh.

​​
4
13.02.2017, 08:28
3 ответа

Я узнал, как вручную установить .efi на каждый из моих / . Обратиться к вторичному загрузчику цепочки GRUB из первичной конфигурации очень просто:

menuentry "GRUB chainloader" {
 #Load grub on partition 7 of a gpt formatted drive. 
 #It will reference its own modules and config.
 chainloader (hd0,gpt7)/path/to/bootloader/on/myOS/core.efi
}

Чтобы создать этот вторичный .efi , я использовал grub-mkimage , потому что grub-install не не позволяйте мне писать в файловую систему, отличную от FAT. Синтаксис очень разборчив и не дает ошибок, если вы используете неправильный путь, поэтому внимательно проверьте аргументы:

grub-mkimage -o /path/to/mounted/targetOS/efidir/core.efi --format=x86_64-efi '--prefix=(hd0,gpt7)/boot/grub' ext2 part_gpt

Я попытался исключить модули файловой системы GPT или ext2, но это не сработало, эти два модуля были абсолютное минимальное требование для моей системы (ext2 работает для ext2 / 3/4).

Каталог префиксов - это место, где вторичный загрузчик будет искать папку с модулями и файл конфигурации. Поэтому я вручную создал / boot / grub / для каждой ОС, которая включает папку x86_64-efi / (скопировано из / usr / lib / grub) и grub.cfg я могу изменить, используя grub-mkconfig с отключенным зондированием ОС (или просто отредактируйте его вручную).

Изначально я устанавливал каждую ОС без GRUB. Этот метод позволил мне установить вторичные загрузчики GRUB во всех операционных системах, использующих первую ОС или LiveCD с GRUB. Я могу изменить конфигурацию загрузки каждой ОС независимо, без риска заражения, потому что ESP никогда не монтируется.

7
27.01.2020, 20:47

Есть другой способ: вы можете создать пункт меню, который сообщает GRUB загрузить другой вторичный файл grub.cfg, например, из другого дистрибутива Linux.

Например, я начал с Gentoo Linux, из которого я установил GRUB2 в MBR (машина слишком старая для EFI).

Затем я установил NixOS, который настроил для создания grub.cfg в собственном / boot (отдельно от Gentoo / boot ), но без установки GRUB .

Чтобы уточнить, grub-install был выполнен из Gentoo, но не из NixOS.

Затем, чтобы иметь возможность загружать NixOS, я добавил это в /etc/grub.d/40_custom в Gentoo:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'NixOS' --class gnu-linux --class gnu --class os $menuentry_id_option 'nixos-0aca58bc-8fdb-4a07-aa2f-56406bcf19b7' {
        set root='hd0,msdos4'
        configfile /nixos/root/boot/grub/grub.cfg
}

Ключ - это файл конфигурации / nixos / root / boot Строка /grub/grub.cfg. Он сообщает GRUB загрузить еще один файл grub.cfg. Затем я запустил grub-mkconfig из Gentoo, чтобы применить изменения.

Теперь, когда я загружаюсь и выбираю NixOS , весь интерфейс GRUB обновляется, чтобы отразить NixOS grub.cfg, из которого я могу загрузить ОС. В отличие от цепной загрузки, эта конфигурация использует одну установку GRUB; он просто использует вторую конфигурацию.

14
27.01.2020, 20:47

Я пытаюсь сделать то же самое для i386 -pc grub, но загрузчик файла core.img не работает, выдавая «ошибка :недопустимая подпись»

Но я узнал, что файл grub core.img совместим с мультизагрузкой, поэтому я смог загрузить core.img следующим образом:

multiboot (hd0,7)/core.img
boot

и успешно получите новый grub, его модули и первоначальную конфигурацию.

Я предполагаю, что ваша команда chainloader не работает на efi для не -efi grub, поэтому этот сбой можно обнаружить и -вернуться к мультизагрузке на core.img перед командой загрузки.

2
27.01.2020, 20:47

Теги

Похожие вопросы