2018年9月

用DISM++还原Windows系统

Windows 7或以上版本的系统,安装较Windows XP之前有改变。相对来说,如今新版本的Windows备份和还原较之前方便。

本例,是将默认英文的Windows 2016还原之前备份好的Windows 2008 R2 SP1系统。

过程:

1.检查当前的C:分区容量,估算是否合适,个人建议可用容量30GB或以上
dism-restore-1.png

2.运行Dism++,在“恢复功能”菜单里选择“系统还原”
dism-restore-2.png

3.选择之前备份好的Windows 2008 R2 SP1备份文件(.wim),目的分区是C:
dism-restore-3.png

4.之后会自动进行“配置WinRE”和还原
dism-restore-4.png

5.等待约20分钟后,提示映像还原成功,询问是否重启,让更改生效
dism-restore-5.png

6.如本例,在重启前,检查一下C:\$windows.~bt\ipset.cmd文件,看脚本文件里边的IP地址是否符合实际,如不是,需修改后保存
dism-restore-6.png

7.重启系统,之后会自动执行ipse.cmd脚本,再次自动重启,以让新的计算机名设置生效。远程桌面连接,用原Windows 2008 R2 SP1 的密码登录,成功
dism-restore-7.png

参考:

使用Windows的“任务计划程序”来自动设置静态IP地址

环境:Windows 2008 R2 SP1

过程:

1.运行“任务计划程序”,创建基本任务
schtasks-1.png

2.填写任务名称,本例名称是 set ip address
schtasks-2.png

3.设置任务是在“计算机启动时”触发
schtasks-3.png

4.选择操作是是“启动程序”
schtasks-4.png

5.选择程序或脚本的路径,本例是在 C:\ipset.cmd
schtasks-5.png

6.计划任务设置完成
schtasks-6.png

7.在任务的属性框里,选择“不管用户是否登录都要运行”,之后“确定”,按提示输入管理员administrator的密码
schtasks-7.png

8.任务列表
schtasks-8.png

9.C:\ipset.cmd 的脚本内容

netsh interface ip set address "iEthernet" static 144.172.126.32 255.255.255.0 144.172.126.1
netsh interface ip set address "iEthernet2" static 192.168.0.73 255.255.255.0
netdom renamecomputer %COMPUTERNAME% /Newname "WINDR-%RANDOM%" /Force
shutdown.exe -f -r -t 30
schtasks.exe /Delete /TN "set ip address" /F
del C:\ipset.cmd

schtasks-9.png

参考:

在单IP的 proxmox 机子上创建 NAT 共享上网的 Windows 10 客户机

用较高配置的机子,安装 proxmox 来提供 kvm 虚拟化环境,创建包括Windows在内的客户虚拟机,是挺方便的。

本例是在已有的Debian9环境里,安装proxmox5,创建Windows10客户机。

过程:

1.vi /etc/hosts # 检查本机主机名是否与本机IP绑定好,如本例 144.172.126.32 drs2.anqun.org drs2,即drs2指向144.172.126.32
proxmox-debian-1.png

2.echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list # 添加 proxmox 安装源

3.wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg # 添加 proxmox 安装源的验证匙

4.echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 # 如果本机IPv6无法访问外网,可临时禁用IPv6

5.apt update && apt dist-upgrade # 更新软件安装源和升级系统

6.apt install proxmox-ve postfix open-iscsi # 安装 proxmox,这步耗时久些

7.reboot # 重启系统

8.浏览器访问https://ip-地址:8006,登录到proxmox管理台,如本例 https://drs2.anqun.org:8006,输入系统root用户及密码
proxmox-debian-2.png

9.先创建Linux Bridge的网络,等会创建虚拟机要用到
proxmox-debian-3.png

10.Linux Bridge vmbr0 的IP设置为10.10.10.1,掩码是255.255.255.0
proxmox-debian-4.png

11.开始创建虚拟机
proxmox-debian-5.png

12.Guest OS,客户机选择微软的Windows 10/Windows 2016
proxmox-debian-6.png

13.硬盘,本例是选择了 VirtIO Block,100 GB,RAW硬盘映像
proxmox-debian-7.png

