qj_tzy 发表于 2011-2-26 15:13:39

VBOOT及WinXP_VHD辅助工具安装VHD系统等的用户使用经验汇总(7月28日更新)

7月28日更新:已用软盘映像文件解决快速还原问题:此法支持普通隐藏或EISA隐藏的NTFS分区及长文件名,且还原后,子VHD文件的大小与时间,与备份VHD文件的大小与时间完全相同。由于帖子字数的限制,本帖文本内容未作更改,请详见下贴
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=197753&extra=page%3D1

7月16日更新:(2010ttt操作)重新改版,使版面更清晰易读。
4月09日更新:把vboot菜单打包成一个ima文件启动vboot的方法;
                  在VHD文件中安装并启动多个操作系统

4月05日更新:在vboot中添加VHD系统的快速还原菜单

3月29日更新:vboot菜单使用小经验

3月23日更新:将vboot启动的VHD系统转换为在分区中的系统的方法(含附件)

3月18日更新:将安装在分区中的winxp/win2003/winvista/win2008/win7/win2008r2系统转换为由vboot启动的VHD系统的方法

3月15日更新:按照网友2011huisinro提供的方法,解决了winvista/win2008安装后,系统盘符如何由D:变C:的问题

(其他部分也作了些小更新)

以下是本人参照《VMLite VBoot 1.0 操作指南》,并从网上搜索,经网友指点和本人试验后写出的经验汇总。对其中的错误和不妥之处,及我没有搞清楚的地方,望请多多指正和指点。
=====================================================================================================================
目录:一、vboot菜单使用小经验
二 、WinXP_VHD软件(lianjiang发布)的使用问题
三、将vboot启动文件及VHD文件移动到其他分区并隐藏的说明
四、建立差分系统问题
五、vboot安装winvista/win2008/win7/win2008r2的vhd系统的方法
六、安装在分区中的系统与vboot启动的VHD系统的相互转换
七、其他有关问题
=====================================================================================================================
正文:
一、vboot菜单使用小经验
1.启动某一分区的操作系统
如:
menuentry "windows 7" {
chainloader (hd0,4)+1
}
2.调用grub4dos、ntldr、bootmgr等启动管理器
①调用grub4dos
menuentry "grub4dos menu" {
linux16 (hd0,2)/grub/grub.exe --config-file="configfile (hd0,1)/grub/menu_gfx.lst"
}
注:因执行vboot菜单时是16位环境,所以用linux16,而不能用linux(linux在winpe、windows等32位环境中运行);且因grldr、ntldr、bootmgr均是32位程序,所以既不能用linux16、又不能用linux调用它们,只能通过grub4dos的grub.exe+linux16调用它们。grub.exe不能内置菜单,若已内置了菜单,第二句改为:linux16 (hd0,2)/grub/grub.exe
也可如下强行启动grub4dos的grldr:
menuentry "grub4dos Menu-grldr" {
linux16 (hd0,3)/grub/grub.exe --config-file="rootnoverify (hd0,2);chainloader --force /grldr.mbr"
}

②调用ntldr
menuentry "ntldr menu" {
linux16 (hd0,2)/grub/grub.exe --config-file="rootnoverify (hd0,1);chainloader /ntldr"
}
③调用bootmgr
menuentry "bootmgr" {
linux16 (hd0,2)/grub/grub.exe --config-file="rootnoverify (hd0,1);chainloader /bootmgr"
}
④调用激活文件启动bootmgr以启动winvista/win2008/win7/win2008r2及其VHD系统(含win7/win2008r2的原生VHD系统)
若用Windows 7 Loader 1.9.5激活的激活文件为XQAPR、win7.ld(或为其他名称。老激活方法的激活文件可能为grldr,调用方法相同),则如下调用(将启动win7.ld所在分区的bootmgr):
menuentry "win7 VHD" {
linux16 (hd0,2)/boot/grub/grub.exe --config-file="rootnoverify (hd0,5);chainloader /XQAPR"
}
但如下调用无法执行:
menuentry "win7 VHD" {
set root=(hd0,6)
linux16 /XQAPR (注:此句为linux /XQAPR也不行)
}
3、启动光盘映像文件
①用其本身功能启动winpe的ISO文件
如下可启动win2003pe或win7pe(直接运行方式,不先装入内存):
menuentry "win2003PE" {
vboot cdrom=(UUID=f014a69714a66078)/grub/03pe_45m.iso
}
menuentry "win7PE" {
vboot cdrom=(UUID=f014a69714a66078)/grub/win7pe_ty.iso
}
②用syslinux4.03的memdisk启动iso文件
menuentry "win2003PE" --class windows {
set root='(hd0,2)'
linux16 /grub/memdisk iso raw
initrd16 /grub/woxin03pe.iso
}
注:要将syslinux4.03的memdisk复制到/grub/目录下。
但使用vboot本身的memdisk.mod未成功(不知该如何调用之,以下两例均未成功):
menuentry "win2003PE" --class windows {
set root='(hd0,2)'
insmod memdisk
linux16 memdisk iso raw
initrd16 /grub/woxin03pe.iso
}
或如此也未成功:
menuentry "win2003PE" --class windows {
set root='(hd0,2)'
linux16 /vboot/grub/memdisk.mod iso raw
initrd16 /grub/woxin03pe.iso
}
③通过grub4dos的grub启动ISO文件
menuentry "win2003PE" {
linux16 (hd0,2)/grub/grub.exe --config-file="map --mem --read-only (hd0,1)/grub/woxin03pe.iso (hd32);map --hook;chainloader (hd32)"
}
4、启动软盘映像文件
①用其本身功能启动软盘映像文件未成功
menuentry "MSDOS710_1.44M" {
vboot floppy=(UUID=f014a69714a66078)/grub/MSDOS710.IMG
}
注:调用1.44M、2.88M还是其他非标准容量的img、ima格式的软盘映像文件,均未成功。据网上说,是因grub2有bug,不能启动软盘映像文件。不知是否这一原因。
使用vboot本身的memdisk.mod未成功:
menuentry "DOS_TOOLS" --class windows {
set root='(hd0,2)'
linux16 /vboot/grub/memdisk.mod img raw
initrd16 /grub/dos_sshy.img
}
或如此也未成功:
menuentry "DOS_TOOLS" --class windows {
set root='(hd0,2)'
insmod memdisk
linux16 memdisk img raw
initrd16 /grub/dos_sshy.img
}
②通过grub4dos的grub启动软盘映像文件(可用此法调用标准或非标准的img、ima格式的软盘映像文件)
menuentry "DOS_TOOLS" {
linux16 (hd0,2)/grub/grub.exe --config-file="map --mem --read-only (hd0,1)/grub/dos_sshy.img (fd0);map --hook;rootnoverify (fd0);chainloader (fd0)+1"
}
③用syslinux4.03的memdisk启动软盘映像文件(可用此法调用标准或非标准的img、ima格式的软盘映像文件)
menuentry "DOS_TOOLS" --class windows {
set root='(hd0,2)'
linux16 /grub/memdisk
initrd16 /grub/dos_sshy.img
}
但如下在memdisk后加参数则不成功:
menuentry "DOS_TOOLS" --class windows {
set root='(hd0,2)'
linux16 /grub/memdisk img raw
initrd16 /grub/dos_sshy.img
}
5.使用中文菜单标题
一是要loadfont /vboot/fonts/unicode.pf2成功(unicode.pf2支持中文);二是要使用UTF-8编码,若是使用Windows的写字板(推荐在winxp下使用写字板notepad.exe,可显示unicode格式的一些特殊字符,但将该notepad.exe复制到WINPE或其他windows系统中使用时,则不能显示这些特殊字符)把ANSI另存为UTF-8的话,在文件的开始处会多出三个字符 EF BB BF, 需要使用UltraEdit等二进制编辑工具把它们去掉(改为00 00 00即可。对linux系统必须如此改动;对windows系统可改可不改)。由此,即可把菜单标题改为中文。
如:
menuentry "reboot(重启电脑)" {
reboot
}
menuentry "halt(关闭电脑)" {
halt
}
6.使用自己的背景图片及菜单颜色设定
①使用photoshop编辑某一图片,使之与vmlite-logo.jpg的参数相同(RGB颜色、8位通道、1024×768像素、分辨率120像素,16.7K大小;大小不需相同),存为jpg类型。注意:图片的分辨率要与grub.cfg中此句的设定要相同:set gfxmode=1024x768
②将图片导入到windows自带的画图程序再另存为jpg类型(此步很重要,否则不能显示背景图片)。
③使用如下命令调整菜单的正常色和高亮色,使之不与图片的颜色冲突:
set menu_color_normal=white/black
set menu_color_highlight=red/white
可供使用的菜单颜色有:
black,blue,green,cyan,red,magenta,brown,light-gray,dark-gray,light-blue,light-green,light-cyan,light-red,light-magenta,yellow,white
============================================================================================================
二 、WinXP_VHD软件(lianjiang发布)的使用问题
(一)解决杀毒软件错报毒问题
WinXP_VHD_2011在安装有杀毒软件的系统中,可能会报有毒(但实际无毒),并将此软件删除。因此:
1.建议最好在无杀毒软件环境的WINPE3.0中使用;
2.要保存其RAR压缩包,若被杀毒软件删除后,可从此RAR压缩包中再解压。
(二)能辅助安装的VHD系统
经测试,WinXP_VHD目前只能安装ghost(克隆版,安装源为*.gho)或setup(源安装版,安装源为*.iso)的winxp、win2003系统。且原建立的vhd文件不能太大(在8G以下没问题,10G及以上就出问题)的问题已解决。
尚不能安装winvista/win2008/win7/win2008r2的vhd系统:若安装源为克隆版,虽能走完整个安装过程,但重启后进入winvista/win2008/win7/win2008r2的vhd系统之一后蓝屏(但可参照以下的方法修改注册表即可);若安装源为安装版,则在安装的中途就退出。
(三)软件自动导入vboot驱动问题
WinXP_VHD将系统生成到vhd文件后,会询问是否导入vboot驱动,一定要选是,因该步除拷入vboot的部分文件(包括vbootldr.mbr、vbootldr及vboot目录,且vboot\grub目录下的grub.cfg的配置项已改。)到C:\目录下;且自动判断C:盘的系统是winxp或是win7,将会更改boot.ini(对winxp系统)或bcd配置(对win7系统)文件。还将驱动文件vbootdsk.sys拷入vhd文件中,并改写vhd系统的注册表。因手动做该步有难度,所以一定要选是。只不过WinXP_VHD辅助处理工具2011【基于vboot 1.0】,导入的VBOOT文件及VHD中的vbootdsk.sys驱动均是1.0版的,且驱动时间已过期(2011.2.15过期),通过时间破解后还能使用。WinXP_VHD辅助处理工具2011【基于vboot 1.1】,导入的VBOOT文件及VHD中的vbootdsk.sys驱动均是1.1版的,驱动时间要到2011年5月11号过期。
注:用vboot1.0装的VHD系统升级vboot到1.1版的VHD系统的方法:
install vboot v1.1
then run the following command:
\vboot\tools\x86\vbootctl update current (if booted from the virtual disk)
\vboot\tools\x86\vbootctl update \path\your.vhd (offline)
注:①从vboot1.1老版本上安装的系统,也要按上法升级到vboot1.1新版本支持的系统(即VHD中的驱动程序升级)。
    ②按上法对WINXP升级成功;但对WIN2003未升级成功,而用WinXP_VHD_2011软件重新生成WIN2003.VHD才成功。
    ③VBOOT驱动可如下离线打到VHD系统中去:vbootctl.exe prepare \path\file.vhd
       win7、win2008r2原生VHD即用此命令将VBOOT驱动离线打到VHD中去的,详见如下的方法。
