NixOS 매뉴얼에 따라 다른 파티션에 Ubuntu에서 NixOS 18.03을 설치했습니다.2.4. 다른 Linux 배포판에서 설치"Part. 모든 일이 순조롭게 진행되고 있었는데 내가 어리석은 짓을 저질렀어요.[? ],지금 바로:
Ubuntu 설치를 위해 추가 GRUB 부트로더 항목을 추가하는 것을 잊었습니다
nixos-install
. 설치 및 재부팅 후 나중에 고려하여 추가했습니다(물론 Ubuntu 항목은 없음).활성화된 네트워크가 없으며
configuration.nix
재부팅 후 Wi-Fi에 연결하기 위한 네트워크 구성 명령도 없습니다. 22호는nixos-rebuild switch
네트워크 연결이 필요하므로 변경할 수 없습니다.
따라서 내 생각은 NixOS Live CD(17.03)에서 부팅하고 Wi-Fi에 연결한 후 어떻게든 설치된 구성을 다시 빌드할 수 있다는 것입니다.
중요한 것을 놓치고 있거나 위의 가정이 올바르지 않은 등 nix와 NixOS에 상당히 새로운 것이 있을 가능성이 매우 높습니다.
편집: 파티션 설정 방법과 NixOS를 성공적으로 설치하기 전에 시도한 작업을 포함하는 것을 잊었습니다.
파티션(Ubuntu의 마운트 지점):
sda
├─sda1 ntfs Recovery # some Win7 artifact
├─sda2 vfat /boot/efi
├─sda3 vfat NIXBOOT # boot partition (esp, boot)
├─sda4 ext4 onyx # NixOS data
├─sda5 swap # Ubuntu swap
│ └─cryptswap1 swap [SWAP]
├─sda6 ext4 # (Arch install)
├─sda7 ext4 / # Ubuntu install
├─sda8 swap nixswap
└─sda9 ext4 home
우분투 부팅 파티션을 엉망으로 만들고 싶지 않아서 다른 파티션( /dev/sda3
)을 만들었습니다. 내 계획은 나중에 Ubuntu의 NixOS용 GRUB에 메뉴 항목을 포함하는 것이지만 지금은 GRUB 콘솔( set root=...
, linux ...
, initrd ...
, boot
) 에서 NixOS를 설치, 재부팅 및 테스트 부팅합니다.
sudo PATH="$PATH" NIX_PATH="$NIX_PATH" `which nixos-install` --root /mnt --no-bootloader
재부팅한 후 NixOS 부팅 파티션에 아무것도 표시되지 않습니다. Ubuntu로 돌아가면 설치 중에 설치되지 않았습니다 --no-bootloader
. Ubuntu 항목을 추가하고 다시 시작해야 합니다. (그 후 나는 GRUB systemd-boot
과 GRUB이 완전히 다른 두 가지라는 것을 발견했습니다...)
업데이트: BIOS에서 Ubuntu 부팅 파티션을 대체 부팅 장치로 선택하여 Ubuntu로 돌아갈 수 있으며 일반적인 GRUB 메뉴가 나타납니다. 올바른 구성으로 다시 설치할 수도 있습니다.
답변1
가장 쉬운 방법은 LiveCD에서 설치하는 것입니다.
nixos-generate-config
하드웨어 구성이 다시 생성되지만 configuration.nix
이미 존재하는 것으로 확인되면 유지됩니다. nixos-install
필요한 횟수만큼 안전하게 수행할 수 있도록 설계되었습니다 .
이는 NixOS용으로 이미 생성한 파일 시스템(및 구성)을 사용하여 기본 설치 가이드를 따른 다음 중단한 부분부터 계속할 수 있음을 의미합니다.
참고할 사항:
- NixOS는
systemd-boot
EFI 시스템에 기본적으로 설치됩니다. 따라서 기존 EFI 실행 파일 외에 새로운 EFI 실행 파일이 생성됩니다. nixos-install
systemd-boot
또한 기본 부팅 관리자로 설정하려고 합니다 .boot.loader.efi.canTouchEfiVariables
false로 설정하면 비활성화 할 수 있다고 생각합니다.configuration.nix
- 예를 들어 네트워크 설정, 사용자 설정, 텍스트 편집기 설치 등의 기본 구성으로 NixOS를 설치하는 것이 좋습니다. 그 이유는 LiveCD가 RAM에 있는 Nix 저장소를 사용하기 때문입니다. 시스템은 먼저 이 RAM 지원 Nix 스토리지에 설치된 다음 디스크에 복사됩니다. 설치하고 부팅할 수 있게 되면 나머지 구성을 안전하게 진행할 수 있습니다.
답변2
완전성을 위해 이 답변을 추가합니다. 이론적으로는 @사나오위안위의 ing의 제안 chroot
은 정답이며 command 를 통해 얻을 수 있습니다 nixos-enter
.
Ubuntu에서 다음 위치에 NixOS 파티션이 설치되었습니다 /mnt
.
$ sudo $(which nixos-enter)
...
[root@nixos:/]# nixos-rebuild switch
실제로 이것은 네트워크가 작동하지 않기 때문에 작동하지 않으며(아마 configuration.nix
처음에 올바른 설정이 부족했기 때문일 것입니다) 많은 오류 메시지가 나타납니다.
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs' does not exist, ignoring
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels' does not exist, ignoring
error: file 'nixpkgs/nixos' was not found in the Nix search path (add it using $NIX_PATH or -I), at (string):1:13
System has not been booted with systemd as init system (PID 1). Can't operate.
building Nix...
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs' does not exist, ignoring
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels' does not exist, ignoring
error: file 'nixpkgs/nixos' was not found in the Nix search path (add it using $NIX_PATH or -I)
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs' does not exist, ignoring
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels' does not exist, ignoring
error: file 'nixpkgs' was not found in the Nix search path (add it using $NIX_PATH or -I)
warning: unable to download 'https://cache.nixos.org/nix-cache-info': Couldn't resolve host name (6); retrying in 293 ms
^Cwarning: download of 'https://cache.nixos.org/nix-cache-info' was interrupted
don't know how to build these paths:
/nix/store/z6avpvg24f6d1br2sr6qlphsq3h4d91v-nix-2.0.2
error: interrupted by the user
warning: don't know how to get latest Nix
결국 @엠마누엘 로사의 대답은 정확합니다. 특히 (그가 지적했듯이) nixos-install
여러 번 안전하게 수행할 수 있기 때문입니다.