无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 9458|回复: 14
打印 上一主题 下一主题

[讨论] 大家来接力,共同讨论 Grub4Dos 从本地硬盘启动本地系统

[复制链接]
跳转到指定楼层
1#
发表于 2017-6-9 17:16:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xmzhqw 于 2017-6-9 21:40 编辑

为了制作“从本地硬盘启动”,花了我一个下午的时间,还没找到最佳方案,所以不得不发此帖,广招无忧英雄出手相助。我的情况是这样的:想兼顾U盘、移动硬盘、CD等启动;又要兼顾多个系统多个硬盘;还有SSD与其它硬盘混杂在一起,想一个完善的都很难。下面是我当前的几个测试方案。
主要是从移动硬盘启动考虑的,我的电脑中的磁盘及分区情况如下图所示:

根据这样的图,我做了以下几个方案的测试,下面是代码及测试情况。
方案一:从移动硬盘启动我的笔记本上系统:无法启动。但U盘启动正常,这是比较大众化的启动方案。
title 【08】 启动 本地操作系统
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /ntldr || chainloader /bootmgr


方案二:可以直接启动,但在我的台式机上又启动不了。
title 【08】 从硬盘启动
find --set-root --devices=h /Windows/System32/winload.exe || find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --devices=h /Windows/System32/winload.exe || find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
chainloader /bootmgr || chainloader /ntldr



方案三:在我的笔记本和台式机上都可以启动。就是要启动2次(按2次启动 硬盘操作系统)
title 【08】 启动 硬盘操作系统
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
map () (hd1)
map (hd1) ()
map --rehook
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
chainloader +1


方案四:把HD1改为HD0,在我的电脑中也启动不了,就只能用HD1.
title 【08】 启动 硬盘操作系统
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
chainloader +1

现在要考虑一个比较全面的方案,但一时想不到。不知您是如何做的?还有,能不能做个类似批处理的代码兼顾各方而的情况呢?网上有没有这样的代码?
2#
 楼主| 发表于 2017-6-9 17:17:22 | 只看该作者
本帖最后由 xmzhqw 于 2017-6-9 19:03 编辑

下面是我从论坛中搜索到的一些方案,顺便也列出来供大家参考,当作抛砖引玉吧。

如果你的启动U盘是USB—HDD格式:有阴也有阳的方案http://bbs.wuyou.net/forum.php?m ... 0&fromuid=43705
title 从第一块硬盘启动
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd0)
chainloader (hd0)+1

假如你的启动U盘是USB—ZIP格式:

title 从第一块硬盘启动
rootnoverify (hd0)
chainloader (hd0)+1


如何设置总是从最后一块硬盘启动Windows?有阴也有阳的方案:http://bbs.wuyou.net/forum.php?m ... 0&fromuid=43705

title 从最后一块本地硬盘启动Windows NT/2k/XP系统
find --set-root /mylastdisk.txt
chainloader /ntldr

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

填好的menu.lst菜单用BOOTICE软件的实用工具中的GRUB4DOS菜单编辑器用UTF8编码保存,保存好

后,要把保存好的menu.lst菜单复制、粘贴到第5个硬盘接口的硬盘里的grldr文件所在的分区的根目录

下,也就是说grldr文件、menu.lst文件、grub4dos0.4.6a的软件安装压缩包的解压文件夹要位于第5个

硬盘接口的硬盘的同一分区的根目录下。

如何设置总是从最后一块硬盘启动Windows?有阴也有阳的方案:http://bbs.wuyou.net/forum.php?m ... 1&fromuid=43705
title 从最后一块本地硬盘启动Windows NT/2k/XP系统
rootnoverify  (hd-1,0)
chainloader /ntldr

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

2011epe的方案:http://bbs.wuyou.net/forum.php?m ... 4&fromuid=43705
title
clear

