GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nabootovat do Arch Linuxu pomocí Initramfs v Ubuntu's Grub?

Mám dva pevné disky se dvěma odpovídajícími Gruby. Jeden je z Arch Linuxu a druhý z Ubuntu. Pomocí Arch's grub mohu zavést obě distribuce. Pomocí grubu Ubuntu však vidím Arch i Ubuntu, ale nemohu spustit Arch. Dostávám chybu:

Kernel offset
End kernel panic. Not syncing: VFS.
Unable to mount root fs on unknown-block.

Porovnal jsem grub.cfg pro obě distribuce. V grubu Ubuntu vidím záznam pro Arch s následujícím řádkem.

initrd /boot/intel-ucode.img

Změnil jsem to tak, aby odpovídalo Archovi grub.cfg :

initrd /boot/intel-ucode.img /boot/initramfs-linux.img

Nyní mohu spustit Arch z grub Ubuntu. Zdá se, že Ubuntu ve výchozím nastavení tuto požadovanou možnost nepřipojuje. Jak mohu zajistit, aby Ubuntu automaticky vytvořilo správnou položku?

Upravit

Aktualizuji Archův grub pomocí grub-mkconfig -o /boot/grub/grub.cfg . V Ubuntu jsem vyzkoušel oba update-grub a výše uvedený raw příkaz (ke kterému je přiřazen alias).

Upravit 2

Nekomentované řádky /etc/default/grub

GRUB_DEFAULT="saved"
GRUB_SAVEDEFAULT="true"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
GRUB_TIMEOUT="3"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

Přijatá odpověď:

Ve skutečnosti existují dva soubory, které je třeba upravit, aby se tento problém vyřešil. Testoval jsem to na svém Lubuntu 16.04.1 a Manjaro Linux.

V Ubuntu:

1) Soubor /usr/lib/linux-boot-probes/mounted/40grub2 existuje funkce parse_grub_menu, která nezpracovává všechny parametry initrd. Je třeba upravit „case „$1“ v … initrd) ‘:

a) odebrat přiřazení

initrd="$(echo "$2" ...)"

b) přidejte dva řádky místo odebraného:

shift 1
initrd="$(echo "[email protected]" | sed 's/(.*)//')"

2) Soubor /etc/grub.d/30_os-prober v rámci cyklu for opravte přiřazení LINITRD:

for LINUX in ${LINUXPROBED}; do
...
    LINITRD="`echo ${LINUX} | cut -d ':' -f 5 | tr '^' ' '`"

První oprava bere v úvahu všechny dostupné initrd informace pro Manjaro. Druhá oprava vyčistí vygenerovaný řádek initrd změnou některých znaků „^“ na mezery.


Ubuntu
  1. Ubuntu – Jak zabránit Grub v používání/spouštění jakéhokoli grafického uživatelského rozhraní?

  2. Jak duální spouštění Ubuntu a Linux Mint?

  3. Jak nabootovat do konzolového (textového) režimu s Debian / Ubuntu, Fedora, Arch Linux / Manjaro a další

  1. Jak nainstalovat Arch Linux

  2. Jak Pxe Network Boot Ubuntu Server 14.04 pomocí Nfs?

  3. Jak spustit Ubuntu do režimu obnovení

  1. Jak používat Grub Rescue k opravě selhání spouštění systému Linux

  2. Jak duální bootování Windows XP a Ubuntu Linux

  3. Jak opravit Grub 2 na Ubuntu