如果你已经看过《手动安装veket到硬盘》和《简单的将veket安装到U盘的方法》两篇文章并且安装成功的话,说明不适用本文的安装环境,就不用往下看了。
《手动安装veket到硬盘》一文采用grub4dos来引导硬盘上的veket,主要是用来在本机已安装Windows 2000/XP系统的磁盘上添加veket双系统引导,不适用于把移动硬盘安装成USB启动盘。
《简单的将veket安装到U盘的方法》一文采用syslinux来引动veket,可以用来把U盘、移动硬盘安装成USB启动盘,但是syslinux只支持fat和fat32分区,因此不适合在ntfs分区格式的移动硬盘上安装。
veket建议采用FAT32分区作为文件系统格式,但是采用NTFS分区也不是不可以。在下有一个自己买盒子组装的30G的USB硬盘,平常用于携带大文件,因为容量不大,所以将整盘格式化为一个NTFS主分区,采用下文的安装方法,完美实现了移动硬盘的veket启动。安装步骤如下:
1. 用grubinst工具安装grub4dos到USB硬盘的MBR
grubinst(下载地址:http://sourceforge.net/projects/grub4dos/files/)是一个用来将GRUB4DOS安装到硬盘的MBR(或者分区的引导扇区)以及映像文件中的工具(使得磁盘具有启动功能,就像DOS里面的sys命令一样),它的功能基本上与GRUB4DOS发行包中的bootlace.com(可以运行在纯DOS或者Linux环境)相同,但是跟 bootlace.com不同,grubinst完全是用C语言开发的,能够在Windows NT/2K/XP、Linux和FreeBSD等操作系统下编译并运行。
选择USB硬盘(可以在Windows磁盘管理中看到磁盘顺序),然后按照上图选项设置,点击Install安装。
关于grubinst_gui工具的选项依次简单介绍一下:
Device Name部分
(1) Disk —— 选择安装grub的硬盘,grub将安装到硬盘的MBR中;
(2) File —— 选择img磁盘映像文件,grub讲安装到该磁盘映像中。
Options部分
(1) 在写入MBR之前,不把原来的MBR备份到第二个扇区(出发MBR的长度超过了一个扇区的大小,否则不建议选择);
(2) 禁止在硬盘上找不到GRLDR文件的时候搜索软驱(现在都不配软驱了,选择吧);
(3) 禁止在启动失败后尝试启动原来的MBR;
(4) 禁止在GRUB菜单中进入命令行状态(防止别人乱改);
(5) 默认5秒等待时间在GRUB和之前的MBR之间做出选择,默认启动原来的MBR;
(6) 首先驱动器/首选分区/默认超时时间/热键 —— 这几个都是用来辅助配置上面第(5)项:首选驱动器和分区设置默认启动的MBR;默认超时时间设置等待时间;按热键启动grub。
Restore部分
(1) Save File —— 将原来的MBR保存成文件;
(2) 从保存的文件中恢复原来的MBR;
(3) 从第二个扇区恢复原来的MBR。
另外请注意,当前版本的grubinst不支持在Windows 95/98/ME下修改硬盘的MBR,对于这些操作系统,请使用bootlace.com。
PS.貌似也可以用WinGRUB在XP下替代gurbinst,没有测试过。
2. 手动修改menu.lst,配置veket引导
menu.lst文件内容如下:
timeout 10 # 启动菜单等待10秒以后自动选择第一个启动项
# 启动菜单添加中文字体支持
fontfile (hd0,0)/grub/fonts
# 启动菜单添加背景画面
splashimage (hd0,0)/grub/splashimage.xpm.gz
# 设置动画图形菜单文件
gfxmenu (hd0,0)/grub/grub_chs.msg
title veket 随身系统 # 第一个启动项显示的名称为“veket 随身系统”
kernel (hd0,0)/veket/vmlinuz root=/dev/ram0 PMEDIA=usbhd
initrd (hd0,0)/veket/initrd.gz
title 本地磁盘引导 # 第二个启动项,用来回到本地磁盘引导
root (hd1,0) —— 当从USB硬盘启动时,USB硬盘被认作hd0,本地磁盘被认作hd1
chainloader (hd1,0)+1 # “链式装入器”从(hd1,0)装入NT引导记录引导
map (hd0) (hd1) # 把磁盘hd1映射为hd0
map (hd1) (hd0) # 成对使用
Makeactive # 设置分区的活动标记
有必要解释一下,当从USB硬盘启动时,USB硬盘被认作hd0,本地磁盘被认作hd1,这和在Windows中看到的磁盘顺序不同。根据grub文档中的解释,对于依赖 BIOS 确定驱动器顺序的系统,如DOS、Windows,当它们不在第一个启动磁盘的时候,需要用map命令把该磁盘映射为第一个磁盘。map命令一般应成对使用以保证可靠。
下载grub4dos(http://download.gna.org/grub4dos/),把veket目录、menu.lst文件和grub4dos压缩包中chinese目录下的grldr文件复制到USB硬盘根目录,然后创建grub目录,把fonts中文字体文件、grub_chs.msg图形菜单文件和splashimage.xpm.gz背景画面文件复制进去,veket目录和grldr文件不要使用NTFS磁盘压缩。(如果只使用英文菜单,而且不准备美化菜单,则不需要grub目录,并且删除menu.lst文件中那两行内容)
小技巧:如果启动失败进入到了grub的命令行,一般是系统识别到的USB设备号和menu.lst文件里写的设备号不一致,可以输入命令“root (”,然后按TAB键补全,grub会自动把系统识别到的设备号、分区等信息列出来,找到USB设备对应的设备号,修改menu.lst即可。
说明:
fontfile 的文件必须是 16 点阵字库;
splashimage 的文件必须是640x480 14色的XPM格式,支持zip压缩。在windows下可以先制作BMP文件,再用xnview或gimp for Windows保存成XPM,最后用7zip选择gzip格式压缩;
gfxmenu 的文件当前只能使用 Linux 下的 mkbootmsg 工具生成。
新手遇到的启动失败、中文菜单乱码问题请注意看上文红字标注!
GRUB4DOS中文论坛: 时空论坛
GUUB4DOS中文教程:http://grub4dos.sourceforge.net/wiki/index.php/Main_Page
高人BLOG:http://chenall.net/grub4dos/