前阵子捣鼓威联通NAS,装完DSM系统后顺手发了个教程。结果第二天打开后台,好家伙——私信炸了。有个哥们儿直接问我:"哥,NAS上能跑Windows不?"
我当时盯着屏幕愣了十秒。心说兄弟你这是要上天啊?NAS那小身板跑Windows,怕不是得卡成PPT。但话又说回来,人嘛,总得有点探索精神不是?
然后我就去论坛里翻啊翻。结果你猜怎么着?还真有大佬给整出来了!天地极限,这ID听着就硬核。他搞了个Docker镜像,不用虚拟机,但用起来跟真机没啥区别,还能在里面再套个Docker玩套娃。
我当场就懵了。这操作也太骚了吧?
真的。
我当时坐在电脑前,盯着GitHub页面看了得有五分钟吧,脑子里一直在想这事儿到底靠不靠谱,要不要先备份一下数据,万一整崩了怎么办,不备份吧又怕出问题,反正就是各种纠结,最后心一横:干就完了!
下面我就把这玩意儿怎么整的,从头到尾给你们唠唠。
正式开始前提前做好准备:
- 确保你的机器支持KVM,可以用下面命令检查是否支持
sudo apt install cpu-checker
sudo kvm-ok
如果kvm ok命令报错了,则表示不能使用kvm,请检查BIOS中的虚拟化设置。
启动Docker
下面正式开始!笔者准备了docker和docker-compose两种安装方式,任选一种即可。 1、Docker安装
docker run -it \
-e VERSION="win11" \
-e RAM_SIZE="8G" \
-e CPU_CORES="4" \
-e DISK_SIZE="256G" \
-e MANUAL="N" \
-p 8006:8006 \
-p 3389:3389/tcp \
-p 3389:3389/udp \
-v path/to/windows/storage:/storage \
--device=/dev/kvm \
--cap-add NET_ADMIN \
dockurr/windows:latest
2、docker-compose安装
version: "3.9"
services:
windows:
image: dockurr/windows:latest
container_name: windows
stop_grace_period: 2m
restart: unless-stopped
environment:
VERSION: "win11"
RAM_SIZE: "8G"
CPU_CORES: "4"
DISK_SIZE: "256G"
MANUAL: "N"
devices:
- /dev/kvm
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
volumes:
- /share/documents/windows/storage:/storage
3.设置参数:
3.1. 如何选择 Windows 的版本?
默认情况下,将安装Windows 11。但是,你可以设置VERSION环境变量指定要下载的Windows版本:
environment:
VERSION: "win11"
3.2. 如何设置CPU或RAM的数量?
默认情况下,会分配2个CPU核心和4 GB RAM给容器,这是Windows 11的最低要求。使用下面环境变量可以进行修改:
environment:
RAM_SIZE: "8G"
CPU_CORES: "4"
3.3. 如何更改磁盘的大小?
默认会分配64 GB的磁盘大小,使用下面环境变量可以进行修改:
environment:
DISK_SIZE: "256G"
3.4. 如何更改存储位置?
使用下面环境变量可以设置挂载的存储位置,将示例路径/var/win替换为你自己机器上的存储文件夹。
volumes:
- /var/win:/storage
3.5. 如何执行手动安装?
默认是自动安装的,如果你想手动执行安装以自定义某些选项,例如选择另一个版本,请添加以下环境变量:
environment:
MANUAL: "Y"
MANUAL: "Y"表示手工安装,默认是N,笔者建议改成Y,可以自定义进行个性化设置。
3.6. 如何自定义 Windows 镜像下载地址?
你可以在VERSION环境变量中指定URL,以便下载自定义的ISO文件:
environment:
VERSION: "https://example.com/win.iso"
4 安装Windows
4.1、打开Web页面
使用以上介绍的方法启动Docker容器,稍等片刻后在浏览器中输入IP:8006,打开 QEMU。
4.2、开始安装
就是点按钮。。然后等待!
4.3、安装IO驱动程序
这一步是需要安装磁盘驱动程序,点击浏览。
选择第一个CD 驱动器(D 盘) ,并找到amd64/win11,选中!
选完继续点击下一页,等待!
这里其实是根据你选择的Windows版本安装驱动的,假如你用的是win19就选19
4.4、选择系统版本
这个界面直接点击我没有产品密钥,你如果有密钥你就输入。
接下来选择一个系统版本,建议选Windwos11 专业版就够用了,当然你想选其他的咱也拦不住你~~,继续点击下一页,等待!
嗯,勾选接收许可条款(不接受也不行啊),继续点击下一页,等待!
4.5、选择安装类型和网卡驱动
接下来选择哪种安装类型,选自定义!
这个界面要注意了,要加载一下网卡驱动,笔者第一次安装就忽略了,只好重新装了一遍!这一步很重要,可别直接跳过了!
点击加载驱动程序,在弹出框中选择驱动。
依然是选择第一个CD 驱动器(D 盘) ,并找到NetKVM\w11\amd64,选中!
4.6、个性化设置
选择系统语言
设置默认键盘布局
设置第二个键盘布局
设置主机名
接下来又是一段时间的等待吧,系统会开始自动重启一次。然后会到网络连接界面,直接点击下一步。
选第一个就行,继续下一步。
这个界面可以登录你的 Microsoft 网络账号,如果点击登录后提示无法连接网络就多试几次,几次之后依然不行,会跳到创建本地账号界面。
4.7、创建本地账号和隐私设置
如果一直无法联网,系统会自动转换到使用本地账号登录。这时候会要求你输入用户名,继续点击下一页。
输入一个密码,并确认密码,连续点击下一页。
创建本地账户需要设置三个安全问题,自己看着办设置就行。连续点击下一页。
这个自己看着选,点击下一页进行选择,最后点接受。然后又是等待系统重启!
继续点击下一步。
终于进入系统了!
进入系统后,打开文件管理器中的E盘,找到virtio-win-gt-x64.msi,双击安装它,一路默认下一步就行。
现在,Docker中的Windows已经安装完成啦
5 远程连接Windows
与正常Windows远程桌面没什么区别,如果你是在外网访问家中NAS中的Windows,别忘了到路由器中添加以下3389端口的映射哦,否则是连不上的。
我的构建命令(如果要彻底删除,在删除容器后需要删除/share/documents/windowsltsc10/storage这个目录)
sudo docker run -itd \
-e VERSION="ltsc10" \
-e RAM_SIZE="4G" \
-e CPU_CORES="2" \
-e DISK_SIZE="100G" \
-e MANUAL="Y" \
-e VERSION="http://local.xfnes.top/SW_DVD9_WIN_ENT_LTSC_2021_64BIT_ChnSimp_MLF_X22-84402.ISO" \
-p 8007:8006 \
-p 3389:3389/tcp \
-p 3389:3389/udp \
-v /share/documents/windowsltsc10/storage:/storage \
--device=/dev/kvm \
--cap-add NET_ADMIN \
--name=winltsc10 \
dockurr/windows:latest
> 如果觉得此文对你有帮助,不妨点赞+收藏+关注,你的鼓励是我持续创作的动力!