这是grub的一个特性。
因为grub是一个引导器,它在没有进入操作系统的时候已经运行了,所以它不清楚某个分区是否挂在你的操作系统上。所以当你划分了/boot分区,安装的时候grub是安装在/boot/grub上,但是grub认为用于引导的映像文件是在/grub下面而不是 /boot/grub下面。由于不能保证所有的操作系统都把这个分区安装成/boot,所以这里有几个解决方法:
1. 把grub安装到/boot/boot/grub而不是/boot/grub,虽然难看了点,但是很好用。
2. 在安装grub前建立一个符号连接,例如:
cd /boot && ln -s . boot
这只能在boot分区使用的文件系统支持符号连接同时grub的版本支持这个特性的情况下才能使用。
3. 用命令行方式安装grub,明确指定grub的安装映像文件,例如:
grub> root (hd0,1)
grub> install /grub/stage1 d (hd0) /grub/stage2 p /grub/menu.lst