fly9902 发表于 2015-12-25 16:30:15

grub4dos是否可以判断哪个硬盘有操作系统并自动引导呢?

本帖最后由 fly9902 于 2015-12-26 10:18 编辑

现在有这样一个问题,购买了一个Gen8作为Nas使用,机箱自带四个硬盘抽取位(sata1~sata4),还有一个sata5端口可以挂载一个硬盘,bios设置从硬盘引导只能从sata1引导,没有办法选择引导顺序,现在的办法是用u盘使用grub4dos来引导sata5硬盘上的windows启动,但问题来了,sata1~stat4数量发生变化,u盘的启动菜单就要修改一次,有没有办法让grub4dos来判断哪个硬盘里有操作系统呢?

u盘里的menu.lst命令是这样的:有什么办法来判断哪个硬盘有windows server,我想让硬盘数量无论怎么变都可以顺利无干预的实现从sata5启动,请高手帮忙

# This is a sample menu.lst file. You should make some changes to it.
# The old install method of booting via the stage-files has been removed.
# Please install GRLDR boot strap code to MBR with the bootlace.com
# utility under DOS/Win9x or Linux.

color blue/green yellow/red white/magenta white/magenta
timeout 5
default /default

title boot--001
root (hd1,0)
chainloader /bootmgr

title boot--002
root (hd2,0)
chainloader /bootmgr

title boot--003
root (hd3,0)
chainloader /bootmgr

title boot--004
root (hd4,0)
chainloader /bootmgr

title boot--005
root (hd5,0)
chainloader /bootmgr

title reboot
reboot

附件是引导包的全部内容,把u盘格式成NTFS并设置成活动分区,把压缩包里的两个文件放进去就能引导不同硬盘里的操作系统

有阴也有阳 发表于 2015-12-25 16:43:49

本帖最后由 有阴也有阳 于 2015-12-25 17:09 编辑

title 从最后一块硬盘启动
root (hd-1,0)
chainloader /bootmgr

title reboot
reboot

      不管前面放置了几块硬盘,都能确保从最后的一块硬盘启动。

      或者:

title 从最后一块本地硬盘启动Windows NT/2k/XP系统
rootnoverify(hd-1,0)
chainloader /ntldr

title 从最后一块本地硬盘启动Win7/Win8/Win10系统
rootnoverify(hd-1,0)
chainloader /bootmgr

      如果你能确保SATA1接口位置始终有硬盘,增减的只是SATA2、SATA3、SATA4位置的硬盘,那就把SATA1接

口位置的硬盘的主引导记录设置成grub4dos0.4.6a,再把grub4dos0.4.6a的grldr、menu.lst文件和grub4dos0.4.6a的

软件安装压缩包的解压文件夹及里面的全部文件都复制、粘贴到此硬盘的同一个分区的根目录下,在menu.lst菜单上写上:

title 从最后一块硬盘启动
map (hd0) (hd-1)
map (hd-1) (hd0)
rootnoverify (hd0)
chainloader (hd0)+1

      那么一开机,不用从U盘引导也能进入最后的一块硬盘的系统。


fly9902 发表于 2015-12-25 16:46:00

本帖最后由 fly9902 于 2015-12-25 17:04 编辑

有阴也有阳 发表于 2015-12-25 16:43
title 从最后一块硬盘启动
root (hd-1,0)
chainloader /bootmgr


谢谢,我试试看




不成功,卡住了



# This is a sample menu.lst file. You should make some changes to it.
# The old install method of booting via the stage-files has been removed.
# Please install GRLDR boot strap code to MBR with the bootlace.com
# utility under DOS/Win9x or Linux.

color blue/green yellow/red white/magenta white/magenta
timeout 0
default /default

title boot last Harddisk
root (hd-1,0)
chainloader /bootmgr

title reboot
reboot



帮我看看,是不是脚本不对?

红毛樱木 发表于 2015-12-25 17:09:04