14.CPU,本例是选择了四核心
proxmox-debian-8.png

15.内存,本例分配了8 GB
proxmox-debian-9.png

16.网络,本例选择了桥接的vmbr0,模型为 VirtIO
proxmox-debian-10.png

17.确认创建
proxmox-debian-11.png

18.启动机子后,可以打开 noVNC 控制台
proxmox-debian-12.png

19.echo 1 > /proc/sys/net/ipv4/ip_forward # 启用IPv4转发

20.iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERADE # 通过iptables,让位于10.10.10.0内网的客户机,经NAT访问互联网。其中eth0是proxmox里配置有公网IP的网卡名称

21.iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 43389 -j DNAT --to 10.10.10.2:3389 # 通过iptables,将公网43389端口转发到客户机10.10.10.2的3389,用于远程桌面连接

22.在客户机上安装好Windows10,开启远程桌面功能。从外网,用tcp 43389的端口进行远程桌面连接,成功
proxmox-debian-13.png

参考:

在超微凌动服务器 - MBI-6418A-T7H 上测试安装 Windows 2003

环境:机子型号 MBI-6418A-T7H,使用英特尔 C2000 系列芯片组,默认启用 AHCI ,使用 SATA 硬盘。

测试总结:咨询超微商家,回复凌动机型仅支持Windows7或以上版本的Windows,Windows 2003系统不支持。Windows 2003是约15年前的操作系统了,现已经停止技术支持,很难在如英特尔官方网站上找到可用的 AHCI 和 内置网卡驱动。如确实需要使用Windows 2003,建议是在虚拟机里运行。

过程:

1.AHCI 设备,硬件ID 是 DEV_1F32&CC_0106 ,在网上集成的SATA驱动里,使用到的文件是 iaStorB.sys 和 iaStorF.sys
sata-1.png

2.网卡设备,硬件ID是 DEV_1F45&CC_0200,目前没有找到适合Windows 2003系统的驱动
sata-2.png

3.简单的方法,是使用“老司机”制作好的dd Windows 2003精简和补丁包
sata-3.png

4.如果想使用自己的Windows 2003安装文件,需要模着“老司机的”dd包来掏文件,修改根目录下的 txtsetup.sif,在这里增加相应的 [SCSI],[SourceDisksFiles],[HardwareIdsDatabase]和[SCSI.Load]信息;修改 $WIN_NT$.~BT/WINNT.SIF文件内容,需要在OemPnPDriversPath里填写驱动文件的路径;在 $WIN_NT$.~BT 和 $WIN_NT$.~LS/i386 目录里增加 iaStorB.sys 的文件;在相应的路径里增加相应的驱动文件,如 DRV/I/a
sata-4.png

5.如果有英特尔官方提供的f6flpy驱动文件,也可以按微软官方文档在 [MassStorageDrivers] 里载入 SATA 驱动文件

6.试过很多方法,无法在Windows 2003里成功安装上网卡驱动
sata-5.png

参考:

用 alpinelinux 作为livecd OS完成dd硬盘数据复制

环境:debian 9 64位,alpinelinux 3.8

过程:

1.mkdir /liveos # 创建 /liveos 目录

2.mount -t tmpfs tmpfs /liveos # 设置 /liveos 为 tmpfs 类型

3.cd /liveos # 切换到 /liveos 目录

4.wget -O- http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/x86_64/alpine-minirootfs-3.8.0-x86_64.tar.gz|gzip -dc|tar xv # 下载 aplinelinux 文件包,解压
cusliveos-1.png
5.cp /etc/resolv.conf etc # 复制nameserver配置文件,这样可以以域名访问外网

6.mount --bind /dev /liveos/dev # 挂载 /liveos/dev,dd硬盘数据复制对象

7.mount --bind /dev/pts /liveos/dev/pts # 挂载 /liveos/dev/pts

8.mount --bind /proc /liveos/proc # 挂载 /liveos/proc

9.chroot . /bin/ash # chroot 到当前目录

10.wget -O- http://file.gz | gunzip | dd of=/dev/sda # 下载dd包,复制到sda硬盘

11.reboot -f # 重启
cusliveos-2.png
12.数据复制有效
cusliveos-3.png

参考: