LXD
如果你不喜欢图形界面安装虚拟机,那 LXD 一定是个不错的选择,我会以 LXD 安装 Win10 为例,服务器是安装了 Ubuntu 20.04 的 J1900 小主机,主要参考了 Ubuntu 官方的教程并结合 Google 遇到的问题总结而来,所有安装命令都是在 root 用户下执行
安装和更新
snap install lxd --channel=5.0/stable
snap refresh lxd --channel=5.0/stable
打包镜像
安装工具
apt install -y libguestfs-tools wimtools genisoimage
snap install distrobuilder --classic
转换 Win10 LTSC 官方镜像为 LXD 镜像,我喜欢 LTSC
distrobuilder repack-windows SW_DVD9_WIN_ENT_LTSC_2021_64BIT_ChnSimp_MLF_X22-84402.ISO win10.lxd.iso --windows-version=w10 --windows-arch=amd64
初始化
初始化 LXD
lxd init --minimal
新建虚拟机
lxc init win10 --vm --empty
设置虚拟机磁盘大小
lxc config device override win10 root size=50GiB
虚拟机开机自动启动
lxc config set win10 boot.autostart true
分配虚拟机 CPU 和内存
lxc config set win10 limits.cpu=4 limits.memory=4GiB
挂载之前打包的安装镜像到虚拟机
lxc config device add win10 install disk source=/root/win10.lxd.iso boot.priority=10
配置远程
由于服务器没有桌面,Win10 安装还是需界面来配置的,所以需要配置远程的端口和密码
以下在服务器执行
lxc config set core.https_address :8443
lxc config set core.trust_password 123456
以下在 Windows PC 以管理员打开 PowerShell 执行
安装 choco
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
安装 LXC 和 virt-viewer
choco install lxc virt-viewer
添加远程,ip 为服务器 ip,密码为之前设置的 123456
lxc remote add win10 192.168.2.12
lxc remote switch win10
查看所有远程
lxc remote list
安装 Win10
操作要快服务器执行后立刻执行远程连接,没问题就能打开 Win10 的安装界面了
以下在服务器执行
启动 win10
lxc start win10
以下在 Windows PC 以管理员打开 PowerShell 执行
远程连接
lxc console win10 --type=vga
驱动安装
虚拟机安装好后浏览器下载驱动的 ISO 挂载后安装
网络配置
LXD 的网络有很多种,参考这里
所有操作需要在停止虚拟机的情况下执行
遇到问题重启虚拟机再试,配置前记得关闭虚拟机再分配
-
MACVLAN (简单但不推荐,无法和宿主机相互访问)
添加一个 名叫 macvlan 专用的 profile 类型是 macvlan,父节点是服务器的网卡 enp1s0,可以根据 ip addr 查看
lxc profile create macvlan lxc profile device add macvlan eth0 nic nictype=macvlan parent=enp1s0
将 macvlan 添加到 Win10
lxc profile add win10 macvlan
-
相关命令
查看配置
lxc profile list lxc profile show macvlan
编辑配置,比如添加备注
lxc profile edit macvlan
移除安装镜像
lxc profile remove win10 default
其他命令
删除安装镜像
lxc config device remove win10 install
添加 USB 设备
vendorid 和 productid 为 lsusb 显示的 ID
lsusb
lxc config device add win10 print usb vendorid=2d84 productid=b3e8
强制停止
lxc stop -f win10
Web UI
5.14 开始支持UI
snap set lxd ui.enable=true
systemctl reload snap.lxd.daemon