标题: 给 Vista 启动菜单添加 GRUB4DOS 项的批处理 [打印本页] 作者: hnfeng 时间: 2008-1-29 17:04 标题: 给 Vista 启动菜单添加 GRUB4DOS 项的批处理
在 XP 下,直接修改 boot.ini 即可添加 GRUB4DOS 项,但是在 Vista 下就没那么简单。
因公司和家里的电脑都是 XP + Vista ,前几日多次试验 GURB4DOS 的功能。之前在 添加这个菜单项都是手工添加,今天做了个批处理,共享出来吧。为防止菜鸟...,前面加了一些垃圾。
下面的批处理将自动添加 GRUB4DOS 启动项到 Vista 的启动菜单中:
===== Add_GRUB4DOS_Menu.bat =====
@echo off
echo 该批处理自动往 Vista 系统的启动菜单中添加 GRUB4DOS 的启动项。
echo 如果不是单一的 Vista(还有XP,2K),必须在 Vista 下运行。
echo 另外,需以管理员身份运行。
echo .
pause
ver | find "6.0." > NUL && goto START
ver | find "XP" > NUL && goto XP2K
ver | find "2000" > NUL && goto XP2K
goto EXIT
:XP2K
echo 不能在 WinXP 或 Win2000 中运行该批处理。
goto EXIT
REM ============= 以上的内容纯属...... ==============
:START
cls
bcdedit | find "\grldr.mbr" > NUL && echo 启动项中已有grub4dos,无需重复安装。&& goto EXIT
bcdedit /create /d "Boot From GRUB4DOS" /application bootsector >GrubID.txt
rem 上面欲增加的GRUB菜单名,可以修改为"GRUB For DOS"、"DOS + GHOST" 等等
for /f "tokens=2" %%i in (GrubID.txt) do set GrubID=%%i
del GrubID.txt > NUL
bcdedit /set %GrubID% device partition=%SystemDrive%
bcdedit /set %GrubID% path \grldr.mbr
bcdedit /displayorder %GrubID% /addlast
:START
cls
if not exist %SystemRoot%\GrubID.txt goto ERROR
for /f "tokens=2" %%i in (%SystemRoot%\GrubID.txt) do set GrubID=%%i
bcdedit /delete %GrubID%
Del %SystemRoot%\GrubID.txt > NUL
goto EXIT
:ERROR
echo 找不到 %SystemRoot%\GrubID.txt,不能自动删除。
:EXIT
====== THE END =====
[ Last edited by hnfeng on 2008-1-30 at 01:10 PM ]作者: 429499381 时间: 2008-1-30 01:09 既然是为了方便菜鸟,那么请人务必把相关工具给个链接!
我觉得你应该把这个批处理做一个通用性的XP 2003 VIST的
多启动菜单 (不包括LINUX)
要求如下:
自动识别该计算机有几个系统
在系统文件(boot)中写入相互启动的菜单
xp 2003 vist通用
不破坏原来的启动菜单
有安全的卸载功能
我想应该对于您来说不会很难吧!! 呵呵, 写好后
我会把此贴置顶一段时间。作者: hnfeng 时间: 2008-1-30 19:28
Quote:
Originally posted by 429499381 at 2008-1-30 01:09 AM:
……
要求如下:
自动识别该计算机有几个系统
在系统文件(boot)中写入相互启动的菜单
xp 2003 vist通用
不破坏原来的启动菜单
有安全的卸载功能
...
以前 XP 时可以在 BOOT.INI 中加 c:\grldr="Start GRUB4DOS",然后只要一个 grldr 文件,不需要 grldr.mbr 文件。为何在 Vista 下要带上这个文件?有办法和原来一样只要一个 grldr ,不带 grldr.mbr 吗?
[ Last edited by NaturalJ0 on 2008-5-13 at 12:37 AM ]作者: billbear 时间: 2009-2-3 22:02 实际上, vista 和 win7 尽管使用 bcd,但仍然会去读 boot.ini(如果有的话)。因此可以沿用老办法。在 c 盘根目录自己写一个 boot.ini :