ChatGPT를 사용하여 Fedora 39에서 부분 확장을 활성화하려고 시도했는데 그는 다음을 권장했습니다.
# NVIDIA's proprietary driver requires DRM KMS to be disabled for Wayland to work.
# Edit the file /etc/default/grub and ensure the parameter nvidia-drm.modeset=1 is not set.
# If it is, change it to nvidia-drm.modeset=0 or remove it. Then update the grub configuration with:
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
이 작업을 수행하고 명령을 실행했지만 GRUB 메뉴에 Windows 부팅 관리자만 표시되는 것을 확인했습니다. 아무 문제 없이 Windows로 부팅할 수 있지만 이제 GRUB는 Fedora를 찾을 수 없습니다.
내가 시도하는 솔루션
저는 Fedora를 사용하여 USB 부팅 가능한 드라이브를 만들었고, 빠른 Google 검색(그리고 범인을 제외한 추가 ChatGPT) 후에 다음과 같은 겉보기에 합리적인 해결책을 우연히 발견했습니다(내 /dev
파티션은 이미 입력되었습니다).
# Mount the root filesystem
sudo mount /dev/nvme0n1p7 /mnt/root
# Mount the EFI partition
sudo mount /dev/nvme0n1p6 /mnt/root/boot/efi
# Bind-mount the virtual filesystems
for dir in /dev /proc /sys /run; do
sudo mount --bind $dir /mnt/root$dir
done
설정 후 /mnt
실행 sudo chroot /mnt
해 보니 예상대로 작동했습니다. /etc/default/grub
파일을 원래 모양으로 다시 편집한 다음 다음을 사용 grub.cfg
하여 파일을 다시 생성 하려고 했습니다 grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
. 그럼에도 불구하고 여전히 다음과 같은 오류가 발생합니다 /usr/sbin/grub2-probe: error: cannot find a device for / (is /dev mounted?).
. 다음과 같이 여러 가지 설치 절차 조합을 시도했지만 성공하지 못했습니다.
sudo mount --bind /dev /mnt/root/dev
sudo mount --bind /dev/pts /mnt/root/dev/pts
sudo mount --bind /dev/shm /mnt/root/dev/shm
sudo mount --bind /dev/disk /mnt/root/dev/disk
sudo mount --bind /proc /mnt/root/proc
sudo mount --bind /sys /mnt/root/sys
sudo mount --bind /run /mnt/root/run
나도 따라해보려고 했는데이 가이드, 비슷한 문제를 해결하려고 시도하고 명령이 제대로 작동합니다. 내가 무엇을 잘못했는지 모르겠습니다. 도움을 주시면 감사하겠습니다!
lsblk의 출력
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 845151 843104 411.7M EFI System
/dev/nvme0n1p2 845824 878591 32768 16M Microsoft reserved
/dev/nvme0n1p3 878592 783736831 782858240 373.3G Microsoft basic data
/dev/nvme0n1p4 994082816 997033681 2950866 1.4G Windows recovery environmen
/dev/nvme0n1p5 997033984 1000214527 3180544 1.5G Windows recovery environmen
/dev/nvme0n1p6 783736832 785833983 2097152 1G EFI System
/dev/nvme0n1p7 785833984 977303551 191469568 91.3G Linux filesystem
/dev/nvme0n1p8 977303552 994080767 16777216 8G Linux swap
답변1
많은 시행착오 끝에 나는 내 문제에 대한 해결책을 찾았습니다. 누군가가 이 질문을 우연히 발견할 경우를 대비해 여기에 남겨두겠습니다.
내 시스템은 BRTFS 하위 볼륨을 사용하며 필요한 파티션을 마운트하는 단계는 이 파일 시스템 유형에 따라 다릅니다. 이것이 내가 다음 단계를 따를 수 없는 이유입니다.이 가이드. 내 특별한 경우는 에 /dev/nvme0n1p6
EFI 파티션이 있다는 것입니다 root
. 후자 boot
에는 클래식 Linux 폴더( , , 등) /dev/nvme0n1p7
가 포함된 루트 하위 폴더가 있습니다 .bin
home
opt
이 섹션으로 이동GRUB2 부팅 프롬프트 사용나에게 맞는 솔루션을 찾고 있습니다. 완전성을 위해 다음 섹션에서는 grub2-mkconfig
BRTFS 하위 볼륨을 올바르게 사용하는 chroot 시스템에서 이 명령을 실행하는 방법을 설명합니다.
BRTFS 하위 볼륨이 있는 시스템에 chroot
설명을 따르세요이 구세주 게시물절망적인 상황과 다양한 설치 절차 조합을 시도한 끝에 시스템에 올바르게 루트할 수 있었습니다.
sudo mkdir /mnt/sysimage
sudo mount -o subvol=root /dev/nvme0n1p7 /mnt/sysimage
sudo mount -o bind /dev /mnt/sysimage/dev
sudo mount -o bind /proc /mnt/sysimage/proc
sudo mount -o bind /sys /mnt/sysimage/sys
sudo mount -o bind /sys/firmware/efi/efivars /mnt/sysimage/sys/firmware/efi/efivars
sudo mount /dev/nvme0n1p6 /mnt/sysimage/boot/efi
sudo chroot /mnt/sysimage
노트:chroot된 시스템 내에서 인터넷에 연결되지 않은 경우, 다음에 자세히 설명된 단계를 따를 수 있습니다.같은 가이드.
그런 다음 chroot된 시스템에서 다음 명령을 실행할 수 있습니다.
dnf reinstall shim-* grub2-efi-* grub2-common
grub2-mkconfig -o /boot/grub2/grub.cfg
sync && exit
모든 것에 대해 umount
다음을 수행하십시오.
sudo umount /mnt/sysimage/sys
sudo umount /mnt/sysimage/proc
sudo umount /mnt/sysimage/dev
sudo umount /mnt/sysimage/boot/efi
sudo umount /mnt/sysimage/sys/firmware/efi/efivars
sudo umount /mnt/sysimage
/usr/sbin/grub2-probe: error: cannot find a device for / (is /dev mounted?)
이렇게 하면 실행 후 더 이상 오류가 발생하지 않습니다 grub2-mkconfig -o /boot/grub2/grub.cfg
. 이는 내 질문의 원래 목적이었습니다. 그러나 해당 명령을 실행해도 .NET에서 찾은 명령을 시도한 후에도 Fedora에 grub이 반환되지 않았습니다.이 점:
# Check BIOS boot details [ Note: this command won't work if you are inside chroot. ]
efibootmgr -v
# In case you need to create new entry in BIOS
efibootmgr -c -d /dev/nvme0n1p1 -p 1 -L Fedora -l '\EFI\fedora\grubx64.efi' # or, shimx64.efi
GRUB2 부팅 프롬프트 사용
실제 솔루션은 기본 Fedora 문서의 이 기사에서 끝났습니다.GRUB2 부팅 프롬프트 사용. 컴퓨터를 시작하고 키를 누른 다음 Esc
BIOS 메뉴로 들어가서 Fedora를 선택했습니다. 물론 거기에는 아무 것도 없을 것이므로 고전적인 검은색 화면만 남게 됩니다 grub>
. 거기서 다음 명령을 실행했습니다.
# Show all partitions
grub> ls
(hd0) (hd1) (hd0,gpt1) ...
# Try out every one of them until you find your EFI partition and your root partition. Mine was (hd2,gpt6) and (hd2,gpt7), respectively.
grub> ls (hd2,gpt6)/ # Had an EFI folder
grub> ls (hd2,gpt7)/ # Inside was the root folder and inside that, my beloved Fedora
# You set root to your EFI partition, mine being (hd2,gpt6)
grub> set root=(hd2,gpt6)
# And the following commands starting with the root partition, mine being (hd2,gpt7)
grub> linux (hd2,gpt7)/root/boot/vmlinuz-6.6.9-200.fc39.x86_64 root=/dev/nvme0n1p7 ro rootflags=subvol=root
grub> initrd (hd2,gpt7)/root/boot/initramfs-6.6.9-200.fc39.x86_64.img
# This command will finish the session and will boot up the chosen kernel and RAM filesystem
grub> boot
노트:부팅하려는 커널( vmlinuz-...
)과 RAM 파일 시스템( )이 있는 initramfs-...-.img
정확한 경로를 찾아야 합니다. 이렇게 하려면 ls <your root partition>/root/
폴더별로 폴더 탐색을 시작하면 됩니다. 나에게는 ls (hd2,gpt7)/root/boot/
내가 가지고 있는 모든 커널과 RAM 파일 시스템이 표시되었습니다. 제가 선택한 것은 최신의 것으로 접미사가 붙은 것입니다 . 또한, 명령 에 있는 부분 6.6.9-200.fc39.x86_64
에 주목하시기 바랍니다 . 이는 BRTFS 시스템에 매우 중요합니다. 이 기능이 없으면 시스템이 올바르게 부팅되지 않습니다. 물론, 자신만의 파티션으로 설정해야 하며 나머지는 변경되지 않습니다.root=/dev/nvme0n1p7 ro rootflags=subvol=root
linux
root=
root
시스템 내부
지금쯤이면 누락된 기존 시스템을 부팅했을 것입니다. 내부에서 터미널을 열고 다음 명령을 실행하여 grub
Fedora에 로그인할 때마다 위의 프로세스를 거칠 필요가 없도록 복원했습니다.
# Back up your current GRUB configuration as a precaution:
sudo cp /boot/efi/EFI/fedora/grub.cfg /boot/efi/EFI/fedora/grub.cfg.bak
# Regenerate the GRUB configuration file with:
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# Reinstall GRUB to ensure it's properly installed on the EFI partition:
sudo grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Fedora
그런 다음 컴퓨터를 다시 시작했는데 이상한 이유로 BIOS 부팅 메뉴에서 Fedora를 찾을 수 없었습니다(지금까지는 그런 일이 발생하지 않았으며 화면으로만 부팅되는 것을 제외하면 항상 표시되었습니다 grub>
). Windows에 로그인하고 다시 재부팅한 후 BIOS 부팅 메뉴로 들어가니 이제 Fedora가 나타났습니다. 나는 그것을 선택했고 내 컴퓨터는 메뉴에 들어가지 않고 직접 부팅되었습니다 grub
. 이것은 정말 이상하지만 지금까지는 확실히 작동하고 있습니다. 이제 아무 문제 없이 Fedora에 로그인할 수 있습니다.
항상 그렇듯이 이 명령을 주의해서 실행하고 특정 시스템과 구성을 다시 확인하십시오.