Ubuntu의 grub에서 initramfs를 사용하여 Arch Linux로 부팅하려면 어떻게 해야 합니까?

Ubuntu의 grub에서 initramfs를 사용하여 Arch Linux로 부팅하려면 어떻게 해야 합니까?

두 개의 해당 Grub이 있는 두 개의 하드 드라이브가 있습니다. 하나는 Arch Linux에서, 다른 하나는 Ubuntu에서 왔습니다. Arch의 grub을 사용하면 두 배포판 중 하나로 부팅할 수 있습니다. 그러나 Ubuntu의 grub을 사용하면 Arch와 Ubuntu를 모두 볼 수 있지만 Arch로 부팅할 수는 없습니다. 오류가 발생합니다.

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

grub.cfg두 분포를 모두 비교했습니다 . Ubuntu의 grub에서 다음 줄이 포함된 Arch 항목을 볼 수 있습니다.

initrd /boot/intel-ucode.img

나는 그것을 Arch의 것을 따르도록 변경했습니다 grub.cfg.

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

이제 Ubuntu의 grub에서 Arch로 부팅할 수 있습니다. Ubuntu는 기본적으로 이 필수 옵션을 추가하지 않는 것 같습니다. Ubuntu가 자동으로 올바른 항목을 생성하도록 하려면 어떻게 해야 합니까?

편집하다

Arch의 grub을 grub-mkconfig -o /boot/grub/grub.cfg. 우분투에서는 update-grub위의 원시 명령(별칭)을 모두 시도했습니다 .

편집 2

주석 처리되지 않은 행/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=""

답변1

실제로 이 문제를 해결하려면 수정해야 할 파일이 두 개 있습니다. 저는 이것을 Lubuntu 16.04.1과 Manjaro Linux에서 테스트했습니다.

우분투에서는:

1) 파일/usr/lib/linux-boot-probes/mounted/40grub2 모든 initrd 매개변수를 처리하지 않는 pars_grub_menu 함수가 있습니다. '를 수정해야 합니다.... initrd의 "$1" 경우)':

a) 할당 제거

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

b) 제거된 줄 대신 두 줄을 추가합니다.

shift 1
initrd="$(echo "$@" | sed 's/(.*)//')"

2) 파일/etc/grub.d/30_os-prober for 루프 내에서 LINITRD 할당을 수정합니다.

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

첫 번째 수정에서는 Manjaro에 사용 가능한 모든 initrd 정보를 고려합니다. 두 번째 수정 사항은 일부 '^' 문자를 공백으로 변경하여 생성된 initrd 줄을 정리합니다.

답변2

나는 Manjaro와 Arch를 실행하고 있지만 아이러니하게도 Manjaro는 Ubuntu와 비슷한 실수를 할 것입니다. 따라서 아마도 30_os_prober의 다음 패치가 여전히 누군가에게 도움이 될 수 있습니다.

후에:

LINITRD="`echo ${LINUX} | cut -d ':' -f 5 | tr '^' ' '`"

추가하다:

if [ "${OS}" = "Arch Linux" ] ; then
  LINITRD="/boot/intel-ucode.img ${LINITRD}"
fi

답변3

파일 을 편집하고 실행한 후에 작동했습니다 grub.cfg.

sudo update-grub
sudo grub.mkconfig

관련 정보