[教程]自制Linux可用的Windowsdd包

2022-5-16 18:45| 发布者: Hocassian| 查看: 53| 评论: 0|原作者: 神代綺凜

摘要:
C:\Users\Administrator\Downloads\神代綺凜\2019-10-15-14-34-56-19827339504800-文章归档 - 神代綺凜の萌化小基地-采集的数据-后羿采集器.html

标题

[教程] 自制 Linux 可用的 Windows dd包

标题链接

https://moe.best/tutorial/dd-diy.html

正文

不折腾不舒服星人(比如我)可以自己动手丰衣足食_(:3」」

Head Pic: 「夕立」/「大腿外側(太もも」のイラスト [pixiv]

自制 Linux 可用的 Windows dd包

由于自己想 dd 的时候并没有 Server 2008 R2 中文版的 dd 包,而用英文包再安装中文语言之后仍会出现一些莫名其妙的 bug,因此自己做了一份,并且将过程在此文中记录下来

相关教程:

准备工作

  1. Windows 原版镜像,可以在 MSDN 下载
  2. DISM++,用于 DIY 以及优化 wim 镜像
  3. 虚拟化驱动
  4. 下载 gunzip for windows 备用下载点
    或者你也可以直接去安装 Cmder(官网),其自带有 gzip(顺便安利一下这个可以在 Win 下执行大多数 Linux 命令的超好用的命令行程序)
  5. 在计算机上安装 Hyper-V(Win8/10 开启 Hyper-V 教程),准备用于对制作好的 vhd 映像进行测试

开始制作

1. 制作可用的镜像文件

  1. 首先需要取出准备好的 WIndows 原版镜像中的\sources\install.wim文件,直接解压ISO或挂载虚拟光驱都行,把这个文件复制出来,比如复制到E:\install.wim
  2. 在D盘创建一个文件夹D:\MOUNT,打开 DISM++
    点击:文件–>挂载映像–>点第一个浏览,找到E:\install.wim–>点第二个浏览,找到D:\MOUNT–>不选中只读模式–>确定
    点击确定之前顺便记一下映像的展开大小
  3. 创建一个 vhd 虚拟磁盘
    示例:盘符为V,路径为D:\win.vhd,大小为8192M(这个大小比上面你记住的映像展开大小大 1GB 左右即可,例如我在本例中制作的 2008R2 的展开大小为 6.9GB,因此我将 vhd 大小设置为 8GB)
    首先以管理员身份运行命令提示符或者 PowerShell,然后执行以下命令
    1
    2
    3
    4
    5
    6
    7
    8
    9
    diskpart # 以下命令实际上可以复制粘贴一次性执行,无需分条 CREATE VDISK FILE="D:\win.vhd" TYPE=FIXED MAXIMUM=8192 SELECT VDISK FILE="D:\win.vhd" ATTACH VDISK CLEAN CREATE PARTITION PRIMARY FORMAT FS=NTFS QUICK ASSIGN LETTER=V
  4. 回到 DISM++,进行系统设置优化(建议关闭 UAC)、安装语言包、添加先前下载好的虚拟化驱动等
  5. 完成后,点文件–>另存为映像–>保存在D:\install.wim,等待任务完成
  6. 点击:文件–>释放映像–>点第一个浏览,找到D:\install.wim–>点第二个浏览,找到V:–>只选中添加引导格式化–>确定–>在弹出的“引导修复-BIOS”对话框中点击“更多”–>找到盘符为 V 的磁盘分区–>确定
  7. 等待完成

2. 设置系统的注册表

新版 Dism++ 会自动帮你挂载当前映像的注册表,可以不用再按照前几步手动加载配置单元了
  1. 在自己的电脑上打开注册表编辑器regedit,选中HKEY_LOCAL_MACHINE分支,点击:文件->加载配置单元
  2. 在文件浏览器中选择V:\Windows\System32\config\SYSTEM,项名称填一个好找又不和目前项相同的,例如A_SYSTEM
    然后更改如下键值以开启远程桌面服务

    RegKey HKEY_LOCAL_MACHINE\A_SYSTEM\ControlSet001ValueTypeData
    打开远程桌面服务\Control\Terminal ServerfDenyTSConnectionsREG_DWORD0
    设置远程桌面端口\Control\Terminal Server\Wds\rdpwd\Tds\tcpPortNumberREG_DWORDd3d
    \Control\Terminal Server\WinStations\RDP-TcpPortNumberREG_DWORDd3d
    设置不验证用户级别\Control\Terminal Server\WinStations\RDP-TcpUserAuthenticationREG_DWORD0
    防火墙允许远程桌面\services\SharedAccess\Parameters\FirewallPolicy\FirewallRulesRemoteDesktop-In-TCPREG_SZ把其中的Active=FALSE改为TRUE
    同上RemoteDesktop-UserMode-In-TCP同上同上
  3. 继续按照先前步骤加载配置单元V:\Windows\System32\config\SOFTWARE,项为A_SOFTWARE
    然后更改如下键值以关闭 Ctrl+Alt+Del 登陆

    RegKey HKEY_LOCAL_MACHINE\A_SOFTWARE\MicrosoftValueTypeData
    \Windows\CurrentVersion\Policies\SystemdisablecadREG_DWORD1
    \Windows NT\CurrentVersion\WinlogonDisableCADREG_DWORD1
  4. 选中我们加载的配置单元,点击:文件->卸载配置单元,将A_SYSTEMA_SOFTWARE卸载

3. 制作预应答文件

  1. 下载 Microsoft Windows AIK
    创建编录文件的时候会自动挂载镜像到系统盘,请确保系统盘有大于映像展开大小的剩余空间。

    貌似仅适用于制作 Windows 7 以及 Server 2008 R2 的,如果是其他系统不知能不能制作,也可以尝试直接照搬我提供的预应答文件

  2. 安装完成后,打开“Windows 系统映像管理器”,点击:文件->选择 Windows 映像,然后选择我们已经在前面的步骤中优化好的 wim 文件,然后会提示你需要创建编录文件,选是即可
  3. 等待加载完成,然后仿照 这个预应答文件 进行制作(文件内容见附录)
    这个预应答文件将会设置用户名Administrator的密码为lolico.moe123
    我给出的这个预应答文件可以直接用于 Win7/10 x64。
    软件的具体使用方法可以百度一下有很多范例,讲起来比较复杂,理解能力强的人看一看就会用,因此此处不再赘述
    如果你要制作的是 Win7 或者 Server2008R2 的 64 位 系统,也可以使用此软件打开,然后在这个文件的基础上进行修改
  4. 制作完成之后保存预应答文件为unattend.xml,然后放在V:\Windows\Panther目录下(如果没有目录就自行新建)
  5. 在我的电脑中右击V盘,弹出

3. 对制作好的 dd 包进行测试

  1. 先将你制作好的 vhd 复制一份,用复制的这份来测试,这样的话如果出现了错误就不用再重新制作,可以继续修改
  2. 打开 Hyper-V,点击:操作->新建->虚拟机
  3. 名称和位置随便选,指定代数选择“第一代”,内存分配你觉得足以启动系统即可,配置网络不用管;
    连接虚拟硬盘选择“使用现有虚拟磁盘”,接着指定我们刚才制作的 vhd 虚拟磁盘,之后的设置都维持默认即可
  4. 启动虚拟机,观察是否有进行自动安装等操作,成功的话就可以关掉虚拟机并删掉使用过的 vhd 了

4. 将 dd 包部署在服务器上

  1. 使用 gunzip 工具压缩打包压缩D:\win.vhd

    • 使用 gunzip for windows
      将 gunzip 程序目录中的bin目录里的所有文件复制到%WINDIR%/SYSTEM32,接着在命令提示符内进入 vhd 所在目录,执行gzip.exe -k9 win.vhd
    • 使用 cmder 自带 gunzip
      在 cmder 中进入 vhd 所在目录,执行gzip -k9 win.vhd

    然后耐心等待压缩完成
    这样我们就得到了一个可以用来脚本一键 dd 的包

  2. 将这个压缩包传到可用 HTTP 直接下载的地方,最好不要包含跳转,然后就可以拿来使用 [Linux] 一键全自动 dd 安装 Windows 脚本一键 dd 了

附录:预应答文件内容及说明

存放目录:%WINDIR%/Panther/unattemd.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<!-- Windows Server 2008 R2 x64 预应答文件示例 --> <?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="specialize"> <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RunSynchronous> <!-- 启用 Administrator 账户 --> <RunSynchronousCommand wcm:action="add"> <Order>1</Order> <Path>net user Administrator /active:Yes</Path> </RunSynchronousCommand> </RunSynchronous> </component> </settings> <settings pass="oobeSystem"> <!-- 设置语言 --> <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <InputLocale>007f:00000804</InputLocale> <SystemLocale>zh-CN</SystemLocale> <UILanguage>zh-CN</UILanguage> <UILanguageFallback>zh-CN</UILanguageFallback> <UserLocale>zh-CN</UserLocale> </component> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- 设置自动登录 --> <AutoLogon> <Password> <Value>bABvAGwAaQBjAG8ALgBtAG8AZQAxADIAMwBQAGEAcwBzAHcAbwByAGQA</Value> <PlainText>false</PlainText> </Password> <Enabled>true</Enabled> <LogonCount>9999999</LogonCount> <Username>Administrator</Username> </AutoLogon> <!-- 隐藏安装时的配置界面以及跳过部分配置 --> <OOBE> <HideEULAPage>true</HideEULAPage> <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> <NetworkLocation>Work</NetworkLocation> <ProtectYourPC>3</ProtectYourPC> <SkipMachineOOBE>true</SkipMachineOOBE> <SkipUserOOBE>true</SkipUserOOBE> </OOBE> <!-- 设置 Administrator 的密码 --> <UserAccounts> <AdministratorPassword> <!-- 密码在 xml 文件中为 Base64 加密,在程序中编辑时是明文 --> <Value>bABvAGwAaQBjAG8ALgBtAG8AZQAxADIAMwBBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAFAAYQBzAHMAdwBvAHIAZAA=</Value> <PlainText>false</PlainText> </AdministratorPassword> </UserAccounts> <!-- 设置时区 --> <TimeZone>China Standard Time</TimeZone> </component> </settings> <settings pass="windowsPE"> <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- 设置界面语言 --> <SetupUILanguage> <UILanguage>zh-CN</UILanguage> <!--下面这句实际上原本并没有被注释,只是不注释的话 Markdown 解析会出问题,不知道是什么莫名其妙的BUG,后面还有一句被一模一样的被注释的语句同理--> <!--<WillShowUI>OnError</WillShowUI>--> </SetupUILanguage> </component> <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- 设置隐藏选择安装映像的界面 --> <ImageInstall> <OSImage> <!--<WillShowUI>OnError</WillShowUI>--> <!-- 如果是多版本系统的 wim 则还需要配置下面的这个<InstallFrom>设置需要安装的系统版本,如果是按照教程使用 Dim++ 制作的 wim 就无需设置,因为已经提取出单版本了--> <InstallFrom> <MetaData wcm:action="add"> <Key>/IMAGE/NAME</Key> <Value>(系统名)</Value> </MetaData> </InstallFrom> </OSImage> </ImageInstall> <UserData> <!-- 设置安装时不激活(就算要激活也没有网络) --> <ProductKey> <Key></Key> </ProductKey> <AcceptEula>true</AcceptEula> </UserData> </component> </settings> </unattend>
搬瓦工VPS优惠套餐,建站稳如狗,支持支付宝,循环出账94折优惠码BWH26FXH3HIQ
年付$28CN2线路,1核/512M内存/10G硬盘/500GB@1Gbps【点击购买】(经常售罄,请抓紧机会)
年付$47CN2线路,1核/1G内存/20G硬盘/1T@1Gbps【点击购买
最后修改:2018 年 12 月 04 日 07 : 04 PM
如果觉得我的文章对你有用,请随意赞赏

文章信息

中二病患者: 神代綺凜  发布时间:2017 年 12 月 03 日  10142 次浏览   10 条评论  10101 字数 分类: 教程


路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部