我的机器上早先装有windows 7, 后来由于项目需要就安装了fedora 15之后又升级到16.
安装完双系统以后,每次启动,都是先由grub进行引导,默认的启动系统是fedora,可供选择的界面停留5秒钟左右。 后来发现还是大部分时间在用windows 7,而且经常让我抓狂的是还没来得及选择系统就进入了fedora, 近日有空,于是准备修改grub配置文件来让windows默认启动。
Google了“win7 fedora双系统启动项设置” 各种结果良莠不齐, 悲剧地试了一个方法, 结果SB掉了 (在后面我会附一个正确的方法)
后果很严重, 启动的时候直接进入grub的命令行界面, 而且仅支持很有限的命令(虽然据说grub很好很强大)。肿么办涅? 经过很久的尝试终于从grub命令行成功boot fedora,然后又重新配置了grub的配置文件。 步骤如下
从grub命令行boot fedora
1. 找到boot所在的分区 (装linux的时候有人给boot一个单独的分区, 另外一些会把boot放在root目录下(/))
find /grub/stage1
2. 指定linux内核以及根目录/所在的分区
kernel vmlinuz-version ro root=/dev/???
(1) /boot有单独分区
如果之前用grub的命令 root (hd0,4)指定了/boot所在的分区,那么grub会mount这个分区,命令就简化成
kernel /vmlinuz-version ro root=/dev/???
kernel (hd0,4)/vmlinuz-version ro root=/dev/???
那么同样有两种情况对应的命令分别是
kernel /boot/vmlinuz-version ro root=/dev/???
kernel (hd0,4)/boot/vmlinuz-version ro root=/dev/???
root=/dev/???是linux所在分区在文件系统中的标识符,这个有点麻烦,即使我们知道root安装在磁盘的哪个分区比如(hd0,5) 我们也不知道它对应了文件系统的哪个标识符
我在这步卡了很久 最后灵光一现 为什么不去看下grub.conf文件 即使被我修改坏了,可能还有些有用的信息。
于是用cat命令看/grub/grub.conf(这是在grub的工作路径下看的,应该也可以在/boot分区看到) 结果看到了该标识符是sda7 搞定!!!!
3. 制定initrd文件 (我也不管这个命令干嘛了 貌似是制定内存映像文件)
这里我假设/boot有独立的分区并用root (hd0,4)设置好了/boot
initrd /initramfs-version
4. boot 直接敲入boot命令 坐等fedora启动
修改grub.conf文件
在/boot/grub/grub.conf, 用任意editor修改即可
文件中会有几个title对应了操作系统的不同版本 记住计数任然从0开始, 如果你觉得有些版本没用(比如recovery mode)那么删掉那几行也是可以的
我找到other所在的行 将其改成windows 7 并且把grub.conf开头的default设置成对应的数字
一切搞定!世界又变得美好了!