(四)运行前对生成的vhd文件(如winxp.vhd)的处理
1、winxp.vhd须放在ntfs分区中,且该分区一般不小于20G。
2、在win7或win7pe中挂载winxp.vhd,若其内的分区格式为FAT32,启动后会蓝屏,须将其转为ntfs分区,方法如下:
开始——运行——cmd——输入convert 磁盘名: /fs:ntfs
这里的磁盘名可以是电脑中的任意盘,如c,d,e,f
如果将D盘从FAT32格式转换为NTFS,在DOS里直接输入以下命令即可:
convert D: /fs:ntfs
若要将当前系统C盘转为NTFS格式,发命令后需重启时再转换。
注:网上有网友说:启动分区是fat32的,vhd硬盘格式也必须是fat32(但有不超过4G的限制);启动分区是ntfs格式,vhd硬盘也必须是ntfs格式。否则,启动蓝屏。对32位和64 位系统均如此。
3、用bootice软件打开winxp.vhd挂载的盘,将其主引导记录改为nt5.x,将其分区引导记录改为ntldr。
(五)用WinXP_VHD安装win2003.vhd的问题
用WinXP_VHD软件,参照winxp的方法安装win2003.vhd,但需将vboot.img更换为vboot-2k3.img;ISO文件更换为GHOST2003SP2.ISO,且按如下样本更改vboot\grub\grub.cfg即可。
enuentry "win2003 VHD" {
vboot harddisk="(UUID=0a26be0026bded37)/vhd_sys/win2003s.VHD"
}
menuentry "win2003 Install Step 2" {
vboot harddisk="(UUID=0a26be0026bded37)/vhd_sys/win2003s.VHD" cdrom=(hd0,1)/vhd_sys/GHOST2003SP2.ISO boot=harddisk
}
menuentry "win2003 Install Step 1" {
vboot harddisk="(UUID=0a26be0026bded37)/vhd_sys/win2003s.VHD" floppy=(hd0,1)/vboot/vboot-2k3.img cdrom=(hd0,1)/vhd_sys/GHOST2003SP2.ISO boot=cdrom
}
(六)解决已安装的win7等系统不能启动的问题
WinXP_VHD软件运行完后,已安装在本地硬盘的winvista/win7/win2008/win2008r2等用bootmgr启动管理器启动的系统,可能无法启动了。若如此,是因启动配置文件BCD中的主入口{bootmgr}及系统入口如{c9035738-e7b7-11df-9a4b-fc1b310b3614}下的device项及osdevice项的partition=x: 均被置成了unkonwn,需用bcdtool等工具将其改回。如bootmgr启动管理器(含bootmgr及boot目录)在f:盘,主入口{bootmgr}的device项(无osdevice项)的partition=f:;若系统在j:盘,其下的device项及osdevice项的partition=j:即可。
============================================================================================================
三、将vboot启动文件及VHD文件移动到其他分区并隐藏的说明
1、将vboot启动文件移动到其他分区
可将vbootldr.mbr、vbootldr及vboot目录移动到任一主分区或任一逻辑分区,且可将该分区设为EISA配置的隐藏分区,如hd(0,1)盘,须将原C:盘的boot.ini或bcd文件改回原样。
①可用以下命令将启动文件和目录改为隐藏+系统+只读属性:
attrib +h +s +r vbootldr.mbr
attrib +h +s +r vbootldr
attrib +h +s +r vboot /s /d
②用grub4dos启动vboot,命令如下:
title Vboot Menu
rootnoverify (hd0,1)
chainloader vbootldr.mbr
对于新版的grub4dos 0.4.5,还可按如下启动vboot:
title Vboot Menu
kernel /vbootldr
③用syslinux启动vboot,命令如下:
LABEL vboot
MENU LABEL [^V] Vboot Menu
      kernel /vbootldr.bin
其中:vbootldr.bin是将vbootldr.mbr复制一份并更名而来。
若采用如下不能启动:
LABEL vboot
MENU LABEL [^V] Vboot Menu
      kernel /vbootldr.mbr

