如果你恰巧和我一样,有一台高配置的云主机(我使用的是Afly的黑五小鸡),主机上又没有提供Windows镜像。那么可以考虑尝试一下自己DD系统。
什么是DD系统?
正如其名,DD系统本意就是使用dd命令把vhd文件弄到一个特定分区中,然后配置引导文件,随后便可启动。不过随着脚本的演化,也衍生出了很多功能(比如可以通过img或者iso镜像安装,救援系统)。但这并不是重点,本教程希望介绍一下我在使用这个脚本中踩到的坑,以及具体怎么解决。
我的环境配置
先介绍本次使用的环境(这些配置可能看起来有点特别,但正是这些特殊性让我遇到了一些有趣的问题):
- CPU:3 Core AMD Ryzen 9 9950X
- RAM:4.5GB
- SSD:125GB
- Network:IPv6 /128 Only (没错,就是纯IPv6环境,没有IPv4访问权限!而且只分配了/128的IPv6,为后文埋下伏笔)
准备工作
使用的脚本
我选择了这个脚本:https://github.com/bin456789/reinstall
强烈建议你先仔细查看该脚本的README,仓库中有非常详细地关于如何使用脚本的教程。
系统镜像选择
使用的镜像来自秋水逸冰大佬的镜像,可以搜索https://teddysun.com/?s=DD来找到自己喜欢的镜像。我这次选择了Windows 10 LTSC,因为这个版本相对清爽一些。
省流版安装命令
如果你比较着急,这里是最基础的安装命令:
# 先下载脚本
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O reinstall.sh
# 然后执行安装
bash reinstall.sh dd --img https://dl.lamp.sh/vhd/zh-cn_windows10_ltsc.xz
记得提前安装curl(如果你系统中还没有的话)
第一个坑:DNS配置不正确
这个问题主要是因为我的特殊网络环境造成的。脚本的Alpine环境中,DNS配置不正确,导致无法从网络上下载文件。下面是我的解决方案:
#!/bin/sh
# 更改 /etc/resolv.conf 文件
echo "nameserver 2001:4860:4860::8888" > /etc/resolv.conf
echo "nameserver 2001:4860:4860::8844" >> /etc/resolv.conf
if [ -f /etc/systemd/resolved.conf ]; then
echo "[Resolve]" >> /etc/systemd/resolved.conf
echo "DNS=2001:4860:4860::8888" >> /etc/systemd/resolved.conf
echo "DNS=2001:4860:4860::8844" >> /etc/systemd/resolved.conf
systemctl restart systemd-resolved
fi
echo "DNS 已成功更改为 Google IPv6 DNS"
当然,如果你是正常的双栈环境,这个问题应该不会遇到。
第二个坑:密码设置陷阱
这个坑我觉得特别有意思:脚本一开始运行时会提示让你输入密码,但这个密码并不是你后续登录Windows的密码!尽管脚本README提示了,但是我就是眼瞎。
实际上,登录Windows的密码是由镜像决定的。比如我使用的秋水逸冰的镜像:
- 用户名是:Administrator
- 密码是:Teddysun.com
第三个坑:Windows的IPv6隐私保护
这是个让我困扰了好久的问题。如果你在Windows电脑上运行ipconfig /all
,你可能会发现有"临时地址"这么一说。这是因为Windows会"保护你的上网隐私",但在我这种只有/128的IPv6环境下,这反而成了问题:外界访问你的机器是通过那个固定的IP地址,但你的机器访问外界网站却用临时地址,这就导致能远程桌面连接,但访问不了外网。
解决方案也很简单,用管理员权限打开命令提示符:
netsh interface ipv6 set privacy state=disable
# 然后重启网卡就好了
第四个坑:纯IPv6环境的补救方案
这个问题也是源于我的特殊网络环境。没有IPv4访问权限确实很不方便,所以我使用了Cloudflare WARP来提供IPv4访问。但是要注意,如果直接使用Windows版的WARP,开启后会导致你的IPv6地址也变成WARP的地址,这样你就再也连不上远程桌面了!
我使用了Nodeseek论坛上一位老哥提供的方案(原帖链接):
- 下载安装CloudFlare WARP官方客户端
在WARP设置里:
- 点击右下角小齿轮→偏好设置
- 高级→配置代理模式
- 启用代理模式,设置一个好记的端口
相当于在你本地有一个Cloudflare提供IPv4出口的socks,这时候你喜欢怎么用都行了,你喜欢switchyomega,又或者是别的,你可以自己配置。这样配置后,就能在保持远程桌面连接的同时获得IPv4访问能力了。
第五个坑:LTSC的小问题
如果你和我一样选择了LTSC 2021版本的Windows,可能会发现wsappx
这个服务总是在后台运行。这个问题其实在远景论坛上有解决方案,感兴趣的可以看看这个帖子:LTSC优化教程