当前位置: 首页 > news >正文

KVM+NixOS安装过程记录

前置准备

目标服务器上已经安装好了KVM,能够正常使用virsh命令。

以下是博主的一台古董服务器

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.6 LTS
Release:        18.04
Codename:       bionic$ qemu-x86_64 --version
qemu-x86_64 version 2.11.1(Debian 1:2.11+dfsg-1ubuntu7.41)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers$ virsh --version
4.0.0$  sudo apt list | grep ovmf
ovmf/bionic-security,bionic-security,bionic-updates,bionic-updates,now 0~20180205.c0d9813c-2ubuntu0.3 all [已安装]

开搞

1. 下载NixOs镜像

官方下载地址:https://nixos.org/download/#nixos-iso

因为是作为开发环境,这里选择了Minimal ISO image版本

image

下载完成后我这里放在了imgs/latest-nixos-minimal-x86_64-linux.iso

2. 写一个virt脚本并运行

也可以直接运行,写脚本是方便复用和管理

#!/bin/bashusage() {echo "Usage: $0 <owner> <seq> <cdrom_path> <vnc_port>" >&2echo "       Or run with --help to see detailed information." >&2echo "" >&2echo "Parameters:" >&2echo "  <owner>      - prefix for VM name (e.g. myvm)" >&2echo "  <seq>        - sequence number (e.g. 01)" >&2echo "  <cdrom_path> - path to ISO or CDROM image" >&2echo "  <vnc_port>   - VNC display port" >&2exit 1
}if [[ "$1" == "--help" ]]; thenusageexit 0
fiif [ "$#" -ne 4 ]; thenusage
fiowner=$1
seq=$2
name=${owner}${seq}
cdrom=$3
disk_path=./${name}.qcow2
vnc_port=$4qemu-img create -f qcow2 ${disk_path} 100Gvirt-install --virt-type kvm \
--name ${name} \
--ram 16384 \
--vcpus 8 \
--cdrom=${cdrom} \
--disk path=${disk_path},format=qcow2 \
--network bridge=br0 \
--graphics vnc,port=${vnc_port},listen=0.0.0.0 \
--noautoconsole \
--os-type=linux --boot uefi

这里的--network bridge=br0需要已经配置好网桥才可以,实际上可以配置为--network default来使用默认的NAT网络。

这里的--boot uefi非常重要,因为NixOS官方更推荐UEFI模式,而KVM默认是BIOS。

使用方法如下,这里我意图创建一个名为egod7的虚拟机,并且vnc端口设置为5967。

# vms/
#   - create_new.sh
#   - imgs/
#     - latest-nixos-minimal-x86_64-linux.iso 
sudo bash create_new.sh egod 7 imgs/latest-nixos-minimal-x86_64-linux.iso 5967

3. 完成NixOS的安装

这里需要使用VNC连接到目标服务器的5967端口,VNC软件推荐使用MobaXterm或者RealVNC Viewer,都是免费的。

NixOS的安装步骤大部分都照搬官方教程。

NixOS默认不帮忙分区,也不提供全自动安装功能,所以需要从分区开始操作。

sudo -i # 进入root模式
lsblk # 查看硬盘情况,一般情况下是 /dev/sda# 进行GPT分区(UEFI)
parted /dev/sda -- mklabel gpt
parted /dev/sda -- mkpart root ext4 512MB -8GB
parted /dev/sda -- mkpart swap linux-swap -8GB 100%
parted /dev/sda -- mkpart ESP fat32 1MB 512MB
parted /dev/sda -- set 3 esp on# 格式化分区
mkfs.ext4 -L nixos /dev/sda1
mkswap -L swap /dev/sda2
swapon /dev/sda2
mkfs.fat -F 32 -n boot /dev/sda3   # 挂载分区
mount /dev/disk/by-label/nixos /mnt
mkdir -p /mnt/boot                   
mount -o umask=077 /dev/disk/by-label/boot /mnt/boot # 自动生成配置
nixos-generate-config --root /mnt# 修改配置,在正确的UEFI模式下,应该会自动生成boot.loader.systemd-boot.enable=true。
# 可以改一下时区为Asia/Shanghai
# 取消注释一下`users.users.alice`并将alice改成自己喜欢的用户名,我这里使用`egod`
vim /mnt/etc/nixos/configuration.nix# 安装NixOs并按照提示设置root的密码
nixos-install# 设置用户密码
nixos-enter --root /mnt -c 'passwd egod'# 取消挂载(极其重要,一定不能忘)
umount -r /mnt # 重启
reboot