LABEL vboot
MENU LABEL [^V] Vboot Menu
      kernel ldntldr
append initrd=/vbootldr.mbr

LABEL vboot
MENU LABEL [^V] Vboot Menu
      kernel ldntldr
append initrd=/vbootldr
④将vboot作为主启动管理器
方法一:将其引导记录装到硬盘MBR中
x:\vboot\vbootedit install /drive x: /mbr
注:上句命令中的x:盘可为主分区,也可为逻辑分区,且均可为EISA配置的隐藏分区;MBR引导时,将逐一搜索本硬盘各分区(搜索顺序为分区1-分区N)根目录的vbootldr.mbr、vbootldr及vboot目录,因此,要想从x:盘启动,x:盘之前的各盘根目录下须均无vbootldr.mbr、vbootldr及vboot目录。
方法二:装入分区引导记录
用bootice软件,修改硬盘主引导记录为nt5.x或nt6.x;将vboot所在的激活主分区的分区引导记录更改为grub4dos但引导文件更名为vbootldr。硬盘启动时,即直接启动vbootldr进而启动vboot菜单。
2、将\vboot_vhd\*.vhd移动到其他盘的问题
一般系统VHD文件如winxp.vhd在第一个或其他主分区生成,可将其移动到任一主分区或任一逻辑分区,且可将该分区设为EISA配置的隐藏分区。且可用attrib +h +s +r vboot_vhd /s /d命令隐藏该目录。
其要点是vboot\grub\grub.cfg的启动项要用UUID号方式(此方式兼容性最好),如:
menuentry "XP VHD" {
vboot harddisk="(UUID=320ceab80cea766f)/vboot_vhd/winxp.vhd"
}
在windows中,可用\vboot\vbootedit uuid x:命令查看x:盘的uuid号。
在VBoot Loader中,可用probe -u (hd0,1)命令获取一个卷的UUID。
当然,也可使用hd0,n)方式,即将(UUID=320ceab80cea766f)全部替换为(hd0,n)。
注:(hd0,n)中的n为grub2(非grub4dos)确定的硬盘分区编号,主分区为1-4,逻辑分区为5至m,与syslinux的分区编号相同,为grub4dos的编号+1。
还可使用(LABEL=volume-label)方式:如winxp.vhd在卷标为my_vhd_sys的盘中,将(UUID=320ceab80cea766f)改为(LABEL=my_vhd_sys)即可。
但使用(hd0,n)、(LABEL=volume-label)方式启动时,可能会出现蓝屏、重启等问题,而采用UUID号方式启动正常。按网友的说法,虽然grub2支持这两种格式,但基于grub2上开发的vboot对这两种格式支持目前还不够好。因此采用UUID号方式支持最好。
3、将vboot启动文件及VHD文件移动到其他盘的补充说明
①按以上2中的方法,先在IDE硬盘中安装成功后,再将该VHD文件从IDE硬盘移动到SATA硬盘的EISA配置的隐藏逻辑分区中,更改vboot\grub\grub.cfg中的配置后也启动成功。
②若在win7pe中,用磁盘管理功能将一逻辑分区设为c:盘,再用WinXP_VHD软件,将vboot启动文件及winxp.vhd均存放在该盘中,并由该软件自动导入vboot驱动,安装好WINXP后,再将该分区设为EISA配置的隐藏分区,也可启动成功。
============================================================================================================
四、建立差分系统问题
(一)方法一:在vboot启动菜单中按's'键生成快照,按'r'键执行一次恢复。按 'i' 键生成不可改变的启动。
①在XP VHD项上按's'键生成快照并启动快照
此时在\vboot\grub\grub.cfg中生成
menuentry "XP VHD" {
vboot harddisk="(hd0,1)/WINXP.vhd"
snapshotentry "Snapshot 1"
{
vboot harddisk="(hd0,1)/WINXP-s1.vhd"
}
}
即在XP VHD项下生成一个一级快照(一级差分),菜单中有XP VHD及其下的Snapshot 1的共两个选项(即嵌套的菜单条目)。
还可在Snapshot 1项下再按下's'键生成一个一级快照的差分(即二级差分)。
注一:在vboot1.1新版本中,建立快照的父VHD菜单项不能再进入(因会导致父VHD发生改变,使子vhd即快照无效;建立了二级快照的一级快照也不能再进入),只能进入快照菜单项。要想进入父VHD菜单项,除进入winpe中删除\vboot\grub\grub.cfg中的快照菜单并删除子VHD文件的方法外;还可按以下②、③中的'r'键、'i' 键的方法分别进行。
注二:在vboot1.1新版本中,无论将\vboot\所在的分区改为非隐藏的主分区,并在\vboot\grub\grub.cfg中如下加入win2008、winxp等的安装项,且将安装项紧靠进入系统项之后,按's'键均貌似无效。
menuentry "win2008 VHD" {
vboot harddisk="(UUID=32e08b03e08acc93)/vboot_vhd/win2008_d.vhd"
}
menuentry "win2008 Install" {
vboot harddisk=(UUID=32e08b03e08acc93)/vboot_vhd/win2008_d.vhd cdrom=(UUID=7ac824a7c824639b)/sys_iso/win2008.iso boot=cdrom
}
menuentry "XP VHD" {
vboot harddisk="(UUID=32e08b03e08acc93)/vboot_vhd/winxp.vhd"
}
menuentry "winxp Install Step 2" {
vboot harddisk="(UUID=32e08b03e08acc93)/vboot_vhd/winxp.vhd" cdrom=(UUID=7ac824a7c824639b)/sys_iso/xp_sp3.iso boot=harddisk
}
menuentry "winxp Install Step 1" {
vboot harddisk="(UUID=32e08b03e08acc93)/vboot_vhd/winxp.vhd" floppy=(UUID=32e08b03e08acc93)/vboot/vboot.img cdrom=(UUID=7ac824a7c824639b)/sys_iso/xp_sp3.iso boot=cdrom
}
后来,仔细查其原因,发现按's'键生成快速菜单项时,只搜索第一物理硬盘(第一物理硬盘不一定是启动硬盘,因可在开机时选第二硬盘为启动硬盘;若同时装有IDE、SATA硬盘,系统自动将IDE硬盘作为第一物理硬盘,在BIOS中关闭IDE硬盘,则SATA硬盘成为第一物理硬盘)的激活主分区(而不搜索第一物理硬盘的其他分区,也不搜索其他硬盘的分区)的\vboot\grub\grub.cfg,若搜索到配置文件grub.cfg,就将其快照菜单项嵌套加在其父项之中。
因此,按's'键貌似无效问题,解决办法是:将vboot系统安装在第一物理硬盘的激活主分区(可为EISA配置的隐藏分区)即可,iso及VHD文件可放在本硬盘其他分区或其他硬盘的分区中。而与vboot系统所在分区是否是隐藏分区无关,也与在\vboot\grub\grub.cfg中是否加入win2008、winxp等的安装项无关。
但用按's'键生成快速菜单项的方法仍有BUG:它有可能把某一系统的快照错误地加到了另一父项系统之中了(在有多个系统的启动项时,曾出现过这一问题)。
②在XP VHD下的Snapshot 1项上按'r'键执行一次恢复并启动到其父项状态
即相当于去除嵌套的快照启动选项,并删除差分文件WINXP_s1.VHD。但在vboot1.1新版本中,按'r'键貌似无效。究其原因:'r'键搜索并修改配置文件grub.cfg的范围及解决办法,同按's'键。
③在XP VHD项上按 'i' 键生成不可改变的启动
一是在未建快照的父项上按'i'键,或如下在父项上加immutable参数(加了此参数后,每次启动均如此),为用户生成一个父项的临时快照文件WINXP_immutable_child.VHD,并以该快照启动系统,不论你在其中作了一项或多项更改(如安装了软件),因该快照文件重启电脑到同一系统后将被自动删除,相当于实现了与硬盘还原卡类似的功能,因此,称此为一次不可改变的启动。这是为了方便用户实现想启动到父项的状态但又不想改变父VHD内容的目的。
menuentry "XP VHD" {
vboot harddisk="(UUID=b414523d145202b2)/VHD_System/xp/WINXP.VHD" immutable
}
二是在快照上按'i'键(在已建快照的父项上按'i'键无效),或如下在父项上加immutable参数(此参数加在子项上无效。加了此参数后,每次启动均如此),为用户生成一个该快照的临时快照文件(文件名同上,相当于拷贝了一个快照的复制件。注意:此快照文件名不是WINXP-s1.VHD或WINXP-s1-s1.VHD)。其他同上。
menuentry "XP VHD" {
vboot harddisk="(UUID=b414523d145202b2)/VHD_System/xp/WINXP.VHD" immutable
snapshotentry "Snapshot 1" {
    vboot harddisk="(UUID=b414523d145202b2)/VHD_System/xp/WINXP-s1.VHD"
}
}
(二)方法二:手动建立差分
第一步:用命令创建差分文件:
\vboot\tools\x86\vbootctl creatediff f:\vboot_vhd\win2003s-s1.vhd f:\vboot_vhd\win2003s.VHD
注:此命令只能创建一级快照,用该命令在一级快照上创建二级快照无效,如:
\vboot\tools\x86\vbootctl creatediff \vboot_vhd\win2003s_s1_s1.vhd \vboot_vhd\win2003s_s1.vhd
第二步:为快照添加一个启动条目:
cd\vboot\grub
\vboot\vbootedit uuid f: >uuid.txt
若UUID为f014a69714a66078
\vboot\vbootedit create title="win2003 Snapshot 1" harddisk="(UUID=f014a69714a66078)/vhd_sys/win2003s-s1.vhd" parent=1
注:此命令双引号中的斜杠为顺斜杠;该命令搜索并修改配置文件grub.cfg的范围及无法执行该命令的解决办法同按's'键,否则找不到配置文件(即使在第二硬盘的\vboot\grub\目录下发此命令也如此)。若如此,只能手工直接修改\vboot\grub\grub.cfg如下:
(均嵌菜单):
menuentry "win2003 VHD" {
vboot harddisk="(hd0,1)/win2003s.VHD"
snapshotentry "Snapshot 1"
{
vboot harddisk="(hd0,1)/win2003s_s1.vhd"
}
}
也可如下添加与父VHD项同级的菜单项(用分号分隔子、父vhd文件名):
menuentry "XP VHD-child" {
vboot harddisk="(hd0,3)/vboot_vhd/WINXP_child.VHD;(hd0,3)/vboot_vhd/WINXP.VHD"
}
对于手动创建的差分,也可这样启动(但要求子VHD必需和父VHD在同一目录下):
menuentry "Windows xp" {
vboot harddisk="(UUID=94a437daa437bd94)/vboot_vhd/winxp_child.vhd"
}
(三)第二次成功启动快照的方法
vboot1.0(已过期)能成功启动快照,但vboot1.1在第一次能成功启动快照,但在第二次启动时,要么重启,要么蓝屏,解决方法是:
1、方法一
用1.0版的 vbootldr 和vbootldr.mbr ,就可二次启动快照。但我将1.0版的这两个文件复制到vboot所在盘的根目录下替换1.1的后,重启时只出现vboot菜单的框框,而无菜单,当我关机再次重后到vboot时,连这个菜单框框也没出现而是黑屏。当我用1.1的替换回后,又重现了菜单,当然仍然无法启动快照。究其原因,是vboot_1.1_2011.2.18更新版本身的问题。
需使用vboot_1.1_2011.2.20更新版,已解决此问题,能生成快照后,多次启动快照菜单项。而WinXP_VHD辅助处理工具2011【基于vboot 1.1_2011-2-22更新】版,已包含vboot_1.1_2011.2.20更新版,即只用该软件(WinXP_VHD)即可解决此问题。推荐此法。
2、方法二
用WinXP_VHD辅助处理工具2011【基于vboot 1.0_驱动已过期】生成基于vboot1.0驱动的winxp.vhd,并使用vboot1.0时间过期破解版即可。但不推荐此法。
(四)在vboot中添加VHD系统的快速还原菜单的方法
本法借鉴lianjiang对原生win7-VHD系统的快速还原方法改编而成。以下以win2003为例进行说明。
1、建立子VHD及其备份
\vboot\tools\x86\vbootctl creatediff win2003_child.vhd win2003.vhd
copy win2003_child.vhd win2003_child_bak.vhd
2、编制grub.cfg
①启动Win2003的菜单:
menuentry "Windows 2003" {
vboot harddisk="(UUID=94a437daa437bd94)/vboot_vhd/win2003_child.vhd;(UUID=94a437daa437bd94)/vboot_vhd/win2003.vhd"
}

