2 つの nixos インストールを処理するように grub を構成する

2 つの nixos インストールを処理するように grub を構成する

2つのnixosシステムをインストールしてデュアルブートしようとしていますが、GRUBが機能するように正しく設定する方法を理解できません。

2つのnixosシステムをダブルブートしたいのは奇妙に思えますが、その理由は、システムの1つのカーネルを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メニューに2つのシステムではなく、最後にインストールされたシステムのみが表示されることです。

grubメニューに表示される特定のシステムでは、すべてがうまく機能し、正常に起動できます。しかし、両方のシステムを表示するようにグラブを設定する方法を理解できませんか? 。私はまた、2つのシステムの代数学をどのように表示するかについての課題に直面しながら、まだどのシステムがどのシステムであるかを知ることができると思います。

ベストアンサー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

おすすめ記事