多系统共存之启动菜单创建研究实验

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
头像
lkrocksthone
帖子: 21
注册时间: 2008-09-21 23:42

多系统共存之启动菜单创建研究实验

#1

帖子 lkrocksthone » 2010-03-09 12:12

版权所有,转载请注明出处。http://www.lkphy.cn/uchome/space.php?ui ... blog&id=23 梦想韵律飞扬 作者:prophet

题目: 多系统共存之启动菜单创建研究实验
实验人: prophet
地点:深圳大学物理科学与技术学院
实验时间:2009年03月8日~11日
实验环境:我的电脑(ubuntu8.04下用virtualbox2.1.4虚拟主机 虚拟7G硬盘)
实验对象:windows和linux共存
问题现象探究:
一:windows系列系统共存启动菜单创建
现实(一):安装系统时,安装的先后从windows系列的低级到高级。如:先装windows 98,再windows 2000,再windows xp,再windows server 2003,再windwos vista,最后windows seven。按照这样的顺序来安装,就可以完全的不用其他的设置就可以安装这六个系统共存的开机启动菜单。这里全部都是用windows的OS Loader写入MBR。这个安装过程不用为某个系统选择特别的硬盘分区,只要每个系统安装在独立分区就可以了。本方法简单、可靠,但只是适合windows系列的系统。
对应实验例子:先安装windows xp,再安装windows vista,系统启动菜单可以被创建。

现实(二): 对于windows系列的系统共存,除了按照情况一的顺序的方法来安装之外,对于某些特殊的情况,比喻,如果我们已经装了windows xp,但我还想多装一个windows 98,那我们就必然脱离本来的安装顺序。对于这种情况,我们有以下方法解决(也很简单):先划分空间给windows 98,正常安装它,然后开机的时候,我们会发现这时候并没有任何的开机菜单给我们来选。我们会直接的就进入了windows 98。为了创建开机启动菜单,我们进入windows 98后,使用几个软件来实现目的:1.bootmagic,该软件安装后重启系统,我们就可以见到需要的菜单;2.PQBoot,原理和bootmagic差不多;3,system commander,这是一个强大的创建菜单的工具,也可以实现目的。这些软件都可以到网上下载。
对应实验例子:先安装windows vista,在安装windows xp,系统启动菜单无法被创建;开机后直接进入windows xp系统,在系统中,安装system commander8.1,重启系统,系统启动菜单可以被创建。

现实(三):对于情况二的情形,我在这里特别地提出另外的一种方法,如果因为系统安装顺序的颠倒而导致了我们连任何的一个系统都进不去,那我们就要用工具盘进入dos的增强包,使用SPFdisk命令,也可以创建为wingdows系列系统创建开机启动菜单。具体操作工具上可以看到,这里省略。
对应实验例子:把原来的linux系统格式化掉,硬盘分成两个区,先安装widnows xp到C盘,使用电脑狂人版快速安装,复制文件后,重启电脑无法进入系统;这里我使用dos工具“diskgen“,重写/清除MBR,然后重启电脑,问题解决;安装完xp后,再安装windows server 2003到D盘,系统启动菜单可以被创建。启动菜单被写在基本分区的引导扇区中,于是,任何对mbr的改写都不会有所影响。如果格式化c盘,则widows server 2003 不能被启动,相反,如果格式化d盘,则xp,还是可以启动。

二:linux系列系统共存启动菜单创建
现实:linux系列系统共存启动菜单的创建比windows系列的更为简单,无论是老的LILO引导还是现在的GRUB方式引导,他们的引导能力都是很大的。对于同一个版本的linux系统系列或者是不同版本的linux系列无论你的安装顺序如何都将不会影响都启动菜单的创建。也就是说,在linux系列的系统共存中,没有启动故障值得担心。
对应实验例子:先安装ubuntu7.04,再安装ubuntu6.06,系统菜单可以被创建。

三:linux系列和windows系列系统共存启动菜单创建(重点)
现实一:linux系统使用grub可以引导任何的windows系统,只要把linux放在最后安装。
对应实验例子:安装windows xp,再安装ubuntu6.06,可以用GRUB创建启动菜单,然后,把ubuntu6.06的分区格掉,无法进入windows xp;解决方法:使用dos工具“diskgen“,重写/清除MBR,然后激活windows xp所在分区,问题解决。