menuentry "Windows 2003" {
vboot harddisk="(UUID=94a437daa437bd94)/vboot_vhd/win2003_child.vhd"
}
或用嵌套菜单:
menuentry "Windows 2003" {
vboot harddisk="(UUID=94a437daa437bd94)/vboot_vhd/win2003.vhd"
snapshotentry "winxp_child" {
    vbootharddisk="(UUID=94a437daa437bd94)/vboot_vhd/win2003_child.vhd"
}
}
②快速还原VHD系统的菜单:
menuentry "快速还原VHD系统" {
linux16 (hd0,2)/grub/grub.exe --config-file="configfile (hd0,1)/menu_vbldr.lst"
}

menuentry "快速还原VHD系统" {
linux16 (hd0,3)/grub/grub.exe --config-file="rootnoverify (hd0,2);chainloader --force /vbldr.mbr"
}
注:vbldr.mbr及vbldr是将最新版的grub4dos的grldr通过改名而来(需用WinHex等十六进制软件将grldr.mbr及grldr中的grldr文本分大小写替换为vbldr)。
或:
menuentry "快速还原win2003" {
linux16 (hd0,3)/grub/grub.exe --config-file="用分号分隔的命令串"
}
注:用分号分隔的命令串,是将以下3中的各行命令用分号分隔即成。
3、编制vbldr的菜单并导入
timeout 0
default 0
password --md5 $1$A$YwcdXCjmILc9uG2dFDVek.
#password is tzy123
title 0. Fast Restore win2003
password --md5 $1$A$YwcdXCjmILc9uG2dFDVek.
fallback 1
find --set-root --ignore-floppies --ignore-cd /vboot_vhd/win2003_child_bak.vhd
dd if=()/vboot_vhd/win2003_child_bak.vhd of=()/vboot_vhd/win2003_child.vhd
pause --wait=10 Restore OK!
chainloader /vbootldr.mbr
title 1. Return to Main Menu
find --set-root --ignore-floppies --ignore-cd /vbootldr
chainloader /vbootldr.mbr
4、补充说明:在家中电脑中,用此法成功实现对winxp、win2003、winvista、win2008、win7、win2008r2的快速还原。
而在办公室的电脑中,用此法仅成功实现对win2003、winvista、win2008、win7、win2008r2的快速还原,
而对winxp,无论采用嵌套或非嵌套菜单,或用按's'键生成的快照(子VHD)改名和改嵌套菜单的方法,均要把修改结果写入父VHD中,由此未能快速还原,不知是何原因(是vboot的BUG?还是其他原因)。还作了如下测试,也未成功:
①因WINXP系统的vmlite vboot virtual disk scsi adapter驱动未安装好,怀疑是这一原因造成的。其驱动一般在vboot.img、vboot-2k3.img中,用vdm虚拟机软件加载为A:盘后,将驱动指向它就安装了,用winxp_vhd工具重新安装winxp。但重新装好此驱动后,问题依旧。
②将WINXP的父VHD改为只读进行测试,问题依旧。注意:若父VHD为只读,重新从父VHD启动时要蓝屏。

