Arch Linux, Gentoo Linux 및 NixOS를 세 번 부팅했습니다. 문제는 이러한 운영 체제, 특히 GRUB2 부트 로더 버전이 서로 잘 작동하지 않는다는 것입니다. NixOS로 부트로더를 설정하면 Gentoo 및 NixOS 항목이 제대로 부팅되지만 GRUB2 구성의 Arch Linux 항목은 실제로 Arch Linux 대신 NixOS를 부팅합니다. Arch Linux에서 GRUB2를 설정하면 NixOS는 이를 인식하지 못하지만 Gentoo는 인식합니다(os-prober가 설치됨). 내 파티션은 다음과 같습니다
/dev/sda
- /dev/sda1 - my EFI partition
- /dev/sda2 - my Gentoo partition
- /dev/sda3 - my Arch Linux partition
- /dev/sda4 - my NixOS partition
- /dev/sda5 - my swap partition
/dev/sdb
- /dev/sdb1 - my data partition on which I store config files, documents, etc.
/dev/sda에는 보호 MBR(해당하는 경우)이 있는 GPT 파티션 테이블이 있습니다.
그래서 제 질문은 Arch Linux의 GRUB2 부트 로더가 NixOS에 적합한 부트 항목을 인식하고 생성하도록 하는 방법이 있습니까?입니다. 아니면 그렇지 않은 경우 NixOS의 부트로더가 Arch Linux에 적합한 항목을 생성하도록 하는 방법이 있습니까?여기내 구성.nix 파일이고여기내 하드웨어 구성 .nix 파일입니다.
분명히 말하면, 이러한 시스템 중 하나에서 부팅 로딩을 관리하기 위해 GRUB2를 설정할 때 해당 배포판의 부트 로더만 이를 관리하도록 했습니다. EFI 파티션에서 다른 배포판의 부트로더 파일을 삭제했습니다. 예를 들어 NixOS를 사용하여 부트로딩을 관리할 때 /boot/EFI/arch 폴더(EFI가 /boot에 마운트된 위치)를 삭제하고 Arch Linux 커널 이미지를 EFI 파티션에서 Arch Linux 루트 파티션의 /로 옮겼습니다. 부팅 폴더.
편집: NixOS를 구했습니다거의Arch를 실행하려면 GRUB2를 올바르게 설정하세요. Arch의 /etc/fstab에서 여전히 /dev/sda1을 /boot에 마운트했지만, 부트로더를 Arch에서 NixOS로 변경했기 때문에 더 이상 그렇지 않습니다.
현재 구성 파일의 유일한 문제는 다음과 같습니다.
initrd /boot/intel-ucode.img
바꾸다:
initrd /boot/intel-ucode.img /boot/initramfs-linux.img
또는:
initrd /boot/intel-ucode.img /boot/initramfs-linux-fallback.img
정확한 입력에 따라 다릅니다. 결과적으로 Arch를 시작하면 커널 패닉이 발생합니다. 그러면 매번 수동으로 파일을 편집할 필요 없이 적절한 /boot/initramfs-linux*.img 행을 어떻게 추가합니까?
답변1
시스템에서 GRUB를 관리하는 운영 체제가 여러 개 있으면 부팅 항목의 위치를 포함하여 GRUB를 구성하는 방법을 놓고 서로 싸우는 경우가 많습니다.
GRUB를 관리하는 시스템은 하나만 두는 것이 가장 좋습니다. 귀하의 경우 롤백 링크를 관리하는 방식 때문에 nixOS가 될 것입니다.