现实二:windows系统放在最后安装会导致linux系统无法启动,grub被擦除。此情况,在windows下用软件也无法恢复linux的启动菜单。
对应实验例子:安装windows xp,再安装ubuntu6.06,可以用GRUB创建启动菜单,然后使用dos工具“diskgen“,重写/清除MBR,无法启动再启动ubuntu。正如我的猜想,原来的grub并没有写在/root所在分区,纵然将mbr指向该分区,也是无济于事。


事实:多系统共存的启动菜单的创建的秘密!!...
一:如果要用任何的软件如:system commander、bootmagic或者spfdisk来创建启动菜单,则只有把系统安装在基本分区(primary disk),并且又把相对应的引导文件安装在相对应的引导扇区的情况下才可以实现。所有的多系统启动菜单创建的工具软件都是以基本分区(primary disk)中的引导扇区的内容作为原料进行整合,从而创建出完整菜单并写入MBR(或者自己定义写入某个基本分区(primary disk)中的引导扇区,从而可以实现更为个性和“复杂”的开机菜单。)
二:原始的MBR指向的是激活的基本分区(primary disk)中的引导扇区。可以用dos工具diskgen恢复MBR。
三:windows系统的引导文件并不是安装在MBR的,而是安装在所在硬盘的第一个基本分区(primary disk)中的引导扇区中。
四:原始的MBR指向的是激活的基本分区(primary disk)中的引导扇区,但通过修改MBR可以实现指向某个(些)系统,而且,这个指向完全可以跨过系统所在分区的引导扇区,直接启动系统。
五:可以用命令:sudo /usr/sbin/grub-install /dev/sdx 或sudo /usr/sbin/grub-install /dev/hdx linux系统的grub安装到硬盘的MBR或其他指定的启动扇区之中(安装在linux root所在分区的启动扇区)。
六:为什么windows系列系统安装会存在顺序问题呢?其实他们改写的只不过是一个地方而已,那就是:硬盘的第一个基本分区(primary disk)中的引导扇区。分别就在于在改写的过程中能否识别别人的存在,并将其加到新的启动菜单中。
七:windows系统安装顺序的问题的解决就在于能够在安装一个系统或把他的启动文件安装回他自己的分区的启动扇区之中,这可以用某些软件(如:hdhacker和SRCTools)和u盘来实现参考下面文章“用SRCTools备份引导数据"。只要能够做到这样,就可以用spfdisk创建完美的多系统启动菜单。根本不用担心顺序的问题。

证明:*一、把硬盘分为两个主区,在第二个区安装xp,引导成功。用dos工具,重写/清除硬盘的MBR,激活第一分区,可以引导。改为激活第二分区,即xp所在分区,无法引导。把硬盘的第一分区进行新的格式化,重新激活第一个分区,系统无法被引导。说明:xp的引导文件并不是安装在MBR,也不是安装在系统所在的第二分区,而是安装在硬盘的第一个基本分区(primary disk)中的引导扇区当中。二、三得证;
*二、先安装xp到第一个分区,可以启动。再安装ubuntu8.04的/到第二个主分区,可以用grub创建启动菜单来启动xp。进入linux,用命令:sudo /usr/sbin/grub-install /dev/sda2 将MBR启动菜单安装到linux的根所在硬盘分区的引导扇区。进入xp,使用system commaner,覆盖MBR创建新的启动菜单。进入新的菜单,发现有四个选项:xp linux diskA: linux,这里有两个linux选项,点击进入后,发现,只有一个可以用,而这个就是在sda2的那个,而不可以用是原来MBR的那个。这里说明了什么?正是,上面的事实一。如果再加上我之前的一个尝试:同样的安装过程,就是没有把将MBR启动菜单安装到linux的根所在硬盘分区的引导扇区,当新的MBR覆盖了原来的MBR之后,ubuntu再也不能被启动。那就更加证明了一的正确性。
综上所述,事实六也就很明显了。
结论:
由此可以认识到,系统启动有三部曲:BIOS——MBR——基本分区(primary disk)中的引导扇区。所以,多系统共存启动菜单创建一点都不神秘。






