Grub4dos定制自己的启动U盘

来源:百度文库 编辑:神马文学网 时间:2024/05/01 17:56:17
定制自己的启动U盘2010-08-21 13:29

[下文中部分链接是skydrive网盘链接,由于微软反盗链,不可以直接下载!!需要右键在新窗口中打开,然后在新开页面中才可以点击图标下载。]
下面的教程教你用grub4dos定制自己的启动U盘。
1)用xp的磁盘管理工具格式化u盘。有些u盘不是usb-hdd格式的话,需要用这个工具
HPUSBFW.RAR
来把u盘格成usb-hdd格式。
2)下面给u盘装grub4dos。先下载下面的软件
grub4dos.rar
FONTS.GZ (中文菜单字体文件)
grub4dos.rar解压后的内容是这样的,看右边截图。用红圈圈起的几个文件是我们要用到的
grubinst_gui.exe windows下安装grub的图形界面
grldr                     grub4dos加载器,启动的关键文件,英文版的
menu.lst              grub4dos的引导菜单,可以用写字板打开编辑
[chinese]文件夹 里面的grldr是中文版的,支持中文引导菜单
双击grubinst_gui.exe,得到下面的对话框,安装1,2,3,4,5顺序即可安装grub到u盘的mbr。注意选择u盘不要选错了硬盘,看容量很容易能看出来。

点击安装后,正常的话会弹出命令行提示“The MBR/BS has been successfully installed…… ”,表明安装成功。
然后把grldr,menu.lst和fonts.gz文件复制到u盘根目录。(如果你需要中文菜单,记住要复制chinese文件夹里的grldr文件。) 这样grub4dos的u盘引导部分就做好的,现在这个u盘可以引导电脑启动了。启动后的界面看右边截图。你会注意到菜单还是英文的,这是因为menu.lst里还没有加载中文字体。同时你看到很多启动项目,其实它们没有一个能启动,因为这个menu.lst仅仅是个样板而已。^_^
现在在xp里用写字板打开menu.lst文件,删掉所有的文本,把下面的文本复制进去
color black/cyan yellow/cyan
timeout 30
default 0
fontfile /fonts.gz
title 重启
savedefault --wait=2
reboot
title 关机
savedefault --wait=2
halt
现在变成中文菜单了,但是界面很难看。(注意grub4dos的halt命令即‘关机’功能受限于各厂商的标准各异,兼容性不好,很多机器上都不能关闭电源。)
下面稍微把引导界面美化一下,给它加个背景。先要下载一个背景图,你可以先试试这个splash1.xpm.gz ,这是一个xpm.gz格式的背景图,你可以在网上搜索并下载类似格式的图片来做背景,或者是自己制作。把xpm.gz 文件复制到u盘根目录,并且修改menu.lst。在fontfile命令后增加一行
splashimage=/splash1.xpm.gz
这里splash1.xpm.gz是你的背景文件的名字。重新启动后,界面变成如上右图所示。
如果你觉得这个界面还是不够漂亮,那么可以用gfxmenu命令定制启动界面。这是我的一个u盘的引导界面的截图。(方法自己搜吧)

3) 下面开始定制引导菜单。从最简单的开始,用这个grub4dos的启动u盘来引导dos。
a) 首先在网上下载一个dos,我选了最经典的win98启动盘。在这里可以下载win98启动盘 。下载后解压得到win98j.ima文件。这个文件其实是一个软盘镜像。grub4dos可以直接加载。
b)把win98j.ima复制到u盘某处,比如/boot/文件夹里。
c)修改menu.lst,在最后增加下列内容
title 启动DOS
map --mem /boot/win98j.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
d)重启试试吧,很容易吧。至于dos下功能的扩充,只需要把ghost,dm之类的工具复制到u盘,进入dos后就可以手动运行了。想要直接启动ghost或者dm之类工具的,请看下一步。
4)下面给引导菜单加一个ghost。ghost需要在dos环境下运行,所以我们实际上是需要做一个能直接启动ghost的dos环境。(你可以自己定制集成了ghost,dm等工具的dos环境,并且直接启动它,maxdos,矮人dos,一键ghost之类都是这样做出来的。但是没必要了,网上大把有得下载。我们只需下载一个包含这些工具的img文件,用u盘引导它们就可以了)
下面我用刚下载的win98启动盘做了点改动,通过ultraiso集成了一个ghost并且直接启动它。不贴图了,简单讲下步骤。
a)用ultraiso打开win98j.ima,把所有文件解压到特定目录,比如98dos
b)把ghost.exe复制到98dos文件夹
c)用写字板打开autoexec.bat文件,在这里增加一行(红色字体)
……
IF "%config%"=="NOCD" GOTO QUIT
IF "%config%"=="HELP" GOTO HELP
ghost
LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%
……
保存退出。
d)用ultraiso新建一个软盘镜像(注意容量要足够,并且启动扇区选win98dos)
e)把98dos文件夹的所有文件复制到ultraiso的工作区
f)在ultraiso保存命名为dosghost.ima,这样,一个直接启动ghost的dos镜像就做好了。把它复制到u盘的boot目录
g)现在改menu.lst,在最后增加下列命令
title 启动ghost
map --mem /boot/dosghost.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
用u盘启动电脑后,选择‘启动ghost’,再选择‘带cd-rom支持’选项,进入dos后就会自动运行ghost。(这是个非常简陋的修改,只是用来做个例子)
5)下面来个复杂点的,在u盘里增加一个winpe。^_^
首先,你需要winpe的安装包。下载一个吧。下面以常用的老毛桃911版pe为例讲一下。网上下载的老毛桃pe安装包都会格式化u盘并且重写引导区。这些步骤上面我们都做过了。所以安装的时候,把这些步骤都跳过。我们只需要安装好后的pe程序包。(如果不能跳过的话,你可以用虚拟机装好后,把pe的程序提取出来,复制到u盘。或者直接装到u盘后,重新给你自定的工具添加引导)
实际上提取出来的老毛桃911版winpe只包含一个文件夹,名为MINIPE。把它整个复制到u盘根目录(注意不可以改名)。其内容如下,红圈的文件是pe的启动加载器。

