NixOS Minimal 虚拟机安装记录

💽 下载镜像

NixOS 23.05 版本镜像下载:Minimal ISO image

我发布这篇文章的时候,该镜像的版本是这个

💻 创建虚拟机

下载好镜像后,创建虚拟机,选择自定义安装:
在这里插入图片描述
我这里使用的是 Vmware Workstation 16 pro 版本
在这里插入图片描述
选择之后再选择镜像,也就是第三个
在这里插入图片描述
选择 Linux 操作系统:
在这里插入图片描述
确定虚拟机名称,这里命名为 NixOS
在这里插入图片描述
2处理器2核即可:
在这里插入图片描述
内存这里选择 4G,足够了
在这里插入图片描述
选择 NAT 模式网络连接
在这里插入图片描述
然后下面几个选项都直接默认即可,直到磁盘大小,这里选择 60G
在这里插入图片描述
然后再一直默认,直到这里,点击 Customize Hardware,这里要选择 ISO文件了
在这里插入图片描述
选择存放 ISO 镜像路径即可,选择后点击右下角 Close 关闭,即可完成虚拟机的创建
在这里插入图片描述
创建好虚拟机后,直接点击启动,进入 GRUB 界面,默认即可:
在这里插入图片描述
NixOS 默认以 nixos 用户的身份进入:
在这里插入图片描述

🚀 正式安装

检查网络

虚拟机就不用了,因为使用 NAT 模式,默认会使用主机网络

如果是实体机,NixOS 内置了 wpa_cli 工具,不过要首先开启它:

sudo systemctl start wpa_supplicant

然后输入 wpa_cli 即可进入网络连接程序
在这里插入图片描述
实体机连接网络暂时略过,等笔者以后用实体机装 NixOS 再来补吧,又需要的伙伴可以去官网搜索安装教程,官网也是给了连接网络的命令示例的

磁盘分区

这里记录了两种启动模式的分区方式,UEFI 和 BIOS,根据自己电脑情况来选择吧

UEFI 启动模式

使用 lsblk 来查看磁盘名称,这里显示 /dev/sda,然后使用 parted 工具对磁盘分区

parted /dev/sda

使用 parted 过程中出现的提示信息:You may need to update /etc/fstab 可以不用理会

执行该命令后,就进入了 parted 工具的分区程序了,接下来就是一系列的分区操作:

  • 创建主分区,这里是将大部分的区域挂载到 / 目录,也就是 Linux 的 根分区,这个分区是必须要有的
  • 然后创建 swap 分区,相当于 Windows 的虚拟内存区域,可有可无,但建议还有要有
  • 创建 ESP 分区,用作引导系统启动,这个分区也是必须要有的
mklabel gpt # 创建 GPT 分区

mkpart primary 512MB -8GB # 从磁盘的 513MB 开始到倒水 20GB 的位置创建一个主分区

mkpart primary linux-swap -8GB 100% # 从磁盘的倒数 8GB 到磁盘末尾创建一个主分区,该分区用作交换分区

mkpart ESP fat32 1MB 512MB # 从磁盘的 1MB 到 512MB 处建立 ESP 分区,即 EFI 分区,用于引导系统启动

set 3 esp on # 启动 esp 分区

quit # 退出 parted 工具,所做的操作全部写入磁盘
BIOS 启动模式
parted /dev/sda

mklabel msdos

mkpart primary 1MB -8GB

mkpart primary linux-swap -8GB 100%

quit

创建分区后再次使用 lsblk 查看分区情况:
在这里插入图片描述

分区格式化

首先格式化根分区:

mkfs.ext4 /dev/sda1

mkswap /dev/sda2

使用 UEFI 分区还需要格式 EFI 分区:

mkfs.fat -F 32 /dev/sda3

分区挂载

先将根分区挂载到 /mnt

mount /dev/sda1 /mnt

如果有 EFI 分区,就挂载 EFI 分区到 /mnt/boot,没有就跳过这一步

mkdir -p /mnt/boot
mount /dev/sda3 /mnt/boot

最后挂载 swap 分区

swapon /dev/sda2