注:后来分析原因,在办公室的电脑中的winxp.vhd,是按下面六中的方法,将安装在分区中的winxp转换而来的,用WinXP_VHD软件重装winxp.vhd,此问题得到解决。
============================================================================================================
五、vboot安装winvista/win2008/win7/win2008r2的vhd系统的方法
(一)winvista/win2008/win7/win2008r2的vhd系统安装的通用方法(假设VBOOT完整版及VHD文件存放盘为F:盘,并以winvista为例)
1.vbootctl+make命令法(以下各步建议在WIN7PE中进行)
①准备系统安装光盘
复制winvista的安装版(不能为GHOST版)的光盘镜像ISO文件到某一英文目录下,如f:\winvista.iso。若准备用物理光驱安装,此步可免。
②更改\vboot\grub\grub.cfg文件的菜单项为
menuentry "Vista VHD" {
vboot harddisk=(hd0,2)/vhd_sys/winvista.vhd
}
menuentry "Vista Install" {
vboot harddisk=(hd0,2)/vhd_sys/winvista.vhd cdrom=(hd0,2)/winvista.iso boot=cdrom
}
③生成VHD文件
若用光盘镜像文件WinVista.iso安装,命令如下(下面的size 15表示创建15G大小的VHD文件,此文件的容量必须在15G以上):
f:\vboot\tools\x86\vbootctl make f:\vboot_vhd\winvista.vhd f:\WinVista.iso /size 15
若用物理光驱安装,命令如下(假设光驱的盘符为E:):
f:\vboot\tools\x86\vbootctl make f:\vboot_vhd\winvista.vhd E:\ /size 15

f:\vboot\tools\x86\vbootctl make f:\vboot_vhd\winvista.vhd E:\sources\install.wim /size 15
注:运行前,确保未先创建f:\vboot_vhd\winvista.vhd文件;在安装过程中,若提问winvista在install.wim中的子映像号请输入(选子映像时,尽量用原版系统安装光盘,而不要用某某的修改版进行安装,因用修改版可能无法安装成功)。
④后续安装
VHD文件生成后,重启从VBOOT的Vista VHD选项进入(以后启动系统,也从该项进入),继续安装系统。系统安装完成后,即可进入系统桌面。
⑤VMlite Vbootstor SCSI Disk Device的驱动安装
若为32位系统,将搜索目标指向X:\vboot\tools\x86(X为vboot完整版所在的盘符) ,即可安装驱动。
若为64位系统,将搜索目标指向X:\vboot\tools\amd64。
⑥系统激活
因该VHD文件中含有bootmgr启动管理器(即bootmgr及boot目录),直接运行某一激活软件,将激活文档生成在VHD文件映射的系统盘中即可。如用Windows 7 Loader 1.9.5激活,将在VHD文件映射的系统盘中生成wins.ld(对winvista/win2008/win2008r2,win7系统为win7.ld,此为标志文件)及激活文件XQAPR(或为他名),用bootice软件将VHD文件映射的系统盘的分区启动记录置为NTLDR但改名为XQAPR,重启后即激活了。
若用老激活软件生成的软激活文件grldr或skldr来激活,为使在映射为不同的磁盘时其菜单内容均不改变,可在系统分区根目录置一标志文件如vista.tzy(可用attrib +h +s +r vista.tzy命令将其攺为系统+隐藏属性),再用grubmenu将以下通用菜单导入grldr或skldr即可。
default 0
timeout 0
title Windows Vista
acpi
fallback 1
find --set-root /vista.tzy
chainloader /bootmgr
title Enter Command Line
pause Boot failed! Press any key to enter command line.
commandline
⑦安装其他驱动程序和应用程序。
注意要将winvista/win2008升级到SP2,将win7/win2008r2升级到SP1。
⑧系统盘符
用此法生成的默认系统盘符,winvista/win2008的为D:盘,win7/win2008r2的为C:盘。
我参照网上修改VHD XP的系统盘符D:盘变为C:盘的方法,试图按方法一或方法二,将winvista/win2008的系统D:盘改为C:盘,但未成功。但按方法三试验成功。
方法一:
有网友说:对VHD XP,还可在step1安装完成后,直接启动PE3.X,挂载VHD,然后用注册表编辑器加载x:\windows\system32\config\system,修改mountdevice里的键值就行,修改后,继续Step2,也可达到目的。但对winvista/win2008/win7/win2008r2系统,不知如何进行。
方法二:
第一步:右击“我的电脑”-“管理”,选择“磁盘管理”,在右侧的对话框中找到现在的C盘,在上边单击鼠标右键,选择“更改驱动器名和路径”,单击“更改”按钮,将其改为其他盘符(假设更改为Z:)其实就是释放出C这个盘符。
  
第二步:然后运行一个注册表管理软件“Registry Workshop”,搜索 “D:\”,要选中“Search/Replace In”组中的"Data"、"Values"、"Keys"前的复选框,全选所有搜索出来的结果,将搜索到的所有“D:\替换成”“C:\”,多搜索几次以防有漏网之鱼。但有些项被禁止修改,此步修改未成功。
  
第三步:然后打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices。在右侧值名“\DosDevices\C:”上单击鼠标右键,选择重命名,命名为“\DosDevices\Z:”,将“\DosDevices\D:”重命名为“\DosDevices\C:”。重新启动系统(这个操作完成后重启计算机命令可能无效,需要你强制关机。)。进入系统后需要对桌面和开始菜单里边的快捷方式进行修正,以保证可以正确链接到需要的文件(但如果磁盘格式为NTFS,快捷方式不是根据盘符定位的,所以不需要修正快捷方式就可以正常使用)。
经试验,如此修改后,重启无法进入系统桌面。  
方法三:
对方法二,究其原因,是在线修改法,系统将阻止对系统盘符的修改,因此不成功。此法按网友2011huisinro提供的方法(本人将之称为离线修改法),成功将winvista/win2008的系统D:盘改为C:盘。
第一步:挂载VHD
在用“vbootctl make”命令形成VHD后,在未进入VHD系统前立即在WIN7PE中按如下命令挂载VHD:
vbootctl mount \path\your-vista.vhd(如为Z:盘)
也可用WIN7PE的磁盘管理功能挂载VHD(推荐此法)
注:也可对已进入并安装了软件的VHD系统进行修改,但修改的工作量很大。
第二步:修改配置单元SOFTWARE(此项载明软件的注册信息)
打开注册表管理软件“Registry Workshop”(也可用注册表管理器regedit,但用它只能手工替换,工作量将非常大,不推荐),在HKEY_LOCAL_MACHINE上,以加载配置单元的方式打开z:\windows\system32\config\SOFTWARE,如命名为0,选中0,用其搜索功能搜索“D:\”,要选中“Search/Replace In”组中的"Data"、"Values"、"Keys"前的复选框;然后用“在查找结果中替换”功能,将搜索到的所有“D:\”替换成“C:\”,多搜索几次以防有漏网之鱼。但有些项被禁止修改的,就放弃修改;然后选中0项,卸载配置单元,如此则将修改结果保存到SOFTWARE中。
第三步:修改配置单元SYSTEM(此项载明系统的注册信息)
先采取与第二步相同的方法,打开z:\windows\system32\config\SYSTEM,将所有“D:\”替换成“C:\”;并将0项下的MountedDevices下的值名“\DosDevices\C:”,单击鼠标右键,重命名为“\DosDevices\Z:”,将“\DosDevices\D:”重命名为“\DosDevices\C:”;然后选中0项,卸载配置单元,如此则将修改结果保存到SYSTEM中。
第四步:卸载VHD:vbootctl umount z。推荐用WIN7PE的磁盘管理功能卸载VHD。
第五步:重启系统,系统将自动加载设备驱动,再重启1-2次后,vista/win2008系统的系统盘符由D:变为了C:。
⑨补充说明
我用此法成功安装了winvista和win2008(在最后其自动加入了\vboot\tools\x86\drivers\vbootstor\目录下的vbootstor.sys驱动,到\windows\system32\drivers目录下),但对win7和win2008r2未试。
对winvista/win2008,推荐此法。但对win7/win2008r2,建议先生成其原生启动的VHD系统,再转换成vboot支持的VHD系统(见下)。
2.vbootctl+直接安装法(只叙述与上法不相同之处)
先创建一个不少于15G大小的VHD空文件
f:\vboot\tools\x86\vbootctl.exe createhd f:\vboot_vhd\winvista.vhd /size 15
启动电脑从VBOOT的Vista Install选项进入,或从物理光驱中的winvista系统安装光盘启动,待进入安装界面后(在现在安装按钮之后),按Shift F10键启动命令窗口,执行以下命令来加载VBoot虚拟磁盘驱动器(假设VBOOT完整版所在的盘现为C:盘):
32位系统:
虚拟光盘:c:\vboot\tools\x86\vbootctl setup
物理光盘(离线访问虚拟磁盘):c:\vboot\tools\x86\vbootctl mount C:\vboot_vhd\winvista.vhd /setup /raw
64位系统:
虚拟光盘:c:\vboot\tools\amd64\vbootctl setup
物理光盘(离线访问虚拟磁盘):c:\vboot\tools\amd64\vbootctl mount C:\vboot_vhd\winvista.vhd /setup /raw
注意:要使物理或虚拟光盘的盘符为当前盘符(一般为X:盘),即先加载虚拟硬盘驱动,再执行物理或虚拟光盘中的安装程序setup.exe。且在安装时,要将系统安装到排在最后的虚拟磁盘中(需先按“磁盘高级”按钮,创建磁盘分区)。
说明:①用虚拟光盘方法安装:安装winvista时能在虚拟VHD磁盘中创建分区,但到将结束时退出,未安装成功;安装win2008时,选择虚拟VHD磁盘后无法创建磁盘分区,即使在win7中先创建好win2008.vhd(包括初始化和磁盘分区、激活主分区)也如此,也未安装成功;用此法安装win7/win2008r2未试。
      ②用物理光盘安装的方法。网友介绍可加/raw参数,但我试验时,加此参数或不加此参数,均未试成功。