正常情况下reboot并不能成功,需要在服务器上执行virsh start来手动开机,然后就可以正式进入NixOS了。

4. 简单使用

后续可以通过sudo vim /etc/nixos/configuration.conf来修改网络、用户、系统层软件等。

比如修改envrioment.systemPackages增加vim和htop。

然后通过 sudo nixos-rebuild switch --upgrade来更新需要安装的软件。

其他操作就需要慢慢学NixOS了。

http://www.jsqmd.com/news/740169/

相关文章:

  • 别再只盯着水下!从零开始,手把手教你搭建ROV的“岸上大脑”(含线盘、工控机、手柄选型指南)
  • 如何在Kodi上直接播放115网盘视频?5分钟搞定云观影体验
  • 2026年05月六西格玛报名官网Top推荐:黑带含金量VS绿带性价比 - 众智商学院课程中心
  • Java字符串与集合核心知识点大全
  • 别只盯着论文看!用Calib3D和Place3D,手把手教你搭建更可靠的自动驾驶感知系统
  • 第1篇:Java内存模型(JMM)与volatile——并发编程的基石
  • 如何5分钟解锁中兴光猫完整权限:zteOnu工具终极指南
  • 2026年3月艺术疗愈课程推荐,青少年一对一心理咨询/青少年心理咨询/心理咨询/一对一心理咨询,艺术疗愈机构口碑推荐 - 品牌推荐师
  • MySQL多表联查时,Column ‘xxx‘ is ambiguous 报错?别慌,3分钟教你彻底搞懂并解决它
  • IoTAutomationFramework_2.0 安卓测试自动化工具
  • 深入对比:Zynq上AXI UARTLite vs UART 16550,多路串口方案到底怎么选?
  • 2026年最新排名:中国质量协会六西格玛考试含金量怎么样(附避坑榜) - 众智商学院课程中心
  • [C# 笔记] 如何设置消息钩子 (以低级鼠标钩子为例)
  • 为什么选择优德营造Omakase设计打造你的日料餐厅?
  • 原神游戏数据采集与分析实战指南
  • 2026 选什么降 AI 软件不踩坑?看排行前先搞懂这 3 个降 AI 平台差异。 - 我要发一区
  • GSPO算法:序列级策略优化在旅行规划中的应用
  • **2026年5月六西格玛认证排行榜|黑带VS绿带含金量与报考评价** - 众智商学院课程中心
  • Linux系统PPP拨号全攻略:从串口调试到断线自动重连的完整实现
  • 04 接雨水 单调栈
  • Ultralytics LLM:将YOLO工程哲学带入大语言模型应用开发
  • 开源桌面示波器Haasoscope:FPGA+MCU架构与Python客户端全解析
  • 深度解析applera1n:基于checkm8漏洞的iOS激活锁绕过技术实现
  • 中山AI优化提供商哪家强?原来有这些选择!
  • OBS虚拟摄像头进阶玩法:除了共享屏幕,还能在腾讯会议里玩出什么花?
  • 毕业答辩前选哪款降 AI 软件?2026 排行前 5 让 AI 率降到 5% 以下! - 我要发一区
  • 第二章、application.properties文件的配置
  • 2026年5月六西格玛绿带黑带含金量排行|报考避坑榜Top5 - 众智商学院课程中心
  • Ubuntu Server 24.04下解决SunloginClient 向日葵依赖libgconf-2-4安装问题
  • SAP SD新手避坑:VA01创建销售订单报‘无定价过程’?手把手教你用OVKK搞定配置