如何从双硬盘双系统grub引导导Windows系统

Grub4dos是如何引导系统的-老毛桃winpe u盘
Grub4dos是如何引导系统的
  Grub是Linux的一个系统载入启动程序,正如NTLDR之于Windows NT/2K/XP。它就是为多重引导而生,而且适用于多种平台,这里所说的Windows下的Grub就是Grub4dos。在NTFS格式下,在boot.ini里添加一个grldr的选项,然后编辑它的启动菜单把类似DOS.IMG之类的文件加载进去,就算不是 FAT32 也没问题了。
  可能是介于DOS不能与时俱进,微软在2002年发布了WinPE(Windows PreInstallation Environment)预安装环境,相当于迷你的急救WinXP系统。目前市面上流传较广的有老毛桃撒手不管版、深山红叶工具箱等&&,其实五花八门的,虽各有见长,但基本都是大同小异。要么你多个工具软件,要么我多个驱动程序。最主要的应用当然是市面那些DIY的系统安装光盘,例如什么番茄花园什么猪猪猫什么深度技术等。
  之前用的是Grub/DOS(grldr),后来装了老毛桃WinPE带加密功能的硬盘版(mtldr),但是折腾了很久还是无法识别NVIDIA的网卡驱动,而且一些功能报错(例如 MMC),外挂又是打包无法直接编辑;后来发现最帅的菜鸟专用启动光盘(RXPE.LDR)竟然能够识别NVIDIA网卡,但这个版本的其他功能却是非常简陋;所以最后通过深山红叶WinPE(drldr)的外挂包把NVIDIA的驱动包加载到老毛桃的硬盘版里。
  不管那个版本的WinPE,光盘版也好,硬盘版也好,启动菜单几乎都是用grub做的;而且多个版本都是指定了各自的Loader,像什么mtldr、avldr、pxldr等,特别是很多都在C盘根目录放置了很多根本可以不用放到根目录的东东,容易出错且一但有问题难排错。既然都是用Grub来做,那或许应该可以用 Grub来统一引导启动?
  先说说老毛桃WinPE默认的安装目录为C:\MiniPE,默认启动文件为C:\mtldr。DIY开始:首先,在 C:\boot.ini里加上一行:C:\grldr=&Start WinPE with Grub4DOS&,然后,下载最新版的 grub4dos,把解压缩出来的grldr放到C盘根目录。用grldr内置菜单编辑工具,把grldr的启动菜单读取出来,其代码为:
fallback 1
title find /menu.lst
&find --set-root --ignore-floppies /menu.lst
&configfile /menu.lst
title find /boot/grub/menu.lst
&fallback 2
&find --set-root --ignore-floppies /boot/grub/menu.lst
&configfile /boot/grub/menu.lst
title find /grub/menu.lst
&fallback 3
&find --set-root --ignore-floppies /grub/menu.lst
&configfile /grub/menu.lst
title commandline
&commandline
title reboot
title halt
  可以看出grldr会去几个位置找menu.lst,优先查找根目录,若根目录没找到menu.lst,就会去旧版本的位置/boot/grub/menu.lst查找。用GRUB菜单密码MD5工具得到某密码如:123456的MD5 = $1$8$pSqK8hjjgmdb73MJlsrnj1,将上面这段内容修改为下面的代码并保存到刚刚的grldr中:
fallback 1
title WinPE with Grub4DOS
&password --md5 $1$8$pSqK8hjjgmdb73MJlsrnj1
&find --set-root --ignore-floppies /menu.lst
&configfile /menu.lst
title Back
&rootnoverify (hd0,0)
&makeactive
&chainloader +1
  这样,ntldr加载boot.ini后,当我们选择&Start WinPE with Grub4DOS&时,grldr就会出现上面我们编辑好的菜单(因为延时0秒所以基本不可见),因为默认是第0个选项,所以来到输入密码的界面;如果密码输入错误或菜单文件放置有误,则会fallback回第1个选项(即回到第一块硬盘的第一个分区也就是C盘)。当正确输入123456密码并菜单放置正确后,grldr会自动找到并加载我们编辑好的新的菜单/menu.lst:
