软件准备:
grubinst:
下载地址(当然,你可以google之,下载之~)
firadisk.img:用于不解开直接加载iso。(文章结尾网盘地址下载)
grub中文字库:使用有两个条件:
1.使用 grub4dos 里面,chinese 文件夹下的文件(grldr或grub.exe),那是中文版用的。
2.menu.lst 使用asci编码,就是windows记事本默认编码。(文章结尾同样有网盘下载地址)
下面开始操作:
1、grub4dos的安装
打开grubinst_gui.exe(是grubinst里面的图形化文件),在磁盘一栏选自己的u盘,看清楚容量,注意不要选到本地磁盘。然后点击一下分区列表右边的刷新,然后在下拉菜单选整个磁盘(mbr)。然后点安装。安装成功。
2、在u盘根目录新建一个用英文命名的文件夹,名字根据自己喜欢,我新建了一个叫boot的文件夹。然后把cmos.img、winPE.iso、CDlinux、beini、xiaopan等放进去。所有文件都必须用英文或者数字命名,不能出现中文。(这些都是我自己平时用的东西,可以自行添加)
3、把grub4dos的grldr和menu.lst复制到u盘根目录(若果要使用中文菜单,要用grub4dos下chinese文件夹里的grldr和menu.lst)。这里建议用grub4dos内置菜单编辑器编辑grldr的内置menu.lst,从而可以直接使用grldr内置的menu.lst作为启动目录,但这样以后若果要添加或删除一些我们不需要的工具,修改menu.lst就稍微麻烦一点。当然,也可以使用grldr再指向外部的menu.lst来引导我们的系统。这里我是修改了grldr内置的menu.lst指向boot文件夹里的menu.lst,因为为了简洁,我把menu.lst也放在boot文件夹里,而不是u盘根目录里。u盘目录结构如下:
u盘:
|
|--boot 文件夹
| |
| |--CDlinux、beini等
|
|--grldr
整个u盘结构比较简洁,看着舒服。当然,如果你不修改grldr里面的内置菜单,menu.lst就放在u盘根目录。其实也可以放在其他地方,这里就不展开讲了。
4、下面我们来编辑menu.lst来实现启动我们需要的工具。首先,我们要让我们的grub支持中文,menu.lst如下:
fontfile /boot/fonts
timeout 5
default 0
第一行命令是指向中文字库文件fonts,这个可以下载。第二行是等待时间。第三行是默认选择第几项,这里是从0开始的。
5、引导cmos.img等img格式的工具,(适合平时电脑的维护等操作,若平时不使用,可略过)菜单如下:
title bios密码清除工具
find --set-root --ignore-floppies /boot/cmos.img
map --mem /boot/cmos.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
把路径改为自己的就可以了,title后面也改成自己的。
6、直接引导引导winPE.iso。
利用Grub4dos强大的磁盘仿真map --mem功能,可以从各种不同的介质启动WINPE,不解开ISO就可以直接启动PE
对于引导winPE.iso,倘若引导不成功,通常可能的原因有:
(1)光盘镜像的CD-ROM文件系统是Joliet CD格式,GRUB4DOS不支持这种格式。你需要通过工具转换一下镜像文件的文件系统格式。
(2)BIOS中激活了SATA的AHCI模式。GRUB4DOS可能无法兼容AHCI模式,应在BIOS中将SATA模式设置为IDE。
后来的试验表明了,我把一个不能成功引导的winpe的iso文件,用UltraISO工具转为标准的iso文件,果然成功得以引导。
最新的grub4dos已经能够兼容AHCI模式了,这在我的机器上得到了证明。所以如果iso文件不能成功引导,问题基本上出在这个iso文件的文件系统格式不为grub4dos支持,用UltraISO把它转为标准的iso文件即可。如果PE内置了firadisk或者winvblock驱动就不用再把这两个驱动镜像到软盘,如果PE没有集成这两个驱动之一,就可以在map --mem /boot/winpe.iso (0xff)之前加上一句map --mem /boot/firadisk.img (fd0)把他们镜像到软盘,就可以保证外置程序正常加载。最后,菜单如下:
title 启动winPE
fallback 6
find --set-root /boot/pe.iso
map --mem /boot/firadisk.img (fd0)
map --mem /boot/pe.iso (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2
7、启动CDlinux。
这里不可以直接引导iso文件,一般来说,加载iso镜像,都是通过内存map的方式来加载的,也就是说,在内存中使用一部分空间作为iso的存储,然后再模拟引导。不同的iso由于体积大小不同,均会导致引导是否成功。一般,linux iso引导,只能引导内核,引导内核后便不能引导了。因为会清空内存数据,所以原来内存中的iso便消失了,只能进入内核命令模式。 如果想引导,可以采取对U盘分区的方式。将ISO写入到另一分区中,然后使用grub引导内核并启动。
title CDlinux_0.9.6.1
kernel /boot/CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8
initrd /boot/CDlinux/initrd
8、u盘安装win7
首先要下载好win7的安装包iso文件,把iso解压后,只需要把boot文件夹、efi文件夹、sources文件夹和bootmgr文件放在u盘里。menu.lst菜单如下:
title 安装Windows7 英文版
find --set-root /boot/bootmgr
chainloader /boot/bootmgr
boot
9、最好加上重启和关机的命令,菜单:
title 重启
reboot
title 关机
halt
到这里,功能强大的u盘启动盘就做好了。
最后,附上我的menu.lst:
fontfile /boot/grub_fonts
timeout 5
default 0
title 从硬盘启动Win7
find --set-root --ignore-floppies /bootmgr
chainloader /bootmgr
boot
title 从硬盘启动xp
find --set-root --ignore-floppies /ntldr
chainloader /ntldr
boot
title 启动Diskgenius v3.80
find --set-root --ignore-floppies /boot/dg.img
map --mem /boot/dg.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 安装Windows7 旗舰版
find --set-root /boot/bootmgr
chainloader /boot/bootmgr
boot
title 启动CDlinux_0.9.6.1
kernel /boot/CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8
initrd /boot/CDlinux/initrd
title 启动WinPE
fallback 6
find --set-root /boot/WinPE.iso
map --mem /boot/firadisk.img (fd0)
map --mem /boot/WinPE.iso (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2
title 用户密码清除工具
find --set-root --ignore-floppies /boot/password.img
map --mem /boot/password.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title bios密码清除工具
find --set-root --ignore-floppies /boot/cmos.img
map --mem /boot/cmos.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 重启
reboot
title 关机
halt
注:
如果你使用的是beini或其他内核是tinycore的linux系统,要把tce文件夹放在根目录,否则容易无法挂载tce文件夹,导致启动后只有内核,没有应用程序。而boot文件夹可以放在tce内,可使目录结构简洁。
评论