[转]从零开始:在Linux上覆盖安装WINDOWS通用教程(dd)

2021-10-05 01:21

阅读:1094

标签:check   鼠标   text   驱动   content   释放   备份   ubi   ref   完整自制尚不方便,还有许多改进的地方.现在可以达到在单硬盘,无救援模式的情况下安装Winodws.再也不需要强制要求内存大于镜像包大小了. 本例所给的wget后链接均可用,教程是完整的. (原文链接:https://moeclub.org/2017/08/31/361/) 环境 DigitalOcean 512M Debian8 x64 目标 Windows Think PC (Windows 7 Embedded) 此教程适用于具有以下特征的机器:  宿主机提供的VNC 能够随意更换内核 GURB引导启动 准备工作:  较高版本的WINDOWS主机 (提供高版本的DISM API) Windwos原版镜像 (个人版,企业版 服务器版) DISM++ (打补丁,制作镜像) 以下步骤在DigitalOcean上测试成功: 制作可用的镜像文件:  下载镜像:下载地址个人版,企业版 服务器版 提取install.wim文件:解压或挂载都行,提取该文件到’E:\install.wim‘.文件路径\sources\install.wim 创建一个vhd虚拟磁盘:示例:盘符为’V‘,路径为’D:\win.vhd‘,大小为5120M.   以管理员身份打开命令提示符,然后输入: diskpart CREATE VDISK FILE=”D:\win.vhd” TYPE=FIXED MAXIMUM=5120 SELECT VDISK FILE=”D:\win.vhd” ATTACH VDISK CLEAN CREATE PARTITION PRIMARY FORMAT FS=NTFS QUICK ASSIGN LETTER=V 在D盘创建一个文件夹’D:\MOUNT‘,打开DISM++点文件–>挂载映像–>点第一个浏览,找到’E:\install.wim‘–>点第二个浏览,找到’D:\MOUNT‘–>不选中只读模式–>确定 在DISM++里进行优化,安装语言包,添加VirtIO驱动等操作备份下载VirtIO驱动 完成后,点文件–>另存为映像–>保存在’D:\install.wim‘,等待任务完成 点文件–>释放映像–>点第一个浏览,找到’D:\install.wim‘–>点第二个浏览,找到’V:\‘–>只选中添加引导和格式化–>确定–>在弹出的’引导修复-BIOS’对话框中点击更多–>找到盘符为V的磁盘分区–>确定 等待完成,在资源管理器中,在盘符为V的磁盘分区点击右键–>弹出.如有报错请认真看以上步骤. 使用gunzip工具压缩打包压缩’D:\win.vhd‘用法:gzip.exe -k9 D:\win.vhd.等待压缩完成.可点击gunzip for windows下载工具,或使用备份下载链接下载此工具.解压文件,将’bin‘目录中的文件放置’%WINDIR%/SYSTEM32‘文件夹中,即可方便在命令提示符中使用.实际上刚刚得到的’D:\win.vhd‘就是一个可直接dd的文件. 上传到可用HTTP直接下载的地方,最好不要包含跳转. 更新grub配置文件:  下载 Debian netboot mini.iso 到’/boot‘文件夹内.   1 wget -qO /boot/mini.iso https://moeclub.org/get-deb-livecd 在/boot文件夹/子目录内寻找GRUB配置文件.   如果GRUB的配置文件为’grub.cfg’:在文件的末尾添加   1 2 3 4 5 6 menuentry "Boot mini" { set isoimage="/boot/mini.iso" loopback loop (hd0,1)$isoimage linux (loop)/linux auto=true LANG=en_US.UTF-8 KEYTABLE=us netcfg/dhcp_options="Configure network manually" netcfg/dhcp_failed=note netcfg/get_nameservers=8.8.8.8 hostname=MoeClub domain=MoeClub.org -- quiet initrd (loop)/initrd.gz } 如果GRUB的配置文件为’grub.conf’: 获取本机的IP,子网掩码,网关并记录下来.一般控制台最下面有这些参数.如果没办法获取到这三项参数,可以用以下命令获取.代码片段摘自 Debian(Ubuntu)网络安装/重装一键脚本   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 DEFAULTNET="$(ip route show |grep -o ‘default via [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.*‘ |head -n1 |sed ‘s/proto.*\|onlink.*//g‘ |awk ‘{print $NF}‘)" [ -n "$DEFAULTNET" ] && IPSUB="$(ip addr |grep ‘‘${DEFAULTNET}‘‘ |grep ‘global‘ |grep ‘brd‘ |head -n1 |grep -o ‘[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}/[0-9]\{1,2\}‘)" IPv4="$(echo -n "$IPSUB" |cut -d‘/‘ -f1)" NETSUB="$(echo -n "$IPSUB" |grep -o ‘/[0-9]\{1,2\}‘)" GATE="$(ip route show |grep -o ‘default via [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}‘ |head -n1 |grep -o ‘[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}‘)" [ -n "$NETSUB" ] && MASK="$(echo -n ‘128.0.0.0/1,192.0.0.0/2,224.0.0.0/3,240.0.0.0/4,248.0.0.0/5,252.0.0.0/6,254.0.0.0/7,255.0.0.0/8,255.128.0.0/9,255.192.0.0/10,255.224.0.0/11,255.240.0.0/12,255.248.0.0/13,255.252.0.0/14,255.254.0.0/15,255.255.0.0/16,255.255.128.0/17,255.255.192.0/18,255.255.224.0/19,255.255.240.0/20,255.255.248.0/21,255.255.252.0/22,255.255.254.0/23,255.255.255.0/24,255.255.255.128/25,255.255.255.192/26,255.255.255.224/27,255.255.255.240/28,255.255.255.248/29,255.255.255.252/30,255.255.255.254/31,255.255.255.255/32‘ |grep -o ‘[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}‘${NETSUB}‘‘ |cut -d‘/‘ -f1)" [ -n "$GATE" ] && [ -n "$MASK" ] && [ -n "$IPv4" ] || { ipNum() {   local IFS=‘.‘   read ip1 ip2 ip3 ip4


评论


亲,登录后才可以留言!