최근에 grub 설치가 중단되었습니다. Ubuntu 배포판과 Arch Linux 배포판에서 다음 명령을 실행하여 문제를 해결하려고 했습니다.
sudo os-prober
sudo grub-mkconfig /boot/grub/grub.cfg
sudo grub-install --efi-directory=/boot/EFI /dev/nvme0n1
이제 grub은 설치된 모든 운영 체제를 다시 표시하며 이를 사용하여 설치된 두 운영 체제 모두로 부팅할 수 있습니다. 그러나 한 메뉴 항목에서는 여전히 해당 Linux 배포판을 부팅할 수 없습니다. 선택하면 노트북의 시작 화면(큰 Lenovo 아이콘)이 나타나고 그 이후에는 아무 일도 일어나지 않습니다. 이 문제를 해결하는 방법에 대한 팁이 있거나 문제가 시작되지 않는 이유에 대한 추가 정보를 수집할 수 있습니까?
다음에서 로드되지 않은 grub 메뉴 항목 /boot/grub/grub.cfg
:
menuentry 'Arch Linux (rolling) (on /dev/nvme0n1p2)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-c53daa31-996c-468d-bd57-df5b73cb87cc' {
savedefault
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 0DD8-ECF1
else
search --no-floppy --fs-uuid --set=root 0DD8-ECF1
fi
linux /vmlinuz-linux root=UUID=c53daa31-996c-468d-bd57-df5b73cb87cc rw loglevel=3 quiet
initrd /intel-ucode.img
}
UUID가 53daa31-996c-468d-bd57-df5b73cb87cc
올바른 드라이브( /dev/nvme0n1p5
)에 해당하고 명령의 UUID가 EFI Boot search
에 해당하는지 blkid로 다시 확인했습니다./dev/nvme0n1p1
편집하다:@Recct가 제안한 대로 "quiet"을 제거하고 로그 수준을 7로 높였습니다. 그러면 아래 그림에서 오류가 발생합니다. 가장 관련성이 높은 부분은 다음과 같습니다.
No filesystem could mount root, tried:
Kernell panic - not syncing VFS: Unable to mount root fs on unknown-block(0, 0)
편집 2:
이제 두 번째로 grub.cfg 파일에 다른 배포판을 성공적으로 추가했고 이번에는 부팅되었으므로(내가 무엇을 했는지 잘 모르겠습니다) initrd 명령에 /initramfs-linux.img를 추가하는 것은 본질적으로 변경입니다.
내가 이해한 바로는 이 파일은 /etc/grub.d 및 /etc/default/grub을 기반으로 grub-mkconfig에 의해 자동으로 생성되어야 합니다. 이 문제를 영구적으로 해결하려면 /etc/grub.d의 설정을 어떻게 변경해야 합니까?
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-c53daa31-996c-468d-bd57-df5b73cb87cc' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root 0DD8-ECF1
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=c53daa31-996c-468d-bd57-df5b73cb87cc rw loglevel=7
echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-c53daa31-996c-468d-bd57-df5b73cb87cc' {
menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-c53daa31-996c-468d-bd57-df5b73cb87cc' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root 0DD8-ECF1
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=c53daa31-996c-468d-bd57-df5b73cb87cc rw loglevel=3 quiet
echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux.img
}
menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-c53daa31-996c-468d-bd57-df5b73cb87cc' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root 0DD8-ECF1
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=c53daa31-996c-468d-bd57-df5b73cb87cc rw loglevel=3 quiet
echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux-fallback.img
}
menuentry 'Arch Linux, with Linux linux (recovery mode)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-recovery-c53daa31-996c-468d-bd57-df5b73cb87cc' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root 0DD8-ECF1
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=c53daa31-996c-468d-bd57-df5b73cb87cc rw single
echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux-fallback.img
}
}