本文记录的是我用 U 盘来引导与 Windows 7 并存的 OpenSUSE Linux 系统的方法,支持从 U 盘启动 openSUSE 或者直接引导进入 Windows 7 启动进程。当然,使用这个方法的前提是计算机支持 U 盘引导。
具体操作如下:
- 准备一个 U 盘,不需要太大(当然容量大点儿也没问题,余下的空间还可以继续用),将里面的东西先备份出来;
- 使用HP优盘格式化工具将此 U 盘制作为一个 MS DOS 启动盘;如下图
- 在 U 盘里新建一个文件夹 boot,下载 grub4dos,将下载的 Grub4DOS 解压后全部放到 boot 文件夹下,同时将文件夹名改为 grub (短些好记好用 :)),此时 grub.exe 的路径为
u盘:\boot\grub\grub.exe
; - 使用文本编辑器(如记事本 NotePad)编辑
u盘:\boot\grub\menu.lst
文件,将其中的(大概是第 10 行开始)(# 号后面的内容为注释)title find and load NTLDR of Windows NT/2K/XP fallback 1 find --set-root --ignore-floppies /ntldr chainloader /ntldr savedefault --wait=2 title find and load BOOTMGR of Windows VISTA fallback 2 find --set-root --ignore-floppies /bootmgr chainloader /bootmgr savedefault --wait=2
修改为
title Windows 7 # Windows 7 启动项 fallback 1 find --set-root --ignore-floppies /ntldr chainloader /ntldr savedefault --wait=2 title OpenSUSE 2.6.37.6-0.5 Desktop # OpenSUSE 启动项,2.6.37.6-0.5 是内核版本号 fallback 2 root (hd1,5) # 指定 root 位置 # 这是 grub 使用的硬盘号,需按照 grub 规则编写 # (hd1,5) 是 Linux 的 root 分区 # 即 Windows 下的 E 盘(我的机器 Windows 下只有 C D 2个盘,Linux root 分区位于原来的 E 盘位置) # 如果你的位置不同,这里就不一样了 kernel /boot/vmlinuz-2.6.37.6-0.5-desktop # 如果升级了内核,或者不是 OpenSUSE 11.4,版本号可能需要相应变化 initrd /boot/initrd-2.6.37.6-0.5-desktop # 同上 boot savedefault --wait=2
并保存。
- 为了方便,在 U 盘根目录创建一个批处理文件来启动 grub。在 U 盘根目录创建一个文本文件,写入下面的命令:
@echo on c:\boot\grub\grub.exe
然后将此文本文件改名为 grub.bat (注意连后缀一起改)(盘符为 C 是因为使用 U 盘引导启动后 U 盘就是 C 盘,这也是上面使用 (hd1,5) 的原因)。
- 现在就可以用 U 盘来启动 OpenSUSE 或者 Windows 7 (顺便)了,U 盘启动后输入 grub.bat 并回车即可看到启动菜单。
需要注意的就是,每次升级 Linux 内核,都需要修改 menu.lst 中的版本号。如果觉得修改 Linux 内核的版本号很烦人的话,可以参考另一篇文章使用通配符来解决。©
本文发表于水景一页。永久链接:<http://cnzhx.net/blog/grub-on-usb-stick-boot-windows-or-linux/>。转载请保留此信息及相应链接。
学习啦,很需要、
引用通告: Windows 7 下通过硬盘上的光盘镜像安装 openSUSE | 水景一页
引用通告: 恢复 Windows 7 与 OpenSUSE 双系统的 GRUB 2 引导菜单 | 水景一页