두 개의 nixos 설치를 처리하도록 grub 구성

두 개의 nixos 설치를 처리하도록 grub 구성

두 개의 nixos 시스템을 설치하고 이중 부팅하려고 하는데 GRUB가 작동하도록 올바르게 구성하는 방법을 이해할 수 없습니다.

두 개의 nixos 시스템을 이중 부팅하려는 것이 이상해 보이지만 그 이유는 시스템 중 하나의 커널이 CONFIG_PREEMPT_RT로 설정되기를 원하기 때문입니다.https://github.com/musnix/musnix. 그리고 제가 원하는 다른 시스템은 일반 커널입니다.

nvme0n1p1EFI 파티션( )과 암호화된 LVM 파티션( )을 사용하여 nvme0n1p2파티션 설정을 만들었습니다 .

NAME                              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
nvme0n1                           259:0    0 953.9G  0 disk  
├─nvme0n1p1                       259:1    0   512M  0 part  
└─nvme0n1p2                       259:2    0 953.4G  0 part  
  └─root                          254:0    0 953.4G  0 crypt 
    ├─virtual--group-swap         254:1    0    16G  0 lvm   [SWAP]
    ├─virtual--group-normal--root 254:2    0   172G  0 lvm   
    ├─virtual--group-rt--root     254:3    0   172G  0 lvm   /
    └─virtual--group-shared--home 254:4    0 593.4G  0 lvm   /home

두 시스템에 nixos를 성공적으로 설치했으며 각 normal-root시스템 rt-root에는 자체 구성.nix 및 hardware-configuration.nix가 있습니다. shared-home두 시스템 모두의 홈 디렉토리로 설치하면 됩니다.

두 시스템의 hardware-configuration.nix 파일에서 fileSystems."/boot"EFI 파티션을 가리킵니다. 두 시스템의 Configuration.nix 파일에서 다음과 같은 grub 구성을 만들었습니다.

  boot.loader = {
    grub = {
      enable = true;
      efiSupport = true;
      enableCryptodisk = true;
      device = "nodev";
      useOSProber = true;
    };
    efi.canTouchEfiVariables = true;
  };

이제 문제는 grub 메뉴에 두 시스템이 아닌 마지막으로 설치된 시스템만 표시된다는 것입니다.

grub 메뉴에 표시된 특정 시스템의 경우 모든 것이 잘 작동하며 정상적으로 부팅할 수 있습니다. 그러나 두 시스템을 모두 표시하도록 grub을 구성하는 방법을 이해할 수 없습니까? . 나는 또한 두 시스템의 대수학을 표시하는 방법에 대한 도전에 직면하면서도 여전히 어느 시스템이 어느 시스템인지 알 수 있을 것이라고 생각합니다.

답변1

시스템 구성 파일에서 grub에 사용자 정의 메뉴 항목을 추가할 수 있습니다 /etc/nixos/configuration.nix.

boot.loader.grub.extraEntries = ''
  menuentry "Nix-OS custom configuration" {
    search --set=myroot --fs-uuid <UUID-HERE>
    configfile "($myroot)/boot/grub/grub.cfg"
  }
'';

blkid이전 nixos 루트 파티션의 UUID를 설정한 다음 시스템을 새 구성으로 업데이트하는 데 사용됩니다 .

# nixos-rebuild switch

관련 정보