附录: 关于启动菜单备份问题
1、在linux系统下使用dd命令。对于这个命令使用可以到网上查找,也可以关注本主页文章的发布。www.lkphy.cn 梦想韵律飞扬 prophet 主页。
2、用SRCTools备份引导数据
电脑在经过自检后引导操作就由硬盘完成,其中最重要的三个部分——启动扇区、文件分配表(FAT)和主引导记录(MBR)。只要其中的任何一个部分出现问题,我们的硬盘就会出现很多莫名奇妙的故障。“SRCTools”是维护上述三大组件的好工具,我们可以在硬盘正常的时候备份以上信息(下载地址:http://work.newhua.com/netfriends/0706/SRCTools.rar)。
  步骤1:备份可以通过启动闪盘来完成,首先使用Usbtool制作可引导闪盘。接着将SRCTools解压到启动闪盘的根目录下。比如,现在想将C盘的启动扇区中的内容备份到文件c1中,启动到DOS后输入“SRCBOOT c: c1 /s ”。
  步骤2:回车后屏幕会出现读取和保存的提示,当出现“finished”时,这表示成功备份硬盘启动扇区了(如图1)。
  步骤3:使用上述命令备份的扇区文件默认保存在C盘,备份完成后可以用copy命令将文件复制到闪盘上。如果现在启动扇区遭到病毒破坏需要恢复,同上启动到DOS后,首先要取消硬盘保护,按提示输入“lock c:”取消保护,弹出询问提示时按下Y确认。
  步骤4:继续输入“SRCBOOT c: c1 /r”(这里假设备份文件仍在C盘),系统提示重新写入启动扇区,重启后即可恢复故障(如图2)。
  步骤5:如果要备份分区表,则在DOS提示符下输入“SRCFAT c: f1 /s”,程序会出现读取分区表的提示,当出现“finished”时,这表示成功备份分区表。如果要恢复分区表,同样要用“Lock c:”取消保护,然后输入“SRCFAT c: f1 /r”恢复分区表。
  步骤6: 如果是备份主引导记录则输入“SRCboot c: b1 /s”,恢复分区表则输入“SRCboot c: b1 /r”恢复分区表。
不要认为自己的生活悲苦,别人的故事你又知道多少呢?...http://www.lkphy.cn梦想韵律飞扬 淘宝网店 服装专卖 欢迎您!对服务的更新和拓展正应该是每一种操作系统所追求和希望的。
centerbot
帖子: 375
注册时间: 2010-02-27 16:48

post from IRC #ubuntu-cn

#2

帖子 centerbot » 2010-03-09 12:27

这大学还研究这 :shock:

-----------------------------------------------------------------------------------------------------------------
这是来自IRC聊天室#ubuntu-cn的网友qkbeyond的回帖。欢迎访问 Ubuntu 中文官方支持频道http://webchat.freenode.net。频道填#ubuntu-cn,用户名随意。疑难问题大牛现场解答
centerbot
帖子: 375
注册时间: 2010-02-27 16:48

post from IRC #ubuntu-cn

#3

帖子 centerbot » 2010-03-09 12:28

大学研究这个,悲哀。

-----------------------------------------------------------------------------------------------------------------
这是来自IRC聊天室#ubuntu-cn的网友happyaron的回帖。欢迎访问 Ubuntu 中文官方支持频道http://webchat.freenode.net。频道填#ubuntu-cn,用户名随意。疑难问题大牛现场解答
centerbot
帖子: 375
注册时间: 2010-02-27 16:48

post from IRC #ubuntu-cn

#4

帖子 centerbot » 2010-03-09 12:28

真TM高级

-----------------------------------------------------------------------------------------------------------------
这是来自IRC聊天室#ubuntu-cn的网友qkbeyond的回帖。欢迎访问 Ubuntu 中文官方支持频道http://webchat.freenode.net。频道填#ubuntu-cn,用户名随意。疑难问题大牛现场解答
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 多系统共存之启动菜单创建研究实验

#5

帖子 tenzu » 2010-03-09 12:32

打算写一篇SCI的paper么?
头像
lkrocksthone
帖子: 21
注册时间: 2008-09-21 23:42

Re: 多系统共存之启动菜单创建研究实验

#6

帖子 lkrocksthone » 2010-03-13 12:14

研究这个纯粹个人爱好,可并不是什么大学不大学的。发这个贴不是因为别的,只是最近有不少人问到多系统启动问题,而我刚好曾经也有所研究,希望我的经历对他们有启发。文字有点oldschool啦,有误之处,还望指正批评。^_^...
不要认为自己的生活悲苦,别人的故事你又知道多少呢?...http://www.lkphy.cn梦想韵律飞扬 淘宝网店 服装专卖 欢迎您!对服务的更新和拓展正应该是每一种操作系统所追求和希望的。
头像
冲浪板
论坛版主
帖子: 7513
注册时间: 2007-05-06 8:19

Re: 多系统共存之启动菜单创建研究实验

#7

帖子 冲浪板 » 2010-03-13 12:25

还是用lilo当首席引导器好了... :em11
回复