无忧启动论坛

标题: 求助!哪位帮忙写个切换活动分区的GRUB菜单 [打印本页]

作者: caozhi256    时间: 2012-3-17 11:17
标题: 求助!哪位帮忙写个切换活动分区的GRUB菜单
我的机器只有一块硬盘,第一分区和第二分区为主分区,后面为逻辑分区。我在第一分区和第二分区上分别安装了winxp和win7。

我是这样安装的:
1、把hd(0,0)设置为活动分区,hd(0,1)隐藏,安装winxp
2、再反过来hd(0,1)设置为活动分区,hd(0,0)隐藏,安装win7
我是想尽量保持两个系统的独立性,逻辑分区上有许多公用的软件(不便调整盘符),系统的备份与恢复也方便些。
但是切换系统的时候总用WINPM搞来搞去(激活、显现、隐藏),觉得很不方便。

现在想用GRUB来实现引导切换操作系统【grub引导已经写到MBR,grldr文件放在hd(0,8)上】,大伙儿帮忙写个菜单呀!
1、启动winxp系统       -----当然是自动激活hd(0,0),隐藏hd(0,1)
2、启动win 7系统        ------反之

仔细找了grub命令索引,似乎和这几个命令有关:

hiddenflag 分区隐藏标记
makeactive 将 root 设备置为活动分区
parttype 改变指定分区(PART)的分区类型(TYPE)

搞了半天,还是搞不定。
大伙帮忙呀,不胜感激!谁让我小白呢。
作者: sratlf    时间: 2012-3-17 11:21
标题: 回复 #1 caozhi256 的帖子
和我以前的一个菜单差不多  确定分区号没错的话可以这样

title xp
hide (hd0,1)
root (hd0,0)
chainloader /ntldr
boot

title 7
hide (hd0,0)
root (hd0,1)
chainloader /bootmgr
boot
作者: caozhi256    时间: 2012-3-17 14:30
原帖由 sratlf 于 2012-3-17 11:21 发表
和我以前的一个菜单差不多  确定分区号没错的话可以这样

title xp
hide (hd0,1)
root (hd0,0)
chainloader /ntldr
boot

title 7
hide (hd0,0)
root (hd0,1)
chainloader /bootmgr
boot


谢谢斑竹大大!谢谢您的热心帮助!

不知道hide命令是本次启动生效还是永久生效
比如说我通过grub进入win7后,下次再进win7还要 "热键----grub菜单----win7”吗?而且没有更改活动分区的话,在第二分区上部署别人封装好的GHO系统总是有问题的。我所需要的仅是想知道用GRUB来代替winpm“设置活动分区--显现--隐藏”操作的方法,倒不是一定要引导到系统。

能再帮帮我吗?谢谢!

[ 本帖最后由 caozhi256 于 2012-3-17 14:34 编辑 ]
作者: sratlf    时间: 2012-3-17 14:37
不太确定能否达到你的效果  不过试试吧

title xp
hide (hd0,1)
root (hd0,0)
makeactive
chainloader /ntldr
boot

title 7
hide (hd0,0)
root (hd0,1)
makeactive
chainloader /bootmgr
boot
作者: sratlf    时间: 2012-3-17 14:37
标题: 回复 #3 caozhi256 的帖子
都是永久生效的
作者: zhs509    时间: 2012-3-17 14:40
标题: 回复 #5 sratlf 的帖子
请教版主,如何写命令判断当前分区是否为fat32或fat分区,若满足条件执行下面的命令

例如:我判断是否为FAT32或FAT分区决定是否显示转syslinux菜单项目
作者: sratlf    时间: 2012-3-17 14:55
标题: 回复 #6 zhs509 的帖子
parttype
call Fn.15 "%@retval%" "12" && call Fn.15 "%@retval%" "6" && echo not fat or fat32
chainloader /BOOT/ISOLINUX.BIN

不太确定  记得fat编号为0x06  fat32编号为0x0c

[ 本帖最后由 sratlf 于 2012-3-17 14:57 编辑 ]
作者: zhs509    时间: 2012-3-17 14:58
标题: 回复 #7 sratlf 的帖子
谢谢版主回复,暂时先不管了。。。

还是通过判断文件LDLINUX.SYS吧。。。
作者: caozhi256    时间: 2012-3-17 15:14
原帖由 sratlf 于 2012-3-17 14:37 发表
不太确定能否达到你的效果  不过试试吧

title xp
hide (hd0,1)
root (hd0,0)
makeactive
chainloader /ntldr
boot

title 7
hide (hd0,0)
root (hd0,1)
makeactive
chainloader /bootmgr
boot



再次感谢您!晚上空了就搞
作者: zhs509    时间: 2012-3-25 17:32
标题: 回复 #7 sratlf 的帖子
大概知道怎么写了。。。
  1. title  转syslinux 菜单(FAT或FAT32才显示syslinux菜单)
  2. find --devices=h --set-root /ldlinux.sys && checkrange 0x0C parttype && chainloader /ldlinux.sys || find --devices=h --set-root /ldlinux.sys && checkrange 0x06 parttype && chainloader /ldlinux.sys
复制代码

[ 本帖最后由 zhs509 于 2012-3-25 17:38 编辑 ]
作者: you6636    时间: 2012-4-1 19:29
电脑爱好者好像是08年15期有一篇讲得很清出,题目是井水不防河水,让…。我就是看了那编文章才知道grub那么强大。从那以后开始学习grub各种用法,s大那写法应该可以,你自己根据实际情况修改相印命令
作者: jyztl    时间: 2012-4-1 20:11
用xorboot管理多系统引导,可以完美解决,启动xp系统时自动隐藏win7所在的分区;启动win7自动隐藏xp所在的分区,很方便。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3