(二)win7/win2008r2原生vhd转换法
1、先生成win7/win2008r2的原生vhd
使用相关软件生成,方法参见有关文档。此原生vhd文件中一般不含bootmgr启动管理器(即bootmgr及boot目录)。
2、转换原生VHD为VBOOT可启动的VHD
如我用如下命令,成功将win7/win2008r2原生vhd转换成vboot支持的VHD:
D:\vboot\tools\x86\vbootctl prepare D:\vboot_vhd\my_win2008r2.vhd
D:\vboot\tools\x86\vbootctl prepare D:\vboot_vhd\my_win7.vhd
3、\vboot\grub\grub.cfg文件的菜单启动项为
menuentry "win7 VHD" {
vboot harddisk=(hd0,2)/vboot_vhd/my_win7.vhd
}
4、有关说明
①转换后,文件名不变,其主要是向VHD中添加了bootmgr启动管理器(含bootmgr及boot目录),及将\vboot\tools\x86\drivers\vbootstor\目录下的vbootstor.sys驱动,加入到了\windows\system32\drivers目录下。
②原已激活,但转换后可能未激活。请参照vbootctl+make命令法中的第⑥步进行激活。
③转换后的VHD文件,仍可由bootmgr启动管理器按原生VHD的方法启动。我按此法成功启动转换后的win7/win2008r2的VHD文件。但原生VHD启动的系统中有“分离VHD”选项功能,按此法启动的转换后的VHD系统中,无“分离VHD”选项。看其属性,该分区已变为VMlite Vbootstor SCSI Disk Device盘。
④转换后的VHD,比原生启动略慢。所以,不推荐将win7/win2008r2原生vhd转换成vboot支持的VHD。
============================================================================================================
六、安装在分区中的系统与vboot启动的VHD系统的相互转换
(一)将安装在分区中的winxp/win2003/winvista/win2008/win7/win2008r2系统转换为由vboot启动的VHD系统的方法
以下以win2008为例,除第一步在安装在分区的当前winxp/win2003/winvista/win2008/win7/win2008r2系统(以下简称当前)中进行外,其余各步在win7PE中进行。
第一步:在当前系统中,打开 regedit 导出本机HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices为reg文件保存到某盘某目录下,用记事本打开该reg文件,把内容改成保存备用。如为sys.reg
第二步:在WIN7PE中创建一个10G(对winxp/win2003系统)或15G(对winvista/win2008/win7/win2008r2)的空vhd文件,将其初始化并创建为一个NTFS格式的激活主分区。如挂载为H:盘(要记住,以下要用)。
第三步:用GHOST32以分区到分区对刻方式将分区中的当前系统克隆到VHD文件中。
第四步:若系统是被隐藏后克隆的,须用bootice软件将其“显现”;须将该VHD文件放置在NTFS分区内;若VHD的内部分区格式为FAT32,须用convert h: /fs:ntfs命令将其转换为NTFS分区格式。
第五步:用bootice软件将VHD系统的主引导记录更改为nt5.x(对winxp/win2003系统)或nt6.x(对winvista/win2008/win7/win2008r2系统);分区引记更改为ntldr(对winxp/win2003系统)或bootmgr(对winvista/win2008/win7/win2008r2系统)。对winvista/win2008/win7/win2008r2系统,若原已用Windows 7 Loader 1.9.5软激活的,如激活文件名为XQAPR(或为他名),其分区引导记录须更改为NTLDR但改名为XQAPR。
第六步:在WIN7PE中,打开regedit, HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices,将挂载VHD加载的H:盘对应的两项(其中一项为其ID号)保留,其余项全部删除,导出本机HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices为reg文件保存到某盘某目录下,用记事本打开该reg文件,把内容改成保存备用。如为sys1.reg
第七步:打开regedit,用加载配置单元命令,把 H:\Windows\System32\config\system 挂上HKEY_LOCAL_MACHINE 取名为000;把 HKEY_LOCAL_MACHINE\000\MountedDevices 删除;导入以上保存备用的sys.reg及sys1.reg文件 ,编辑 MountedDevices,删除 \DosDevices\C: ,把\DosDevices\H: 改为 \DosDevices\C:;选中000项,卸载配置单元,退出 regedit。此步即是导入分区系统的注册表,编辑后保存回vhd系统的\Windows\System32\config\的system配置单元中。(此法保证一定可开机,如只删除MountedDevices,可能开机失败;假设不想让系统占用C:盘,而想让系统占用E:盘,那就删除\DosDevices\E:,把\DosDevices\H: 改为 \DosDevices\E: )。
第八步:用WIN7PE的磁盘管理功能卸载win2008_new.vhd,并将VBOOT驱动离线打入VHD系统中:
\vboot\tools\x86\vbootctl prepare \vboot_vhd\win2008_new.vhd
第九步:在\vboot\grub\grub.cfg中添加启动菜单项:
menuentry "win2008 new" {
vboot harddisk="(UUID=b414523d145202b2)/vboot_vhd/win2008_new.vhd"
}
第十步:重启从VBOOT的"win2008 new"项进入,自动加载设备驱动后再重启即可。

注:
①我用此法将winxp、winvista、win2008转换成功,其他系统未试。
②对winvista/win2008/win7/win2008r2系统,第二步、第三步可用WinXP_VHD软件将系统的gho文件直接生成VHD文件(但不导入vboot驱动程序)代替。即对winvista/win2008/win7/win2008r2系统,在用WinXP_VHD软件将系统的gho文件直接生成VHD文件(但不导入vboot驱动程序)后,须作以上第一步及第四步至第九步的工作即可。
③对winvista/win2008/win7/win2008r2系统,推荐用此法;对winxp/win2003系统,除用本法外,为方便起见,建议先用GHOST将系统打包成gho文件,再用WinXP_VHD软件将此gho文件生成VHD文件并让其自动导入VBOOT的驱动程序即可。