用find --set-root就可以吧?

有阴也有阳 发表于 2015-12-25 17:12:54

fly9902 发表于 2015-12-25 16:46
谢谢,我试试看




title 从最后一块本地硬盘启动Win7/Win8/Win10系统
rootnoverify(hd-1,0)
chainloader /bootmgr

      用这个试试。

      或者按红毛樱木说的:

title 从最后一块本地硬盘启动Win7/Win8/Win10系统
find --set-root /bootmgr
chainloader /bootmgr


fly9902 发表于 2015-12-25 17:24:47

有阴也有阳 发表于 2015-12-25 17:12
title 从最后一块本地硬盘启动Win7/Win8/Win10系统
rootnoverify(hd-1,0)
chainloader /bootmgr




还是失败,两种都失败了,很郁闷

fly9902 发表于 2015-12-25 17:28:16

本帖最后由 fly9902 于 2015-12-25 17:30 编辑

有阴也有阳 发表于 2015-12-25 16:43
title 从最后一块硬盘启动
root (hd-1,0)
chainloader /bootmgr


因为是可插拔硬盘盒,所以不能保证sata1始终有硬盘,所以每次增减硬盘都得选择usb启动菜单很麻烦



能否像dos一样用if 来判断每块硬盘是否有bootmgr文件,如果有就从这块硬盘启动,没有就从继续检测下块硬盘?

有阴也有阳 发表于 2015-12-25 17:30:08

fly9902 发表于 2015-12-25 17:28
因为是可插拔硬盘盒,所以不能保证sata1始终有硬盘,所以每次增减硬盘都得选择usb启动菜单很麻烦

title 从最后一块本地硬盘启动Win7/Win8/Win10系统
find --set-root /bootmgr
chainloader /bootmgr

用这个试试,这要不行,我也没辙了。

fly9902 发表于 2015-12-25 17:38:48

有阴也有阳 发表于 2015-12-25 17:30
title 从最后一块本地硬盘启动Win7/Win8/Win10系统
find --set-root /bootmgr
chainloader /bootmgr
...

的确还是不行,有劳了,谢谢,辛苦

有阴也有阳 发表于 2015-12-25 18:19:13

fly9902 发表于 2015-12-25 17:38
的确还是不行,有劳了,谢谢,辛苦

你查看一下你的grub4dos的版本,是不是太旧了,用最新版的grub4dos0.4.6a。

hgh1974 发表于 2015-12-25 18:55:13

用NTBOOT中的DETECT.LST自动搜索硬盘或者用SISO BOOT=HD
NTBOOT,SISO本论坛有下载

lbw2007 发表于 2015-12-25 19:13:09

fly9902 发表于 2015-12-25 17:38
的确还是不行,有劳了,谢谢,辛苦

这个菜单报错是什么?还是Error 25 : Disk read error ?
请问楼主1楼自己给出的菜单在U盘是否能够引导成功?

lbw2007 发表于 2015-12-25 19:21:27

本帖最后由 lbw2007 于 2015-12-25 19:31 编辑

还有一种可能是根目录下有bootmgr但是所在分区没有操作系统。
这种情况建议试一下:
title1. 启动本地的Windows系统
find --set-root --devices=h /Windows/System32/winload.exe || find --set-root --devices=h /ntldr || configfile (ud)/boot/grub/menu.lst
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --devices=h /Windows/System32/winload.exe || find --set-root --devices=h /ntldr || configfile (ud)/boot/grub/menu.lst
chainloader /bootmgr || chainloader /ntldr
是我自己用的,支持2003及更高版本的server
|| configfile (ud)/boot/grub/menu.lst
这一句可以改成你自己menu.lst的路径。
也可以用楼上的SISO中的NTBOOT。虽然是手动选择,但是万能。

fly9902 发表于 2015-12-26 09:10:55

lbw2007 发表于 2015-12-25 19:13
这个菜单报错是什么?还是Error 25 : Disk read error ?
请问楼主1楼自己给出的菜单在U盘是否能够引导成 ...

是的,可以引导,我把引导的全部东西放到了一楼的附件,帮忙看看,多谢

fly9902 发表于 2015-12-26 09:11:34

有阴也有阳 发表于 2015-12-25 18:19
你查看一下你的grub4dos的版本,是不是太旧了,用最新版的grub4dos0.4.6a。

多费心了,我把附件上传到了一楼的附件,帮忙看看,多谢

lbw2007 发表于 2015-12-26 09:51:40

fly9902 发表于 2015-12-26 09:10
是的,可以引导,我把引导的全部东西放到了一楼的附件,帮忙看看,多谢

13楼的的菜单试过了吗?
find命令可以查找所有磁盘所有分区的,本身就包含了判断过程。
3楼以后的菜单就开始没有交换磁盘的命令了,但是你的机器可以启动,应该不是这个原因……
我们看不到你grub4dos的版本,因为你只上传了菜单。

fly9902 发表于 2015-12-26 10:11:29

lbw2007 发表于 2015-12-26 09:51
13楼的的菜单试过了吗?
find命令可以查找所有磁盘所有分区的,本身就包含了判断过程。
3楼以后的菜单 ...

谢谢,等下试试,我在一楼上传的附件,就是u盘里的所有东西,就两个文件

fly9902 发表于 2015-12-26 10:17:01

还是不行,我把完整的东西都传上来,帮忙卡看,谢谢

lbw2007 发表于 2015-12-26 11:40:34

fly9902 发表于 2015-12-26 10:17
还是不行,我把完整的东西都传上来,帮忙卡看,谢谢

有没有可能是你用ilo的原因?
还是grub4dos版本太旧了?
我也不能帮到了抱歉

有阴也有阳 发表于 2015-12-26 12:04:53

本帖最后由 有阴也有阳 于 2015-12-26 12:23 编辑

fly9902 发表于 2015-12-26 10:17
还是不行,我把完整的东西都传上来,帮忙卡看,谢谢

      看过了你的《GEN8中利用U盘或TF卡引导Sata5系统最简单的方法》,这个方法纯属脱裤子放屁,多此一举,

如何用U盘,或TF卡引导第5块硬盘接口上的系统,参看:

      http://bbs.wuyou.net/forum.php?mod=viewthread&tid=371351&extra=&highlight=%B4%D3%D7%EE%BA%F3%D2%BB%BF%E9%D3%B2%C5%CC%C6%F4%B6%AF&page=2

的第15楼。

       如果你使用的是U盘,不是TF卡,就不用Diskgenius来把U盘格式成NTFS格式、“重新建立主引导区”,并且激活当前分区之

类的了,直接用BOOTICE软件把你的U盘的“主引导记录”和“分区引导记录”设置成grub4dos0.4.6a的就行了,这部分参阅:

      http://bbs.wuyou.net/forum.php?mod=viewthread&tid=373627&extra=page%3D1

      然后从“d.下载grub4dos0.4.6a软件,下载链接:......”开始照着上面说的一步步地做就行了。




fly9902 发表于 2015-12-26 12:24:22

有阴也有阳 发表于 2015-12-26 12:04
看过了你的《GEN8中利用U盘或TF卡引导Sata5系统最简单的方法》,这个方法纯属脱裤子放屁,多此 ...

谢谢,是grubdos版本的问题,多谢,已经解决

fly9902 发表于 2015-12-26 12:24:35

lbw2007 发表于 2015-12-26 11:40
有没有可能是你用ilo的原因?
还是grub4dos版本太旧了?
我也不能帮到了抱歉

谢谢,是grubdos版本的问题,多谢,已经解决
页: [1]
查看完整版本: grub4dos是否可以判断哪个硬盘有操作系统并自动引导呢?