title   从本机硬盘MBR启动1 \n 从UD引导;从光盘引导;从普通USB-HDD U盘引导;本机硬盘启动再转本地硬盘启动
set b=)/BOOT/GRUB/BOOTFIX.ISO
checkrange 0x80 read 0x8280 && if exist (hd0)/fb.cfg && set b=ud%b%
checkrange 0x23 read 0x8280 && if not exist (fd0)/fb.cfg && set b=ud%b%
set b=(%b%
set /a hdn=*0x475&0xff
if %hdn%>=2 && if /I "%b%"=="(ud)/AXPE/IMGS/BOOTFIX.ISO" && map (hd1) (hd0) && map (hd0) (hd1)
map --unmap=0xfe
map %b% (0xfe) || map --mem %b% (0xfe)
map --rehook
chainloader (0xfe)
boot


title   从本机硬盘MBR启动2 \n 搜索具备ntldr、bootmgr的硬盘启动
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader (hd0)+1
boot

title   从本机硬盘MBR启动3 \n
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
checkrange 0x80 read 0x8280 && map --hook
chainloader (hd0)+1


title   启动 NT5/NT6引导操作系统  \n
map --mem /copy/petools/grub/NTBOOT.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

启动U盘中的“从硬盘启动计算机”菜单如何写通用的代码?http://bbs.wuyou.net/forum.php?mod=viewthread&tid=207051
title 从硬盘启动计算机 - Windows All
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmbr || find --set-root --ignore-floppies --ignore-cd /io.sys
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmbr || find --set-root --ignore-floppies --ignore-cd /io.sys
chainloader (hd0)+1
boot


于山:我是这样写的:http://bbs.wuyou.net/forum.php?m ... 2&fromuid=43705
title [18]--从硬盘启动计算机 (DOS下,识别U盘为C的机子用)
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
makeactive
chainloader +1
boot
title [19]--从硬盘启动计算机 (DOS下,识别U盘为A的机子用)
map --hook
chainloader (hd0)+1
rootnoverify (hd0)
boot
回复

使用道具 举报

3#
发表于 2017-6-9 17:32:17 来自手机 | 只看该作者
试试ntboot,无需本地启动文件直接启动各种硬盘上的系统

点评

谢谢!ntboot我还不清楚,刚才搜索了一下,5大的方案如下(还没试过)文章地址:http://bbs.mydigit.cn/read.php?tid=532787 第一种方法:如果将SISO放在根目录,进入grub命令行,输入: if exist ()/SISO ||  详情 回复 发表于 2017-6-9 17:56
回复

使用道具 举报

4#
 楼主| 发表于 2017-6-9 17:56:11 | 只看该作者
本帖最后由 xmzhqw 于 2017-6-9 17:57 编辑
lingqing 发表于 2017-6-9 17:32
试试ntboot,无需本地启动文件直接启动各种硬盘上的系统


谢谢!ntboot我还不清楚,刚才搜索了一下,5大的方案如下(还没试过)文章地址:http://bbs.mydigit.cn/read.php?tid=532787

第一种方法:如果将SISO放在根目录,进入grub命令行,输入:
if exist
()/SISO || find --set-root /SISO
command
()/SISO


第二种方法:也可将命令写成菜单,比如,菜单文件是menu.lst,想用SISO搜索硬盘上的系统,那么在 menu.lst 中加一段:
title 搜索硬盘上的系统
if exist ()/boot/grub/siso || find --set-root
/boot/grub/siso
command ()/boot/grub/siso
boot=hd
回复

使用道具 举报

5#
发表于 2017-6-9 19:59:38 | 只看该作者

不用化币 能看资料 网盘地址

本帖最后由 大悍虎 于 2017-6-9 20:09 编辑

参考资料下载地址——看图中百度网盘文件地址——

http://pan.baidu.com/s/1cqzY9K        密码  kd95

博客地址 http://blog.sina.com.cn/a527104427

2017-06-09_195349.png[grub-].png (34.74 KB, 下载次数: 161)

2017-06-09_195349.png[grub-].png

2017-06-09_194716.png【grub】.png (176.02 KB, 下载次数: 172)

2017-06-09_194716.png【grub】.png
回复

使用道具 举报

6#
发表于 2017-6-9 20:24:22 | 只看该作者
本帖最后由 liuyindou 于 2017-6-9 20:26 编辑

试试这个 搜索硬盘上的系统

title  使用SISO,搜索硬盘上的系统
command siso boot=hd

title 从硬盘启动,自动检测  将对所有系统进行列表
command siso ntboot auto

title 从硬盘启动NT5  启动第一个搜索到的系统
command siso ntboot NT5

title 从 (hd0,0) 启动NT5   
command siso ntboot NT5=(hd0,0)

SISO.7z

1.9 MB, 下载次数: 43, 下载积分: 无忧币 -2

放根目录试试

回复

使用道具 举报

7#
发表于 2017-6-9 20:32:34 | 只看该作者
** [分享]Grub4Dos - 直接启动Win10,...,Win7, 第1个XP, XP.VHD, PE ==>
    http://bbs.wuyou.net/forum.php?mod=viewthread&tid=380990

回复

使用道具 举报

8#
发表于 2017-6-9 21:53:06 | 只看该作者
楼主想法不错,一块学习一下!
回复

使用道具 举报

9#
发表于 2017-6-9 22:23:19 | 只看该作者
SISO很强大呀,学习了
回复

使用道具 举报

10#
 楼主| 发表于 2017-6-10 15:59:42 | 只看该作者
今天查阅了“杏雨梨云USB维护系统端午版”的硬盘启动,发现杏大的做法更简单:
boot -1

我没文化,不知道理,但拿来用,发现真的可以。
回复

使用道具 举报

11#
发表于 2017-6-10 16:51:10 | 只看该作者
标记一下!
回复

使用道具 举报

12#
发表于 2017-6-12 15:41:49 | 只看该作者
boot -1
是从BIOS设定的下一个启动项进行启动。
如果BIOS的启动项里面没有从硬盘启动,那就无法从硬盘启动。
回复

使用道具 举报

13#
发表于 2017-6-17 20:08:11 | 只看该作者
title 启动硬盘系统 \n 仅适用于USB设备启动本地硬盘上的系统,先查找bootmgr文件,失败后再查找ntldr文件
command RUN --nt

这个也可以
回复

使用道具 举报

14#
发表于 2024-4-28 14:23:14 | 只看该作者
谢谢分享,为了这个问题我也下载并试过很多坛友的作品,一直没能找到满意的
回复

使用道具 举报

15#
发表于 2024-11-5 22:17:21 | 只看该作者
赞赞
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-16 06:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表