NixOS Installation Guide/zh: Difference between revisions

Ardenet (talk | contribs)
Created page with "* 博客文章:如何在 [http://grahamc.com/blog/nixos-on-dell-9560 Dell 9560] 上安装 NixOS * 品牌服务器可能需要在 initrd 中包含额外的内核模块(在 configuration.nix 中配置 <code>boot.initrd.extraKernelModules</code>)。例如,HP Proliant 需要“hpsa”模块才能访问磁盘驱动器。"
FuzzyBot (talk | contribs)
Updating to match new version of source page
Line 1: Line 1:
<languages/>
<div class="mw-translate-fuzzy">
这份指南是对[https://nixos.org/nixos/manual/index.html#ch-installation 官方手册]的一份参考指南. 它讲述了把[[NixOS]]作为完整操作系统的安装过程. 为了在一个已存在的操作系统内安装[[Nix]], 请见[[Nix Installation Guide|Nix安装指南]].
这份指南是对[https://nixos.org/nixos/manual/index.html#ch-installation 官方手册]的一份参考指南. 它讲述了把[[NixOS]]作为完整操作系统的安装过程. 为了在一个已存在的操作系统内安装[[Nix]], 请见[[Nix Installation Guide|Nix安装指南]].
</div>


<div class="mw-translate-fuzzy">
除了讲述官方手册上的步骤, 它还提供了用于常见使用场景的已知良好指导. 当官方手册和这份指南之间出现矛盾时, 以官方手册中描述的情况为准.
除了讲述官方手册上的步骤, 它还提供了用于常见使用场景的已知良好指导. 当官方手册和这份指南之间出现矛盾时, 以官方手册中描述的情况为准.
 
</div>
把这份指南当作逐步操作指南使用. 出现不同选择时, 只使用选定的部分, 并在这部分的结尾按照它的指示前进.


<span id="Installation_target"></span>
<span id="Installation_target"></span>
Line 75: Line 78:
{{expansion|Troubleshooting steps, and details are lacking.}}
{{expansion|Troubleshooting steps, and details are lacking.}}


<div class="mw-translate-fuzzy">
因为安装媒介是混合型的, 它通过legacy bios模式和UEFI模式都可以启动.
因为安装媒介是混合型的, 它通过legacy bios模式和UEFI模式都可以启动.
</div>


无论使用哪种方式启动安装媒介, 你可能需要修改主板或者电脑的配置, 以允许从光盘驱动器(对于CD/DVD)或者从一个外部的USB驱动器启动.
无论使用哪种方式启动安装媒介, 你可能需要修改主板或者电脑的配置, 以允许从光盘驱动器(对于CD/DVD)或者从一个外部的USB驱动器启动.
Line 107: Line 112:
=== 无线网络 ===
=== 无线网络 ===


<div class="mw-translate-fuzzy">
Network Manager安装在图形界面ISO文件中, 这意味着可以在命令行中使用<code>nmtui</code>来连接到网络.
Network Manager安装在图形界面ISO文件中, 这意味着可以在命令行中使用<code>nmtui</code>来连接到网络.
</div>


使用左上方的"Applications(应用)"标签页或者在底部的启动栏, 打开一个终端应用, 在那里启动 <code>nmtui</code>. 这可以让你'activate(激活)'一个(无线)连接 - 你应该可以在列表里看到你那里的SSID(无线网络名称), 除此之外你还可以添加一个新的连接. 当无线连接处于活动状态, 并且你已经测试过了时, 一开始就启动的安装程序很可能还没有检测到新的连接. 关掉安装程序, 再重新从屏幕底部的启动栏打开它.  这时它应该会检测到新的网络连接而继续.
使用左上方的"Applications(应用)"标签页或者在底部的启动栏, 打开一个终端应用, 在那里启动 <code>nmtui</code>. 这可以让你'activate(激活)'一个(无线)连接 - 你应该可以在列表里看到你那里的SSID(无线网络名称), 除此之外你还可以添加一个新的连接. 当无线连接处于活动状态, 并且你已经测试过了时, 一开始就启动的安装程序很可能还没有检测到新的连接. 关掉安装程序, 再重新从屏幕底部的启动栏打开它.  这时它应该会检测到新的网络连接而继续.


<div class="mw-translate-fuzzy">
在最小化安装的ISO文件上(或者你更熟悉 <code>wpa_supplicant</code> ), 你也可以运行 <code>wpa_passphrase ESSID | sudo tee /etc/wpa_supplicant.conf</code>, 然后输入你的密码, 再运行<code>systemctl restart wpa_supplicant</code>.
在最小化安装的ISO文件上(或者你更熟悉 <code>wpa_supplicant</code> ), 你也可以运行 <code>wpa_passphrase ESSID | sudo tee /etc/wpa_supplicant.conf</code>, 然后输入你的密码, 再运行<code>systemctl restart wpa_supplicant</code>.
</div>


<span id="Partitioning"></span>
<span id="Partitioning"></span>
== Partitioning(分区操作) ==
== Partitioning(分区操作) ==


<div class="mw-translate-fuzzy">
为了给连续存储进行分区, 运行 <code>sudo fdisk /dev/diskX</code> , 然后跟着针对DOS或(U)EFI的指示来做.
为了给连续存储进行分区, 运行 <code>sudo fdisk /dev/diskX</code> , 然后跟着针对DOS或(U)EFI的指示来做.
这里有一个非常简单的示例设置.
这里有一个非常简单的示例设置.
</div>
<syntaxhighlight lang="console">
$ [ -d /sys/firmware/efi/efivars ] && echo "UEFI" || echo "Legacy"
</syntaxhighlight>
<div lang="en" dir="ltr" class="mw-content-ltr">
A very simple example setup is given here.
</div>


<span id="Legacy_Boot_(MBR)"></span>
<div class="mw-translate-fuzzy">
=== DOS ===
=== DOS ===
</div>


* o (dos硬盘标签)
* o (dos硬盘标签)
Line 150: Line 172:
* w (写入)
* w (写入)


<span id="Label_partitions"></span>
<span id="Format_partitions"></span>
<div class="mw-translate-fuzzy">
== Label partitions(给分区贴标签) ==
== Label partitions(给分区贴标签) ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
The example below uses the [[ext4]] filesystem format. If you wish to use other filesystem formats such as [[Btrfs]] or [[ZFS]]:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Bcachefs#NixOS installation on bcachefs]]
* [[Btrfs#Installation of NixOS on btrfs]]
* [[LVM#Basic Setup]]
* [[ZFS#Simple NixOS ZFS on root installation]]
</div>
<div class="mw-translate-fuzzy">
这对于有多个分区设置的情况很有用, 使分区更容易处理<syntaxhighlight lang="console">
这对于有多个分区设置的情况很有用, 使分区更容易处理<syntaxhighlight lang="console">
$ lsblk
$ lsblk
Line 162: Line 198:
$ sudo mount /dev/disk/by-label/NIXBOOT /mnt/boot
$ sudo mount /dev/disk/by-label/NIXBOOT /mnt/boot
</syntaxhighlight>
</syntaxhighlight>
</div>


== Swap文件 ==
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
$ sudo dd if=/dev/zero of=/mnt/.swapfile bs=1024 count=2097152 (2GB size)
$ lsblk # lists current system block devices
$ sudo chmod 600 /mnt/.swapfile
# mkfs.fat -F 32 -n boot /dev/sdX1
$ sudo mkswap /mnt/.swapfile
# mkfs.ext4 /dev/sdX2 -L nixos
$ sudo swapon /mnt/.swapfile
# mount /dev/disk/by-label/nixos /mnt
# mkdir -p /mnt/boot
# mount /dev/disk/by-label/boot /mnt/boot
</syntaxhighlight>
</syntaxhighlight>


<span id="NixOS_configuration"></span>
<div class="mw-translate-fuzzy">
== NixOS配置 ==
== NixOS配置 ==
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
Line 177: Line 217:
$ sudo vim configuration.nix
$ sudo vim configuration.nix
</syntaxhighlight>最重要的修改:
</syntaxhighlight>最重要的修改:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
NixOS is configured through a [[Overview of the NixOS Linux distribution#Declarative Configuration|declarative configuration]] file. To generate a default config file, run [[nixos-generate-config]]:
</div>
<syntaxhighlight lang="console">
# nixos-generate-config --root /mnt
# nano /mnt/etc/nixos/configuration.nix
</syntaxhighlight>
<div lang="en" dir="ltr" class="mw-content-ltr">
For information on working with a system configuration, see [[NixOS system configuration]]. For desktop-specific configurations, see [[NixOS as a desktop]].
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Most essential changes:
</div>
<div class="mw-translate-fuzzy">
* keyboard layout(键盘布局), 也就是<code>[[Keyboard Layout Customization|services.xserver.xkb.layout]]</code>  
* keyboard layout(键盘布局), 也就是<code>[[Keyboard Layout Customization|services.xserver.xkb.layout]]</code>  
* <code>users.users.user</code> 和附加条目 <code>initialPassword = "pw123";</code>
* <code>users.users.user</code> 和附加条目 <code>initialPassword = "pw123";</code>
Line 184: Line 243:
* 安装编辑器来编辑配置文件
* 安装编辑器来编辑配置文件
* 修改硬件配置以使用标签
* 修改硬件配置以使用标签
</div>


具有自我说明性的NixOS选项可以在[https://search.nixos.org/options NixOS选项搜索]上搜索到.
具有自我说明性的NixOS选项可以在[https://search.nixos.org/options NixOS选项搜索]上搜索到.


<span id="Swap_file"></span>
<div class="mw-translate-fuzzy">
== Swap文件 ==
<syntaxhighlight lang="console">
$ sudo dd if=/dev/zero of=/mnt/.swapfile bs=1024 count=2097152 (2GB size)
$ sudo chmod 600 /mnt/.swapfile
$ sudo mkswap /mnt/.swapfile
$ sudo swapon /mnt/.swapfile
</syntaxhighlight>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
For additional methods of configuring swap, see [[Swap]]. The following example demonstrates how to create and enable a [[Swap#Swap file|swap file]]:
</div>
{{file|/mnt/etc/nixos/configuration.nix|nix|
<nowiki>
  swapDevices = [{
    device = "/var/lib/swapfile";
    size = 16*1024; # 16 GB
  }];
</nowiki>
}}
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Bootloader ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
NixOS supports multiple [[Bootloader|bootloaders]] such as [[GNU GRUB]] and [[Systemd/boot]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Systemd-boot is the recommended bootloader. The following example demonstrates how to enable systemd-boot in your configuration:
</div>
{{file|/mnt/etc/nixos/configuration.nix|nix|
<nowiki>
  boot.loader.systemd-boot.enable = true;
</nowiki>
}}
<div lang="en" dir="ltr" class="mw-content-ltr">
You may also wish to configure [[Secure Boot]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Users ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
For information on creating and managing users, see [[User management]] and the {{NixOS Manual|name=NixOS Manual: Chapter - Package Management|anchor=#sec-user-management}}. See an example below:
</div>
{{file|/mnt/etc/nixos/configuration.nix|nix|
<nowiki>
  users.users.alice = {
    isNormalUser = true;
    initialPassword = "pw123";
  };
</nowiki>
}}
<span id="NixOS_installation"></span>
<div class="mw-translate-fuzzy">
== NixOS安装 ==
== NixOS安装 ==
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
Line 192: Line 317:
$ sudo nixos-install
$ sudo nixos-install
</syntaxhighlight>安装完成后: 运行 <code>passwd</code> 来修改用户的密码.
</syntaxhighlight>安装完成后: 运行 <code>passwd</code> 来修改用户的密码.
</div>
<syntaxhighlight lang="console">
# cd /mnt
# nixos-install
</syntaxhighlight>
<div lang="en" dir="ltr" class="mw-content-ltr">
after installation: Run <code>passwd</code> to change user password.
</div>


<div class="mw-translate-fuzzy">
如果网络出现问题, 请尝试下面的一种方法:<syntaxhighlight lang="console">
如果网络出现问题, 请尝试下面的一种方法:<syntaxhighlight lang="console">
$ nixos-rebuild switch --option substitute false # 无下载
$ nixos-rebuild switch --option substitute false # 无下载
Line 198: Line 334:
</syntaxhighlight>
</syntaxhighlight>
* 设置wpa_supplicant标志来连接到wifi.
* 设置wpa_supplicant标志来连接到wifi.
</div>
<syntaxhighlight lang="console">
# nixos-rebuild switch --option substitute false # no downloads
# nixos-rebuild switch --option binary-caches "" # no downloads
</syntaxhighlight>
<div class="mw-translate-fuzzy">
<hr />
</div>


<hr />
<hr />
Line 210: Line 356:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
[[Category:Guide]][[Category:Deployment]]
[[Category:Guide]]
[[Category:Deployment]]
[[Category:NixOS]]
</div>
</div>