然后,我们来修改menu.lst,在最后增加
title WinPE
chainloader /MINIPE/LDRXPE
用u盘启动电脑,选择WinPE即可进入老毛桃911版WinPE。如右图。
6) 这回来启动xp的安装程序吧。实际上,启动xp的安装程序,最好的方法是量产,或者ultraiso的usb-hdd+方式。这是因为xp的安装需要在保护模式下进行,而grub4dos是在实模式下运行的。但是量产和usb-hdd+方式的局限,在于它们不可以再次定制。嵌入的iso是怎么样就是怎么样的。因为不符合我们的要求。所以要用grub4dos来引导xp的安装,只能先进dos环境,在dos下运行winnt.exe来启动xp的保护模式安装环境。
其实我更愿意进入dos后手动输入命令来安装xp,如下:(假设xp的安装程序目录是u盘根目录下xpsp3文件夹)
smartdrv.exe
cd c:\xpsp3\i386
winnt.exe
让dos自动运行当然也没问题。在autoexec.bat把上述命令加进去就可以了。但是有一个问题需要注意。因为我们要从u盘给本地硬盘安装xp,本地硬盘应当占据c盘符。而当u盘启动后缺省已经占用了c盘符。因此我们要事先把盘符交换一下,否则xp的引导文件可能会被装到u盘上。在menu.lst增加下面的命令:(假设win98j.ima的autoexec.bat文件已经加入了自动运行xp安装程序的命令)
title 安装xp到本地硬盘
map --mem /boot/win98j.ima (fd0)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
这样用这个选项启动后,u盘将是d盘,本地硬盘将是c盘。
7)如果你的u盘足够大,我们还可以把win7的安装程序也搞上去。下载一个win7的iso,用虚拟光驱加载或ultraiso打开,把它的内容复制到u盘根目录。(注意不能复制到单独的文件夹里,必须是u盘的根目录)这时u盘的根目录看起来很混乱,但是没办法,win7的安装引导加载器不认别的目录。(如果你想要清爽点,可以把u盘专门分一个区,然后把win7的安装程序放在这个分区下,再用grub4dos来引导它,详见我的另一贴《WIN7安装U盘版制作过程》)
然后我们用grub4dos来引导win7的bootmgr,这个文件是win7的引导加载器,此时位于u盘根目录下。在menu.lst增加:
title 安装 win 7 到本地硬盘
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
chainloader /bootmgr
 
 
 
好了,来看看最后成果。最后的menu.lst和引导界面如下:(为了美观易认,我给每个启动项目加上了编号,并且调整了一下顺序)
color black/cyan yellow/cyan
timeout 30
default 0
fontfile /fonts.gz
splashimage=/splash1.xpm.gz
title [1] 启动DOS
map --mem /boot/win98j.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title [2] 启动ghost
map --mem /boot/dosghost.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title [3] 启动u盘WinPE
chainloader /MINIPE/LDRXPE
title [4] 安装xp到本地硬盘
map --mem /boot/win98j.ima (fd0)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title [5] 安装 win 7 到本地硬盘
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
chainloader /bootmgr
title [6] 重启
savedefault --wait=2
reboot
title [7] 关机
savedefault --wait=2
halt
最后的最后,给个链接《grub4dos中文自述文档》,它包含各种grub4dos命令的详细用法。
p.s. 再来个链接《grub4dos初级教程图文版》
p.s.《GHOST V11命令行参数说明-中英文》