http://www.enet.com.cn/article/2007/0912/A20070912821613.shtml
http://hi.baidu.com/dongbo2206/blog/item/5576051c08c85b8c86d6b611.html
http://www.5xing.net/study/1/16/340.html
一. 用Linux Grub引导 Windows系统
先安装 Windows 系统.
Linux系统安装. (Linux Enterprise 12.0)
在 安装Linux 系统的时候,选择分区时选择 "Custom the participation"
Participaton:
1. 在弹出的“New”对话框上,在剩余空间创建引导分区,挂载点为/boot,容量可以是100mb,文件系统是ext3
2. 必须要创建交换分区。交换分区是一个特殊的分区,类似于windows xp里的页面文件,它没有挂载点的概念。在弹出的"New"对话框中只需选择文件类型为swap,假设内存容量是128mb,则交换分区容量可以设为256mb
3. 在弹出的“添加分区”对话框上,选择挂载点为“/”,选择文件系统为ext3,可以将剩余的容量全部分配给根分区(注意应该适当留一点空间,否则系统会报错),容量大小不低于1.5gb。
创建引导区:
1. 当分区完成时,点击 Next
2. 进入 引导分区 页面, 可以发现里面有两个引导分区可选,默认的是Linux, 另外一个是hda1 Windows的引导分区,这里将其设置为默认引导分区.
二. 用Windows ntldr引导 Linux系统
ntldr是由配置文件boot.ini提供工作参数的,该文件位于 windows xp系统分区的根目录下,具有隐藏、系统、只读属性。我们只需要将red hat linux的引导记录作为一个文件备份到c盘的根目录下,并相应地在boot.ini文件里添加一个项目来指向它们,就可以实现双重系统了。
先安装red hat linux,再安装windows xp
1.在red hat环境下备份引导扇区
安装完小红帽以后(假设安装在/dev/hda6分区)别忙着安装windows xp,先进入小红帽,打开终端窗口,在里面键入以下命令:
dd bs=512 count=1 if=/dev/hda6 of=bootsect.rh |
如果不清楚是那个分区,可以用 ls /dev 查看
该命令的作用就是把red hat linux引导扇区保存为一个bootsect.rh文件,可以将其备份到软盘上。
然后安装windows xp(假设安装在c盘上)。安装完成以后,再把这个bootsect.rh文件拷贝到c盘根目录下。编辑c盘根目录下的boot.ini文件(注意事先去除其系统、只读属性),在里面添加下面命令:
c:/bootsect.rh="red hat linux 9.0" |
保存该文件,请别忘了将boot.ini、bootsect.rh件设置回系统、隐藏和只读属性,以免今后误操作。
三. 恢复 MBR - 如果window 重装, ntldr引导会替换MBR,这个时候,需要恢复 MBR
相比Linux, Windows会比较频繁地重装, 重装之后的mbr会被覆盖, 从而无法引导linux系统. 解决整个问题只需要恢复以前的MBR. 重装Linux则不存在任何问题. 因为grub会检测到已有的windows分区.
首先备份mbr, 使用dd命令将硬盘第一个扇区的头446字节'抓'下来保存. 之后重装完windows之后再恢复mbr. 这需要用到linux启动光盘. 启动进入命令行, 挂载那个被保存的mbr文件所在的分区, 然后用dd命令恢复就可以了.(注意我的是SCSI硬盘, 所以是sda, IED硬盘为hda)
备份MBR:
# dd if=/dev/sda of=/boot/boot.NNNN bs=446 count=1
Note: /dev/sda 是Linux所在的分区,根据你自己具体的分区设置
- 我自己的备份如下
先做前446字节的备份,就是MBR所占的字节数
# dd if=/dev/sda2 of=/home/shangyang/RecoverBoot/Linux/446/boot.NNNN bs=446 count=1
再备份一个512字节的备份,以备不时之需,将DPT和MagicNumber同时备份.
# dd if=/dev/sda2 of=/home/shangyang/RecoverBoot/Linux/512/boot.NNNN bs=512 count=1
恢复MBR:
# dd if=/boot/boot.NNNN of=/dev/sda bs=446 count=1
-对应的还原
先尝试:
# dd if=/home/shangyang/RecoverBoot/Linux/446/boot.NNNN of=/dev/sda2 bs=446 count=1
如果失败,再尝试:
# dd if=/home/shangyang/RecoverBoot/Linux/512/boot.NNNN of=/dev/sda2 bs=512 count=1
-为什么不是512呢, 主引导扇区是一个扇区(512字节呀)?
-只把主引导扇区的备份文件boot.NNNN的前446个字节重写入主引导扇区。
boot.NNNN是我们在安装Linux之前整个主引导分区的备份。如果我们把
512个字节全部写入主引导扇区就可能会把安装了Linux后改变了的硬盘
DPT表也破坏掉.
MBR-> Main/Master Boot Record, 有些书上是写成Master的.
我认为可以分成三个部分吧, MBR+DPT+MagicNumber(446+64+2=512)