为 NixOS 生成配置文件

nixos-generate-config --root /mnt

这一步会生成两个配置文件:/etc/nixos/configuration.nix/etc/nixos/hardware-configuration.nix

配置 NixOS 系统

接下来的步骤就是 NixOS 和其他寻常的 Linux 系统不一样的地方了

如果是普通的 Linux 系统,接下来就是输入一条条的命令来配置新系统

而 NixOS 则是全部使用配置文件来管理,也就是先配置后安装,一个配置文件里包含了系统所有相关的信息

系统的配置文件路径: /etc/nixos/configuration.nix

不过因为处于 live 环境,所以还得加上 /mnt 的前缀,/mnt 可以简单理解为 /,所以执行下面的命令:

vim /mnt/etc/nixos/configuration.nix

NixOS 配置都是可以在官网上寻找到:https://search.nixos.org/packages?channel=23.05

注意 NixOS 的版本,我这里最新的 NixOS 版本是 23.05

配置启动模式

如果是 UEFI 启动模式,就配置:

boot.loader.systemd-boot.enable = true

如果是 BIOS 启动模式,就配置:

boot.loader.grub.device = "/dev/sda"

设置 hostname

networking.hostName = "nixos";

开启 NetworkManager

networking.networkmanager.enable = true;

设置时区和本地化语言

time.timeZone = "Asia/Shanghai";

i18n.defaultLocale = "en_US.UTF-8"

终端相关设置

console = {
 font = "Lat2-Terminus16";
 # keyMap = "us";
 useXkbConfig = true; # use xkbOptions in tty.
};

安装基础的软件包

这里是基本需要使用的软件包,包括 vim、wget 等

别看现在可以使用 vim 打开配置文件,这是因为 live 环境自带了,新系统是没有该软件包的

environment.systemPackages = with pkgs; [
	 vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
	 wget
];

安装桌面环境

这里选择的是 Plasma KDE 环境,当然别的环境都可以去 NixOS 官网去搜索

services.xserver.enable = true;
services.xserver.layout = "us";
services.xserver.desktopManager.plasma5.enable = true;
services.xserver.displayManager.sddm.enable = true;

安装 NixOS

当上述所有的配置都完成后,就可以选择安装部署系统了,使用 --show-trace 可以更好排查安装系统时出现的问题

nixos-install --show-trace

这个过程会持续若干分钟,视网络环境而变化,最后安装好后,就会提示为 root 用户设置密码,最后重启即可

如果安装速度太慢,可以考虑使用国内镜像:

nixos-install --option substituters https://mirrors.ustc.edu.cn/nix-channels/store

这条命令是暂时使用国内的 ustc 镜像来安装下载软件包

最后重新启动即可:

在这里插入图片描述

📙 Nix 的基本使用

在新系统中,是以 root 用户登录的,可以直接使用 kde 桌面的 konsole 进入终端

添加非 root 用户

因为当前是 root 用户可以直接编辑配置文件

vim /etc/nixos/configuration.nix

wheel 组的用户可以拥有 sudo 权限

并且每一个用户下都有单独的 packages = with pkgs; 配置项,这是单独用户下的软件包

 users.users.username = {  
   isNormalUser = true;  
   extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.  
   packages = with pkgs; [  
     firefox  
     tree
   ];  
 };

记得把上述配置文件中的 username 改成需要你自己的用户名,保存退出

然后就是 nixos 中使用最频繁的命令之一了,根据配置文件更新系统:

nixos-rebuild swicth

该命令执行完毕后,重新启动系统,即可使用非 root 用户进入系统

对了,非 root 用户要使用 sudo nixos-rebuild switch 来更新系统配置

开启 ssh 连接服务

还是编辑配置文件,将 services.openssh.enable = true; 的注释删除,再重新加载配置文件,即可启动 ssh 服务

sudo nixos-rebuild switch

sudo systemctl status sshd # 查看 sshd 服务是否启动

启动 ssh 后,就可以使用主机来连接虚拟机了

ok!NixOS 最基本的使用就完成了,官网有更多好玩的东西,可以自行探索

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值