(二)将vboot启动的VHD系统转换为在分区中的系统的方法
第一步:挂载vhd,用GHOST32以分区到分区对刻方式克隆到分区中。
第二步:用bootice将硬盘主引导记录更改为nt5.x或nt6.x;将winxp/win2003系统的分区引导记录更改为ntldr;将winvista/win2008/win7/win2008r2系统的分区引导记录更改为bootmgr,若原已激活,须将其分区引导记录更改为ntldr但改名为XQAPR(若其激活文件名为该文件)。
第三步:对winvista/win2008/win7/win2008r2系统,须用BcdTool工具将BCD配置文件中的主入口、系统入口的device项及osdevice项的partition=x:中的盘符x:更改为当前系统所在的盘符;对winxp/win2003系统,须将其boot.ini更改为:

timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
第四步:修改注册表
方法一:在win7pe中用微软的driveletter脚本(由fujianabc做过一些修改)更改注册中的盘符,如pe中windows分区的盘符为f:,则执行driveletter /currentos:f即可。这个批处理会自动从离线系统注册表的software中找到windows分区的盘符,然后从winpe注册表的mounteddevice下把系统盘对应的项复制到离线系统的mounteddevice中,并把盘符修正为离线系统的盘符。当然,你的winpe中一定要有reg.exe文件。
方法二:①在VHD系统中,打开 regedit 导出本机HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices为reg文件保存到某盘某目录下,用记事本打开该reg文件,把内容改成保存备用。②在win7pe中,打开regedit,用加载配置单元命令,若克隆到分区系统的盘符为H:,把H:\Windows\System32\config\system 挂上HKEY_LOCAL_MACHINE 取名为000;把HKEY_LOCAL_MACHINE\000\MountedDevices 删除;导入以上保存备用的reg文件 ,编辑 MountedDevices,删除 \DosDevices\C: ,把\DosDevices\H: 改为 \DosDevices\C:;选中000项,卸载配置单元,退出 regedit。但方法二未试成功(不能进入系统桌面)。
第五步:重启进入该系统即可。可以删除(也可不删除)设备管理器的磁盘驱动器下的Vmlite Vboot Scsi Disk Device项。
注:我用此法将win2008.vhd、winxp.vhd成功转换到分区中运行,其他系统未试。
============================================================================================================
七、其他有关问题
(一)把vboot菜单打包成一个ima文件启动vboot的方法
1、打包并启动菜单
用WinImage_8.5新建一个自定义映像格式文件、文件系统选FAT16或FAT32,在其根目录下导入vbootldr.mbr、vbootldr两个文件;新建一目录vboot,将硬盘中的vboot目录下的所有文件(含已修改的grub.cfg文件)及子目录导入;用bootice将其分区引导记录更改为grldr但改名为vbootldr。然后用grub4dos按如下菜单启动之即可:
title VBOOT Menu
map --mem --read-only /vbootmenu.ima (fd0)
map --hook
rootnoverify (fd0)
chainloader (fd0)+1
注:若仅为启动vboot菜单及VHD系统之需,可对vbootmenu.ima进行精简,即只需在VBOOT目录下导入必需的vboot文件及grub、fonts两个目录即可。若日后要更改启动菜单的内容,只需将更改后的grub.cfg再次导入vbootmenu.ima下的\vboot\grub目录下覆盖原文件即可。以上菜单中,用(fd1)代替(fd0)未成功,提示磁盘错误。
2、直接启动单个vboot菜单项
若想以grub4dos直接启动vboot菜单项中的winxp.vhd、win2008.vhd等,可先按上法打包vbootmenu.ima;再将grub.cfg拷入某一临时目录,复制grub.cfg并分别命名grub_xp.cfg、grub_2008.cfg ,分别编辑grub_xp.cfg、grub_2008.cfg,设其中的default="0"、timeout=0,并只保留进入winxp.vhd、win2008.vhd的菜单项后保存;将rub_xp.cfg、grub_2008.cfg导入vbootmenu.ima中的\vboot\grub目录下;并按如下编辑grub4dos菜单可直接启动之。
title VBoot Menu-in ima(winXP)
map --mem /grub/vbootmenu.ima (fd0)
map --hook
rootnoverify (fd0)
dd if=()/vboot/grub/grub_xp.cfg of=()/vboot/grub/grub.cfg
chainloader (fd0)+1
title VBoot Menu-in ima(win2008)
map --mem /grub/vbootmenu.ima (fd0)
map --hook
rootnoverify (fd0)
dd if=()/vboot/grub/grub_2008.cfg of=()/vboot/grub/grub.cfg
chainloader (fd0)+1
注:①dd命令因是在内存中进行的,vbootmenu.ima中的grub.cfg文件并未被替换,所以还可以1中的方法再次启动带所有菜单项的vbootmenu.ima。②可把此法推广应用到启动bootmgr及原生vhd,方法是:将bootmgr文件、boot目录,和带全部启动菜单的bcd,及分别启动win7.vhd、win2008r2.vhd的bcd_win7、bcd_2008r2,一并打包入ima中,如上法编制grub4dos启动之即可(硬盘中可无bootmgr及boot目录)。
(二)在VHD文件中安装并启动多个操作系统
以下以在一个VHD文件安装winxp、win2003、win7、win2008系统为例进行说明。步骤如下:
1、方法一
①先安装好能以vboot启动的winxp、win2003、win7、win2008的单文件VHD系统,其VHD文件名分别为winxp.vhd、win2003.vhd、win7.vhd、win2008.vhd。
②在WIN7PE中,建立一个46G的动态类型的VHD文件(取名为multisys.vhd),将其分为8G、8G、15G、15G四个分区,其中第一个分区必须为主分区,其他三个分区可为主分区或逻辑分区;以磁盘管理功能分别挂载winxp.vhd、win2003.vhd、win7.vhd、win2008.vhd,再用ghost32以分区到分区克隆方式,将winxp、win2003、win7、win2008分别克隆到以上四个分区内;查看winxp、win2003的boot.ini配置文件及win7、win2008的BCD配置文件是否正确,若不正确须将其进行修改;用bootice软件,修改VHD文件的主引导记录MBR为nt5.x或grub4dos,修改winxp、win2003的分区引导录PBR为NTLDR,修改win7、win2008的分区引导记录PBR为bootmgr(但若原已用Windows 7 Loader 1.9.5软激活的,如激活文件名为XQAPR,其pbr须更改为NTLDR但改名为XQAPR);在winxp、win2003、win7、win2008所在的分区分别建立一个标志性文件(内容为空)vhd_xp.tzy、vhd_2003.tzy、vhd_win7.tzy、vhd_2008.tzy;激活某一主分区,将其PBR更改为grldr,在该分区根目录拷入grldr文件,并内置如下菜单内容:
default 0
timeout 10
title winxp_vhd
find --set-root --ignore-floppies --ignore-cd /vhd_xp.tzy
chainloader /ntldr
title win2003_vhd
find --set-root --ignore-floppies --ignore-cd /vhd_2003.tzy
chainloader /ntldr
title win7_vhd
find --set-root --ignore-floppies --ignore-cd /vhd_win7.tzy
chainloader +1
title win2008_vhd
find --set-root --ignore-floppies --ignore-cd /vhd_2008.tzy
chainloader +1
③在vboot的grub.cfg中添加如下菜单
menuentry "multisys-vhd" {
vboot harddisk="(UUID=94a437daa437bd94)/vboot_vhd/multisys.vhd"
}
2、方法二(只叙述与上法不同之处)
①激活主分区拷入grldr的菜单内容为:
default 0
timeout 0
title boot_cd
find --set-root /vhd_tzy.cd
chainloader ()
②编辑启动菜单并导入grldr,再分别改名为grldr_xp.bin、grldr_2003.bin、grldr_2008.bin、grldr_win7.bin
menu_xp.lst内容为:
default 0
timeout 0
title winxp_vhd
find --set-root --ignore-floppies --ignore-cd /vhd_xp.tzy
chainloader /ntldr
menu_2003.lst内容为:
default 0
timeout 0
title win2003_vhd
find --set-root --ignore-floppies --ignore-cd /vhd_2003.tzy
chainloader /ntldr
menu_2008.lst内容为:
default 0
timeout 0
title win2008_vhd
find --set-root --ignore-floppies --ignore-cd /vhd_2008.tzy
chainloader +1
menu_win7.lst内容为:
efault 0
timeout 0
title win7_vhd
find --set-root --ignore-floppies --ignore-cd /vhd_win7.tzy
chainloader +1
③建立启动光盘镜像grldr_xp.iso、grldr_2003.iso、grldr_2008.iso、grldr_win7.iso,并拷入某目录(如/vboot_vhd)
以建立grldr_xp.iso为例进行说明(其他相同):打开UltraISO软件,加入一个相同的标志性文件vhd_tzy.cd(名称须为小写,内容为空),选定该文件,设定为隐藏;将grldr_xp.bin加载为引导文件;进入“属性”选项,勾选“windows/unix(31)”、“允许小写字母”、“省略ISO9660版本号”三项,其他项均取消勾选;保存为grldr_xp.iso即可。
④在vboot的grub.cfg中添加如下菜单
menuentry "vhd_xp" {
vboot harddisk=(UUID=94a437daa437bd94)/vboot_vhd/multisys.vhd cdrom=(UUID=94a437daa437bd94)/vboot_vhd/grldr_xp.iso boot=harddisk
}
menuentry "vhd_2003" {
vboot harddisk=(UUID=94a437daa437bd94)/vboot_vhd/multisys.vhd cdrom=(UUID=94a437daa437bd94)/vboot_vhd/grldr_2003.iso boot=harddisk
}
menuentry "vhd_win7" {
vboot harddisk=(UUID=94a437daa437bd94)/vboot_vhd/multisys.vhd cdrom=(UUID=94a437daa437bd94)/vboot_vhd/grldr_win7.iso boot=harddisk
}
menuentry "vhd_2008" {
vboot harddisk=(UUID=94a437daa437bd94)/vboot_vhd/multisys.vhd cdrom=(UUID=94a437daa437bd94)/vboot_vhd/grldr_2008.iso boot=harddisk
}
注意:各项为boot=harddisk,而不能为boot=cdrom,因从光盘启动,将不能将多系统VHD文件虚拟为一个硬盘。
3、补充说明
①方法一的启动顺序是:vboot的multisys-vhd菜单项→VHD中内置的grub4dos→选择启动VHD中的四个系统。
②方法二的启动顺序是:vboot菜单项→VHD中内置的grub4dos→虚拟光盘镜像直接启动VHD中的某一系统。
③用方法一或方法二,启动VHD中的某一系统时,不能隐藏其他分区中的系统,否则将重启。
④如何有效建立VHD中各分区系统的备份及快速还原,还不知怎样进行。
(三)安装win2000问题
我的win2000安装版及克隆版均未带stata驱动,我在我的电脑(配置为双核CPU、4G内存、SATA500G硬盘、IDE80G硬盘)中,先安装为实机系统未成功。用以下两种方法安装win2000.VHD,也均未成功。不知能否安装WIN2000,若能,哪位安装成功的,请多指点!
1、用vboot安装
vboot\grub\grub.cfg的内容如下(其中win2000.iso为安装版):
menuentry "win2000 VHD" {
vboot harddisk="(UUID=7ac824a7c824639b)/vboot_vhd/win2000.VHD"
}
menuentry "win2000 Install Step 2" {
vboot harddisk="(UUID=7ac824a7c824639b)/vboot_vhd/win2000.VHD" cdrom=(UUID=7ac824a7c824639b)/win2000.iso boot=harddisk
}
menuentry "win2000 Install Step 1" {
vboot harddisk="(UUID=7ac824a7c824639b)/vboot_vhd/win2000.VHD" floppy=(UUID=7ac824a7c824639b)/vboot/vboot-2k.img cdrom=(UUID=7ac824a7c824639b)/win2000.iso boot=cdrom
}
结果:进入win2000 Install Step 1时即蓝屏。
2、用WinXP_VHD安装
参照winxp的方法安装win2000.vhd(内部格式更改为NTFS),并让其自动导入vboot驱动。使用win2000.iso的安装版和克隆版均未试成功(启动蓝屏)。

