Dual-Boot
配置 grub 以處理兩個 nixos 安裝
我正在嘗試安裝和雙重引導兩個 nixos 系統,但我無法理解如何正確配置 GRUB 以使其工作。
我想雙啟動兩個 nixos 系統可能看起來很奇怪,但原因是我想要一個核心設置為 CONFIG_PREEMPT_RT https://github.com/musnix/musnix的系統。而另一個我只想作為普通核心的系統。
我創建了一個帶有 EFI 分區 (
nvme0n1p1
) 和加密的 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
每個上都安裝了它們自己的 configuration.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 以使其同時顯示兩個系統?我想我也將面臨如何顯示兩個系統的世代的挑戰,並且仍然能夠區分哪個是哪個……
您可以在系統配置文件中向 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
設置 old-nixos 根分區的 UUID,然後使用新配置更新您的系統。# nixos-rebuild switch