前言
Windows to go,简称WTG,Win8以后的新功能,允许你把win8装到U盘或移动盘里,甚是高逼格。
微软列出了一个支持wtg的设备列表,但基本是天价,几款U盘+一款WD移动硬盘。
其实只要支持usb3.0基本就可以了,如果想做uefi支持,那还需要支持分区。个人推荐用移动硬盘搞。
WTG功能并不在普通版本里提供,所以这里就忽略官方的安装方式,只讲如何用ISO安装。
本人亲自动手,用自己的移动硬盘做的WTG,完全无损数据,不需要格式化。实现VHD方式的WTG,且支持mbr+uefi双启动。
准备工具
微软Imagex:【x64】【x86】这两个下载都是微软官方的链接,比较蛋疼,需要解压2次才能得到imagex.exe。有强迫症的可以下。
BCD编辑工具:【BOOTICE】 密码: byv2,这个工具比较全能,除了可以编辑、创建BCD文件外,还可以调整磁盘分区,调整引导等。
大致原理
WTG得益于微软的VHD,Microsoft Virtual Hard Disk format(虚拟磁盘),其实个人感觉与ISO类似,只是VHD更类似与虚拟机VM的那个单文件,可以是一个完整的系统在里面,可以被开机引导【Win8支持】,也可以进行分区,VHD是虚拟硬盘,ISO应该算是虚拟光盘。
因此,本文介绍的Win8安装U盘方式其实同意样适用于在本地硬盘装双系统用,你甚至可以在只有一个硬盘分区的情况下,装无数个系统,毕竟每个系统都成了个VHD文件,只是引导bcd文件来决定启动哪个文件,启动过程 = 载入VHD文件为系统盘并启动。 弄清楚这个原理,就比较好搞了。我们做的无非是两个工作:制作VHD、制作引导。
制作VHD文件
- 进入磁盘管理界面,可以是在“计算机”上右键=》“管理”=》磁盘管理。
- 菜单“操作”=》“创建VHD”,个人建议选择“动态扩展”以便节省移动盘U盘空间【盘小了可以扩,大了不可以减】,容量的话根据需要来,就等于给C盘分配容量,我调的是50G。
- 创建完毕后,在磁盘管理界面里会出现一个新磁盘,在磁盘上右键初始化,随后在旁边的未分配空间上右键建立简单卷,一路下一步完成。你会发现已经多出来一个磁盘,这个磁盘便源自于新建的VHD文件。
- 现在开始把Win8打到VHD文件里,这里需要用到微软的Imagex以及一个Win8系统。把Win8系统的iso解压好做好准备。假设Win8解压在D:\win8\,假设VHD产生的磁盘为F盘。
- 用管理员权限打开cmd或powershell,进入Imagex所在目录,输入imagex.exe /apply D:\win8\sources\install.wim 1 F:,等待将近5-10分钟后显示100%,Win8的系统就释放到了F盘。
- 回到磁盘管理,在VHD产生的磁盘上右键,“分离 VHD”,注意需要在磁盘左侧右键:
- 这样,你的VHD文件就做好了,将VHD文件放到移动硬盘或U盘里,准备做引导。
制作普通引导
制作引导是一件比较蛋疼的事情,特别是做针对uefi支持的,会更加麻烦。
如果不需要做UEFI支持,那么对U盘或移动硬盘的分区没有什么要求,NTFS也没有问题:
- 打开前面下载的工具BOOTICE。“物理磁盘”选项卡,选择你的U盘或移动硬盘,点击“主引导记录”,选择最后一项“windows NT 5.x / 6.x MBR”,点击“安装/配置”,选择中间的6.x,完成。
- 返回到Bootice主界面,“BCD编辑”选项卡,点击“新建 BCD”,选择位置时,放置在于你的U盘或移动硬盘内第一个分区【注意不是在VHD挂载的虚拟盘内】,假设你的移动硬盘首个分区是H盘,那么新建的BCD文件应该在H:\BOOT\BCD
- 创建好之后,点击“智能编辑”,点击“添加”=》“新建VHD启动项”。
- 随后按照下图完成BCD文件的编辑,注意,【启动磁盘】选你的移动硬盘或U盘,【启动分区】选择你的VHD文件所在盘,建议在第一个,【设备文件】填写你之前创建好并复制进U盘的文件名即可。
- 随后“保存全局设置”,这样BCD引导文件就做好了。
- 最后一步,将你的VHD文件以及BCD文件所在盘设为“活动”,可在BOOTICE的“物理磁盘”=》“分区管理”=》“激活”按钮实现,也可以到windows系统自带的磁盘管理实现,在此不再赘述。
制作UEFI支持的Win8(WTG+MBR+UEFI)
UEFI可以简单理解为更快速的BIOS,目前不少主板已经默认支持BIOS+UEFI,其中还有一些厂商只支持UEFI的,例如微软的Surface,使用普通引导的WTGwin8将无法在Surface启动。
网上找了非常多教程都没能实现WTG+UEFI+MBR的实现,基本上都是针对本地硬盘的UEFI+MBR实现方法。
最后自己用BOOTICE直接改其他EFI的BCD文件实现了,实测Surface可引导,大概思路如下:
- 使用傲梅分区助手在移动盘内分出一块100M左右的分区,做成FAT32格式【UEFI只能认MBR下的FAT32】,我把它称作100M盘吧。
- 网上有些教程有误导,让人以为必须把整个盘变成GPT才能支持UEFI【GPT和MBR均为分区表,GPT对应UEFI,MBR对应BIOS】,实际上UEFI还是可以读MBR分区表下的信息的。
- 在100M盘中建立目录/efi/boot,还是蛮简单的吧,然后准备两个文件,BCD以及bootx64.efi,BCD文件可以直接沿用普通引导的那个BCD,唯一需要修改的是【属性】中的启动文件,改成“\windows\system32\winload.efi”,bootx64.efi文件可以从你的win8 iso文件里/efi/boot文件夹内提取~
- 实在找不到的可以下我提取出来的:http://pan.baidu.com/s/1gdg1M0b 密码:s8xb,里面有个我自用的BCD,以及win8.1和win10的bootx64.efi文件,建议用win10的
- 如果使用本人网盘里的BCD,建议自行添加一个VHD启动项生成新的GUID后,照着原来的启动项修改【启动磁盘】【启动分区】以及【设备文件】。
- 最后把100M分区隐藏,这步是可选的,但保险起见最好隐藏起来,在Bootice的“物理磁盘”=》“分区管理”=》选中100M的盘=》“隐藏”。
关于UEFI的个人笔记
- EFI可以理解为UEFI的前身或者说是上一版本,苹果电脑很早就已经使用EFI;
- 实测EFI文件所在分区隐藏或不隐藏都不会影响EFI的引导;
- 实测EFI文件所在分区是否活动不会影响EFI的引导;
- 两种目录结构都可以实现EFI引导:1、/efi/boot/BCD + /efi/boot/bootx64.efi 2、/efi/microsoft/boot/BCD + /efi/boot/bootx64.efi,其他文件本人测试过去掉并不影响引导,只是界面简陋一些,并没有中文语言;
- bootx64.efi文件可以从你的系统安装ISO文件中的/efi/boot目录里拿;
- 本人实测使用win8.1的bootx64.efi,无法引导Surface上安装的Win10,使用Win10的ESP分区中提取出来的bootx64.efi,可以成功引导移动硬盘的Win8与本地硬盘的Win10,原因可能是bootx64.efi文件向下兼容?
- 发现win8和win10均有两个winload.efi,一个在/windows/system32/下,一个在/windows/system32/boot/下,有什么区别有待研究【检测过两个efi的sha是完全一样的,就是同一个文件】。
- win10的bootx64.efi文件比win8的反而小0.3M。
- 我在搞定win8双启动后,尝试使用同样方式搞个Win10,Uefi引导启动安装失败,提示无法修改引导,普通引导成功启动并安装。
- Win7直接卡在winload.efi,虽然win7的iso是有efi文件的,但似乎不支持uefi+vhd方式。bios+vhd+win7有待尝试。