说明:
原以为子目录vbootdsk-w2k,及vboot-2k.img是用于支持win2000的驱动。
但网友2011shanshan92的试验结果是:用其安装win2000.vhd启动成功,但只要往VHD里也就是C盘写东西,系统就定在那了,就好像硬盘突然消失了一样,系统就不读盘了,卡住那里,从此什么都不好使了,只能看到鼠标在那动。若换成XP的驱动,就启动7B蓝屏。

这说明对win2000的支持不好,且fujianabc说,vboot本来就没说支持win2000。
由此可见,若想用此驱动安装win2000.vhd,就不要再折腾了,会安装不成功的。


[ 本帖最后由 qj_tzy 于 2011-8-6 16:42 编辑 ]

lianjiang 发表于 2011-2-26 16:53:04

写得非常好,学习了,谢谢楼主。

HY 发表于 2011-2-26 16:34:17

不错的教程,用WinXP_VHD辅助工具做winvista/win2008/win7/win2008r2的vhd系统一定是蓝屏,winvista/win2008/win7/win2008r2的vhd系统有另一个工具做的。

2012ygotit 发表于 2014-4-26 20:52:39

感谢楼主,,这么详细的帖子真难得。。要认真学习

we180900 发表于 2014-2-10 17:01:16

写得非常好,学习了,谢谢楼主。

qj_tzy 发表于 2011-2-28 22:56:35

说明:

帖子内容已更新,请网友多指教!

HY 发表于 2011-2-28 23:11:29

回复 #6 zhagen2 的帖子

5楼大元帅的两个工具呀

lianjiang 发表于 2011-3-1 09:21:32

原帖由 qj_tzy 于 2011-2-28 22:56 发表 http://bbs.wuyou.net/images/common/back.gif
帖子内容已更新,请网友多指教!

好贴,不顶不行。

haiuyan 发表于 2011-3-1 14:01:38

原帖由 friend8179 于 2011-3-1 11:21 发表 http://bbs.wuyou.net/images/common/back.gif
注:为了解决在安装过程中可能会出现“安装程序无法复制vbootdsk.sys”一类的错误提示,解决办法是:可以将vboot.img中i386中的vdisk的驱动集成到你的系统光盘中,其实更简单的方法是在vboot.img这个镜像文件中建 ...
现在都心照不宣, 版权的问题

HY 发表于 2011-3-1 14:03:27

"②、VBOOT 中WINDOWS2003的驱动破解后不能使用,系统启动不了。我也遇到这个现象, 2003蓝屏。 可能出现。网上未答。"
这个问题friend8179 在其它帖子中已答,今天11楼又解答了。

qj_tzy 发表于 2011-3-2 14:34:16

回复 #10、#11、#13 的帖子

感谢#10、#11、#13的指导,我虽发了此贴,但确实有很多不懂,比如#11、#13说的我就未懂,我再仔细学学,再次感谢!

lianjiang 发表于 2011-3-2 14:58:14

原帖由 qj_tzy 于 2011-3-2 14:34 发表 http://bbs.wuyou.net/images/common/back.gif
感谢#10、#11、#13的指导,我虽发了此贴,但确实有很多不懂,比如#11、#13说的我就未懂,我再仔细学学,再次感谢!

如何破解的问题,可不用管。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: VBOOT及WinXP_VHD辅助工具安装VHD系统等的用户使用经验汇总(7月28日更新)