color black/cyan yellow/cyan
timeout 20
title 00. Start WinPE (LaoMaoTao)
find --set-root /boot/winpe.iso
map --mem /boot/winpe.iso (hd32)
map --hook
chainloader (hd32)
title 01. Start Power WinPE (Data/File)
find --set-root /boot/powerpe.iso
map --mem /boot/powerpe.iso (hd32)
map --hook
chainloader (hd32)
title 02. Start WinPE (Network/Kaspersky)
find --set-root /boot/reboot.iso
map --mem /boot/reboot.iso (hd32)
map --hook
chainloader (hd32)
title 03. Start Rescue DOS (MSDOS v7.1)
find --set-root /boot/rdos.img
map --mem /boot/rdos.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 04. Start Recovery DOS (Ghost/DishGenis)
find --set-root /boot/ghost.img
map --mem /boot/ghost.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 05. Start Ram Windows XP
find --set-root --ignore-floppies /boot/ramxp/ramxp.dsk
kernel /boot/ramxp/memdisk raw
initrd /boot/ramxp/ramxp.dsk
title 06. Load MemTest-86 Program
kernel (hd0,8)/boot/memtest.bin
title 07. Load from other Menu.lst
find --set-root /grldr
configfile /boot/menu.lst
title 08. Find/Load Windows NT/2K/XP (NTLDR)
find --set-root /ntldr
chainloader /ntldr
#title Find/Load Windows 9x/Me (IO.SYS)
#find --set-root /io.sys
#chainloader /io.sys
title 09. Boot from CDROM
find --set-root /boot/sbootmgr.dsk
map --mem /boot/sbootmgr.dsk (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 10. Boot from HardDisk #1 (HD0,0)
root (hd0,0)
chainloader +1
title 11. Boot from HardDisk #2 (HD1,0)
root (hd1,0)
chainloader (hd1,0)+1
#title (?) Grub Command Line
#commandline
title (!) Reboot
title (x) Shutdown
title &=== Back ====
rootnoverify (hd0,0)
makeactive
chainloader +1
更新一下:
  1、把boot目录放到其他盘(C盘根目录就只有grldr和menu.lst两个文件了)。预防万一,若C盘被误格等,辛苦制作的硬盘版启动文件还在。
  2、把老毛桃和深山红叶和最帅菜鸟的ISO直接加载;他们的外置程序则是放置在ISO所在分区:/MiniPE、/BOOT、/RXPF 目录下 && 经过多次测试能完美解决grub加载ISO无法使用外置程序(其实无论外置还是内置,现在都是OK的)的问题。
  3、加了个RamXP,哈哈,目录任意,效果挺不错。其实没什么用,就试下效果。dsk格式的文件挺不错。但找不到有什么编辑工具。
菜单的样子大概如下图(VMware下的调试状态,未一一对应以上菜单代码):&
  高级DIY应用:在这个界面,高亮你要选择的选项后:按&b&键或回车启动;按&e&键可以进入编辑状态;按&c&键进入命令行模式。进入选项编辑状态后,还可以继续&e&进入内容编辑状态,按&Esc&取消修改;按&Enter&应用修改 && 其实这些已经是相当于Linux/Ubuntu的启动了。
  还有一个问题:在boot.ini菜单可以添加C:\bootsect.cdr=&Boot from CDROM&,利用512字节的光驱引导文件bootsect.cdr来启动光驱,但这个文件在grub4dos无法应用。甚至用&scdrom --install&和&scdrom --bootcd&都无法解决,报无法识别。留点缺陷美才是完美!!!!!博客访问: 1264978
博文数量: 378
博客积分: 10161
博客等级: 上将
技术积分: 5127
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
ubuntu 10.10 grub 添加win7系统引导&&1.修改/etc/grub.d/30_os-prober*& , 添加:
阅读(20245) | 评论(1) | 转发(2) |
相关热门文章
给主人留下些什么吧!~~
我用双硬盘(一个Ubuntu&14.04,&一个GHost的Win7),折腾了两天,终于搞掂了。我的问题是在GRUB进入Win7的菜单项,就报告no&such&device,&查了很多资料,以为是配置错误,改了很多次Grub,都不行。最后看了本文的指引,在GRUB用C进入命令行ls一看,发现GRUB阶段只找到了一块硬盘,因为我在BIOS中设置了启动顺序中只设置了装linux的硬盘启动,其它的全部disable了。赶紧将Windows的硬盘加入到第二启动设备中,重启,OK。由于我的配置比较特殊,linux是一片miniPCI的SSD,win7的硬盘是IDE转SATA的,装在第一个SATA接口,主板是梅捷的SY-IVB1037-M,8G内存。开始怀疑了n多对象,将Win7的boot也用大白菜装机盘中的工具写了好几次,Linux也重装了2次,GRUB重装、配置了好多次。网上有人说GRUB要在第一块盘上,经过这次证明其实是不用的。
请登录后评论。温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
不用等到生活完美无暇,才懂得享受生命中最美好的,因为那并不在远方,就是你拥有而且懂得珍惜的。|
欢迎坐客ANGEL163BLOG之QQ分站|
Angel163BLOG-QQ029-神琦老爸记
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
神琦老爸推荐阅读:
阅读(7454)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_086068',
blogTitle:'GRUB命令行启动windows系统',
blogAbstract:'
关键字:GRUB命令行,手动加载内核和启动系统
Grub出错了就需要手动用grub命令的形式加载系统&启动windows的命令是&代码:&rootnoverify&(hd0,0)&makeactive&chainloader&+1&boot&如果要恢复Windows的启动菜单的话还要这么输入一遍命令:&代码:&title&windows&root&(hd0,0)&chainloader&+1&
---------------------',
blogTag:'grub,命令行,启动系统,windows',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:1,
publishTime:5,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'不用等到生活完美无暇,才懂得享受生命中最美好的,因为那并不在远方,就是你拥有而且懂得珍惜的。|\n欢迎坐客ANGEL163BLOG之QQ分站|\nAngel163BLOG-QQ029-神琦老爸记',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}简单介绍如何用WinGrub 引导Linux系统简述
简单介绍如何用WinGrub 引导Linux系统简述
| 时间: 20:35:19 | 阅读数:
[导读] 以下主要介绍我的第一次安装Linux系统遭遇,以及怎么度过这个遭遇的,希望对大家有所帮助。不喜欢的可以略过。一、开篇叙述我第一次安装Linux系统和接下来的经历开篇:按照北南兄弟的《FC4菜鸟图文版安装教程》我
以下主要介绍我的第一次安装Linux系统遭遇,以及怎么度过这个遭遇的,希望对大家有所帮助。不喜欢的可以略过。一、开篇叙述我第一次安装Linux系统和接下来的经历开篇:按照北南兄弟的《FC4菜鸟图文版安装教程》我顺利地以本地SATA硬盘方式安装了FC4. 当时按照建议我把FC4的Linux版本GRUB程序装在了MBR(Main Boot Record主引导记录)里面。先简单介绍一下我的遭遇:我的机器没有安装软驱,SATA(也就是俗称串口)接口的硬盘1块,当时配机子的时候考虑到两块硬盘在价格方面比一块相当容量的硬盘要贵出一些,并且我当时也没有太长远的打算到底多大空间分给Windows多少分给Linux,所以我选择了一些Linux入门书上介绍的比较便宜的配置,就是一块硬盘安装以上的两种操作系统。像一般的那样我首先安装了windowsXP(因为windows目前好象没有义务识别linux,后装windows可能带来很多麻烦),由于我买的redhat linux9安装光盘作为引导的内核(不知能不能这样形容)不能识别SATA接口硬盘,当时的提示是:An error has occurred - no valid devices were found on which to create new file systems.Please check your hardware for the cause of this problem.No hard drives have been found.You probably need to manually choosedevice drivers for the installation to succeed.Would you like to select drivers now?(如果你也觉得眼熟,那么我们遇到过类似的情况,如果看不懂,麻烦您查字典也好google也好自行解决)解决的办法之一就是我从网上下载了一个FC4的安装镜像(安装盘应该有4张)如果你进的是“ftp://...Fedora/1(或2,3)/...”的话那么恳请您点“向上”按扭然后找形如Fedora/../4/..这个路径下面的文件,那几个路径下应该是FC 1,2,3的镜像。之后我按照“菜鸟教程”里说的那样用wingrub引导安装,之后把linux GRUB装载到MBR里面,然后启动的时候当然是linuxGRUB来调度工作了,之后我学着重编内核(加载了网卡驱动程序)然后下载安装了OpenQ插件,再后来安装完显卡驱动程序配置好后重启,问题出现了...怪我太贪心,分辨率的设置有点偏高了...之后的情况就是Linux可以照常运行,而显示器不做任何反应,从开始用户初始化配置开始显示器就显示没有输入信号.....对我来说这是噩梦的开始,我当时没有任何解决这类问题的办法(也没有刻一张rescue盘),然后就直接格式化开始重新安装一切了.....(End of 遭遇介绍)后面我发现发言权掌握在LinuxGRUB手里对我来说比较麻烦,所以想找到一个让win GRUB支配启动的办法,再次安装FC4进行分区配置和引导程序选择加载时,我不再选择把GRUB放在MBR里,而是专门分了一个/boot区出来把MBR放进去,寄希望于引导程序自动握手然后开始工作(很天真不是吗?)当时我还选择了Force LBA32选项,然后继续,安装所有的包,提示安装成功,提示重启。然后果然Linux没有被辨认出。这时怎么办??二、想让WinGrub来支配引导的分析和做法这时再重装一遍然后加载GRUB吗?且慢,当时提示我已经安装成功了也,我也实在不想再来一遍了..这时要回溯到北南兄弟提供的另一篇文章了:《编译内核操作流程》引用其中这一段:1、复制bzImage等相关文件,并创建initrd文件;[root@localhost&linux-2.6.12.3]#&cp&arch/i386/boot/bzImage&/boot/vmlinuz-2.6.12.3 &&[root@localhost&linux-2.6.12.3]#&cp&System.map&/boot/System.map-2.6.12.3 &&[root@localhost&linux-2.6.12.3]#&cd&/boot &&[root@localhost&linux-2.6.12.3]#&/sbin/mkinitrd&initrd-2.6.12.3.img&2.6.12.3 &我们把 编译出来的bzImage,拷入到/boot目录,拷贝成 vmlinuz-2.6.12.3;并且用 mkinitrd 来创建imitrd-xxx.img 文件,其中xxx为内核的版本号,是通过 查看 /lib/modules来版本来对应的,我们是编译出来的是 2.6.12.3,所以就运行上面的命令创建,创建的出来的是initrd-2.6.12.3.img ;不创建这个文件,有时是启动不起来的,比如提示VFS错误等;看到了吗?我第一次编译内核的时候也就是照着这个路子来的,最重要的是vmlinuz-a.b.c和initrd-a.b.c还有System.map都在/boot路径下面。在这里做一下内核的简要介绍:linux内核用vmlinuz-a.b.c之类的名称存放在/boot目录中,所有的内核版本号采用major.minor.patch编号格式。还有一个重要的基本概念:linux的所有所谓分区啦,文件夹一类的东西都用分区来表示,其实并不难理解,我觉得就好象是第一人称视角游戏和第三人称视角游戏有些相似的地方:Windows是分得很明显地这个是整个系统的哪部分,linux的说法则是我的哪部分下面有什么什么部分组成。同时就有了mount(挂载)的介入了.即使是/boot这样看起来就很吓人的名号,在linux里的表示方法也不过就是根分区(/)下的一部分罢了。2、wingrub的 menu.lst的写法;其实在Windows下编辑menu.lst(引导菜单)时已经很明显了,我能够加上title Fedora Core4 Installationroot (hd0,6)kernel (hd0,6)/linux/vmlinuzinitrd (hd0,6)/linux/initrd.img&&& (我的设置是这样的Fat32格式引导安装的分区)这样一段,难道就不可以在menu.list文件里添加诸如:title Fedora Core (2.6.11-1.1369_FC4)root (hd0,7)kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ rhgb quietinitrd /initrd-2.6.11-1.1369_FC4.img&&&&&&加注:因为我单独分了boot分区所以写成这样,如果没有单独的boot分区的话应该是下面这样title Fedora Core (2.6.11-1.1369_FC4)_te1root (hd0,7)kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ rhgb quietinitrd /boot/initrd-2.6.11-1.1369_FC4.img这样一段来引导linux系统吗?当然,没有人给我说不可以。结果是这办法可行 =) 因为我就是这么做的。之后重编译内核后要加载内核什么的办法类似,我就不再多说什么了。
手机扫描下方二维码,关注php100官方微信。
同步官网每日更新,为您带来随时随地的资讯与技术信息。更有不定期的互动抽奖活动,赢取实用贴心的小礼物。
除非特别声明,PHP100新闻均为原创或投稿报道,转载请注明作者及原文链接原文地址:
友情链接与合作伙伴
粤ICP备号-3windows下安装grub引导Linux
&在安装Linux和windows双系统时通常是先安装windows再安装Linux,因为windows会对主引扇区录进行充0,因而破坏主引导记录。当安装完windows再安装Linux,Linux会将grub安装到主引导扇区,然后通过grub的引导菜单来引导Linux和windows操作系统,这种引导顺序是grub&-&linux/(ntldr&&windows),这样导致的后果是如果Linux系统故障或者grub故障就会导致windows无法使用。
如果在安装完Windows后再安装Linux时不安装grub,让Linux安装程序不修改主引导扇区,然后在安装完Linux后再在windows下安装windows版本的grub程序,让windows的ntldr来引导grub,然后再通过grub来引导Linux。这样的引导顺序是ntldr&&windows/(grub&&linux)。因此下面使用这个中方式安装双系统。
1、先安装windows
如果只有一块硬盘,先对硬盘进行分区,先分一个区,让Windows安装在第一个分区,按正常的步骤安装
2、安装Linux
安装过程中在磁盘分区时注意要使用剩余分区进行操作
并且不安装grub到主引导记录
安装后重新系统,看看是否能正常进入windows,如果正常进入windows并查看磁盘管理,查看当前的分区情况
3、查看Linux分区uuid
通过Linux的安装光盘进入急救模式,查看Linux分区的uuid信息,用于后面配置windows下的grub
在安装光盘下输入linux recuse,进入急救模式
选择是否配置网络,这里选否
选择coutinue,使用自动模式,可以自动检测磁盘分区情况,尤其是使用卷组的情况下
输入chroot /mnt/sysimage 切换根文件系统
使用blkid 查看 根文件系统的的uuid
【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱,我们会在最短的时间内进行处理。
上一篇:【】【】

我要回帖

更多关于 grub引导双系统 的文章

 

随机推荐