AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 446501
Accepted
toraritte
toraritte
Asked: 2018-05-29 07:22:45 +0800 CST2018-05-29 07:22:45 +0800 CST 2018-05-29 07:22:45 +0800 CST

Como reconstruir a configuração de uma instalação do NixOS a partir do Live CD?

  • 772

Instalei o NixOS 18.03 do Ubuntu em outra partição seguindo a seção " 2.4. Instalando de outra distribuição Linux " do manual do NixOS. Tudo correu bem, mas eu fiz algumas coisas idiotas [?] , a saber:

  • Esqueci de adicionar a entrada extra do gerenciador de inicialização GRUB para a instalação do Ubuntu antes nixos-install. Adicionado como uma reflexão tardia após a instalação e reiniciei (claro, sem entrada no Ubuntu)

  • Não habilitou nenhuma rede em configuration.nix, e acabou sem comandos de configuração de rede após a reinicialização para se conectar ao wi-fi. O problema 22 é que nixos-rebuild switchrequer uma conexão de rede, então não consegui finalizar nenhuma alteração.

Então, pensei que posso inicializar a partir de um NixOS Live CD (17.03), conectar-me ao nosso wi-fi e, de alguma forma, reconstruir a configuração da instalação.

É mais do que possível que eu esteja perdendo algo essencial, tenha suposições incorretas acima, etc; bastante novo no nix e no NixOS.


EDIT: Esqueci de incluir como minhas partições estão configuradas e o que tentei antes de instalar o NixOS com sucesso.

Partições (pontos de montagem do 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      

Eu não queria bagunçar a partição de inicialização do Ubuntu, então criei outra ( /dev/sda3). Meu plano era incluir posteriormente uma entrada de menu no GRUB do Ubuntu para NixOS, mas, por enquanto, instale, reinicie e teste a inicialização do NixOS a partir do console GRUB ( set root=..., linux ..., initrd ..., boot)

sudo PATH="$PATH" NIX_PATH="$NIX_PATH" `which nixos-install` --root /mnt --no-bootloader

Após a reinicialização, não consegui ver nada na partição de inicialização do NixOS. Voltei para o Ubunut, instalei sem --no-bootloader, lembrei de adicionar uma entrada para o Ubuntu e reiniciar. (Foi só depois disso que percebi que systemd-boote GRUB são duas coisas completamente diferentes...)


ATUALIZAÇÃO: Consegui voltar ao Ubuntu selecionando a partição de inicialização do Ubuntu como um dispositivo de inicialização alternativo no BIOS, e o menu GRUB usual apareceu. Posso apenas refazer a instalação com a configuração correta.

nixos
  • 2 2 respostas
  • 7151 Views

2 respostas

  • Voted
  1. Best Answer
    Emmanuel Rosa
    2018-05-29T18:29:08+08:002018-05-29T18:29:08+08:00

    A maneira mais simples de ir é instalar a partir do LiveCD.

    nixos-generate-configirá regenerar a configuração de hardware, mas se achar que configuration.nixjá existe, irá deixá-la sozinha. E nixos-installé projetado de forma que possa ser executado com segurança quantas vezes forem necessárias.

    Isso significa que você pode seguir o guia de instalação principal usando o sistema de arquivos (e configuração) que você já criou para o NixOS e continuar de onde parou.

    Algumas coisas a serem observadas:

    • O NixOS será instalado systemd-bootpor padrão nos sistemas EFI. Portanto, você terá um novo executável EFI ao lado dos que já possui.
    • nixos-installtambém tentará definir systemd-bootcomo o gerenciador de inicialização padrão. Eu acredito que você pode desabilitar isso definindo boot.loader.efi.canTouchEfiVariablescomo false emconfiguration.nix
    • Eu recomendo instalar o NixOS com uma configuração básica; Por exemplo, configure rede, usuários e instale um editor de texto, mas não muito mais. A razão é que o LiveCD usa um armazenamento Nix que é mantido na RAM. Seu sistema será instalado primeiro neste armazenamento Nix com suporte de RAM e depois copiado para o disco. Depois de instalado e inicializável, você pode prosseguir com segurança com o restante da configuração.
    • 6
  2. toraritte
    2018-05-31T21:58:40+08:002018-05-31T21:58:40+08:00

    Adicionando esta resposta para fins de integridade: em teoria, a sugestão de @ Mioriin acima de chrooting seria a resposta correta, que poderia ser alcançada pelo comando nixos-enter.

    Do Ubuntu, com as partições do NixOS montadas em /mnt:

    $ sudo $(which nixos-enter)
    ...
    [root@nixos:/]# nixos-rebuild switch
    

    Na prática, isso não funcionou, porque a rede não funcionaria (provavelmente porque configuration.nixfaltava a configuração correta em primeiro lugar) e recebi várias mensagens de erro:

    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
    

    No final, a resposta de @ Emmanuel Rosa é a certa, especialmente porque (como ele aponta) nixos-installpode ser executada com segurança várias vezes.

    • 1

relate perguntas

  • aponte $NIX_PATH para ~/.nix-defexpr/channels

  • O scanner é detectado apenas uma vez

  • Limpe o cache do gerenciador de pacotes no nixos com partição raiz completa

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve