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 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 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
帮我看看,是不是脚本不对? 用find --set-root就可以吧? 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
有阴也有阳 发表于 2015-12-25 17:12
title 从最后一块本地硬盘启动Win7/Win8/Win10系统
rootnoverify(hd-1,0)
chainloader /bootmgr
还是失败,两种都失败了,很郁闷 本帖最后由 fly9902 于 2015-12-25 17:30 编辑
有阴也有阳 发表于 2015-12-25 16:43
title 从最后一块硬盘启动
root (hd-1,0)
chainloader /bootmgr
因为是可插拔硬盘盒,所以不能保证sata1始终有硬盘,所以每次增减硬盘都得选择usb启动菜单很麻烦
能否像dos一样用if 来判断每块硬盘是否有bootmgr文件,如果有就从这块硬盘启动,没有就从继续检测下块硬盘? fly9902 发表于 2015-12-25 17:28
因为是可插拔硬盘盒,所以不能保证sata1始终有硬盘,所以每次增减硬盘都得选择usb启动菜单很麻烦
title 从最后一块本地硬盘启动Win7/Win8/Win10系统
find --set-root /bootmgr
chainloader /bootmgr
用这个试试,这要不行,我也没辙了。 有阴也有阳 发表于 2015-12-25 17:30
title 从最后一块本地硬盘启动Win7/Win8/Win10系统
find --set-root /bootmgr
chainloader /bootmgr
...
的确还是不行,有劳了,谢谢,辛苦 fly9902 发表于 2015-12-25 17:38
的确还是不行,有劳了,谢谢,辛苦
你查看一下你的grub4dos的版本,是不是太旧了,用最新版的grub4dos0.4.6a。 用NTBOOT中的DETECT.LST自动搜索硬盘或者用SISO BOOT=HD
NTBOOT,SISO本论坛有下载
fly9902 发表于 2015-12-25 17:38
的确还是不行,有劳了,谢谢,辛苦
这个菜单报错是什么?还是Error 25 : Disk read error ?
请问楼主1楼自己给出的菜单在U盘是否能够引导成功? 本帖最后由 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。虽然是手动选择,但是万能。 lbw2007 发表于 2015-12-25 19:13
这个菜单报错是什么?还是Error 25 : Disk read error ?
请问楼主1楼自己给出的菜单在U盘是否能够引导成 ...
是的,可以引导,我把引导的全部东西放到了一楼的附件,帮忙看看,多谢 有阴也有阳 发表于 2015-12-25 18:19
你查看一下你的grub4dos的版本,是不是太旧了,用最新版的grub4dos0.4.6a。
多费心了,我把附件上传到了一楼的附件,帮忙看看,多谢 fly9902 发表于 2015-12-26 09:10
是的,可以引导,我把引导的全部东西放到了一楼的附件,帮忙看看,多谢
13楼的的菜单试过了吗?
find命令可以查找所有磁盘所有分区的,本身就包含了判断过程。
3楼以后的菜单就开始没有交换磁盘的命令了,但是你的机器可以启动,应该不是这个原因……
我们看不到你grub4dos的版本,因为你只上传了菜单。 lbw2007 发表于 2015-12-26 09:51
13楼的的菜单试过了吗?
find命令可以查找所有磁盘所有分区的,本身就包含了判断过程。
3楼以后的菜单 ...
谢谢,等下试试,我在一楼上传的附件,就是u盘里的所有东西,就两个文件 还是不行,我把完整的东西都传上来,帮忙卡看,谢谢 fly9902 发表于 2015-12-26 10:17
还是不行,我把完整的东西都传上来,帮忙卡看,谢谢
有没有可能是你用ilo的原因?
还是grub4dos版本太旧了?
我也不能帮到了抱歉 本帖最后由 有阴也有阳 于 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软件,下载链接:......”开始照着上面说的一步步地做就行了。
有阴也有阳 发表于 2015-12-26 12:04
看过了你的《GEN8中利用U盘或TF卡引导Sata5系统最简单的方法》,这个方法纯属脱裤子放屁,多此 ...
谢谢,是grubdos版本的问题,多谢,已经解决 lbw2007 发表于 2015-12-26 11:40
有没有可能是你用ilo的原因?
还是grub4dos版本太旧了?
我也不能帮到了抱歉
谢谢,是grubdos版本的问题,多谢,已经解决
页:
[1]