前阵子要测试QNX6.5, 于是拿出一台机房的机器来, 重新设计了一下分区, 给QNX单独开了一个分区, 毕竟QNX不是天天用, 所以没有必要只装一个系统. 其他系统我是预留给Ubuntu的.
安装完QNX并测试了一段时间, 我打算在该机上再装一个Ubuntu10.10. 本以为Ubuntu的grub2能够自动识别出已经安装的QNX, 谁知不行, grub中根本没有相应条目.
于是, 根据 , 修改了一下grub的条目, 将/etc/grub.d/40_custom改为一下内容:
- #!/bin/sh
-
exec tail -n +3 $0
-
# This file provides an easy way to add custom menu entries. Simply type the
-
# menu entries you want to add after this comment. Be careful not to change
-
# the 'exec tail' line above.
-
menuentry "QNX6.5" {
-
set root=(hd0,msdos1)
-
chainloader +4
-
boot
-
}
需要注意的是, grub2与grub不同, 已经没有rootnoverify命令, 而且命名分区的方式也发生了变化, 所以前的命令 "rootnoverify(hd1,1)"是错误. 其他grub2语法不累述.
而后执行update-grub重启, 但是却依然没有看到grub的菜单就直接进入Linux了. 后发现是grub设置的问题.
在我的/etc/grub/grub.cfg中, 默认的条目是0, 即Linux的条目, 且设置GRUB_HIDDEN_TIMEOUT_QUIET为TRUE来阻止产生一个计时, GRUB_HIDDEN_TIMEOUT为0使得不提供任何机会来进行条目选择. 如果想选择其他的作为默认条目, 可以直接用该条目的名字. 条目的准确名字可以通过update-grub获得, 因为update-grub本身会扫描所有的条目, 然后显示出来, 比如我要设置我个人台式机Linux/Windows双启动, Windows默认. 则运行update-grub会看到"Microsoft Windows XP Professional on /dev/sda1". 于是就可以把GRUB_DEFAULT设置为这个值(需要双引号).
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
于是我把该内容改为显示计时以便进行条目选择.
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=20
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=60
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
执行update-grub更新grub后, 再重启, 就看到了grub的菜单, 里面有QNX的条目, 可以选择性的启动QNX了. 如果没有任何动作的话, 在20+60秒后, 系统仍将默认进入Ubuntu.
阅读(1836) | 评论(0) | 转发(0) |