grub配置请教
-
- 帖子: 196
- 注册时间: 2008-06-25 11:28
grub配置请教
我机器只安装了ubuntu 9.10。
引导时,只出现grub一闪即过。(没有需要选择的菜单)
在/boot/grub下,也没有menu.lst文件。
在/boot/grub下,有一个grub.cfg文件,但该文件注明是不能更改的,该文件是通过grub-mkconfig命令生成的。
其生成的依据是其他配置文件:/etc/grub.d/目录下有几个脚本。 另一个/etc/default/grub配置文件。
grub.d目录下存在6个脚本文件及README文本:
00_header 05_debian_theme 10_linux 20_memtest86+ 30_os-prober 40_custom
在/etc/default/grub配置文件中,没有定义任何与DEVICE相关的参数,只有OS的发行版本与几个启动时间设置。
从系统中看安装的软件,只有grub-pc, grub-common. 没有安装grub包。 系统中也没有grub命令及帮助文档。
相关命令有:
grub-dumpbios grub-install grub-mkdevicemap grub-mkfont grub-mkrescue grub-reboot grub-setup
grub-editenv grub-mkconfig grub-mkelfimage grub-mkimage grub-probe grub-set-default
我现在想要新建一个独立的boot分区, 如何修改配置。还是只需要更改fstab,将新的独立分区(已复制原boot下文件)挂载到/boot即可。
关键是引导过程是怎样的。在boot分区未挂载之前,如何工作的? 阅读10_linux脚本,其执行过程,感觉是自动判断查找root设备。
引导时,只出现grub一闪即过。(没有需要选择的菜单)
在/boot/grub下,也没有menu.lst文件。
在/boot/grub下,有一个grub.cfg文件,但该文件注明是不能更改的,该文件是通过grub-mkconfig命令生成的。
其生成的依据是其他配置文件:/etc/grub.d/目录下有几个脚本。 另一个/etc/default/grub配置文件。
grub.d目录下存在6个脚本文件及README文本:
00_header 05_debian_theme 10_linux 20_memtest86+ 30_os-prober 40_custom
在/etc/default/grub配置文件中,没有定义任何与DEVICE相关的参数,只有OS的发行版本与几个启动时间设置。
从系统中看安装的软件,只有grub-pc, grub-common. 没有安装grub包。 系统中也没有grub命令及帮助文档。
相关命令有:
grub-dumpbios grub-install grub-mkdevicemap grub-mkfont grub-mkrescue grub-reboot grub-setup
grub-editenv grub-mkconfig grub-mkelfimage grub-mkimage grub-probe grub-set-default
我现在想要新建一个独立的boot分区, 如何修改配置。还是只需要更改fstab,将新的独立分区(已复制原boot下文件)挂载到/boot即可。
关键是引导过程是怎样的。在boot分区未挂载之前,如何工作的? 阅读10_linux脚本,其执行过程,感觉是自动判断查找root设备。
-
- 帖子: 112
- 注册时间: 2009-11-02 10:29
Re: grub配置请教
光盘安装的?ubuntu9.10默认好像是grub2,而grub2配置文件由原先的menu.lst改成现在的grub.cfg了
-
- 帖子: 196
- 注册时间: 2008-06-25 11:28
Re: grub配置请教
多谢!hunter108 写了:光盘安装的?ubuntu9.10默认好像是grub2,而grub2配置文件由原先的menu.lst改成现在的grub.cfg了
是的,你说的没错。我从安装包的说明中,也看到其用grub.cfg了。问题是这个文件是不能自己更改的,是需要生成的。
我的问题,是如何为/boot,新建一独立分区。看到老的说明,都是要修改menu.lst。 现在这个CFG文件是由grub-mkconfig.生成的。
如何搞定?
- onshoestring
- 论坛版主
- 帖子: 4666
- 注册时间: 2009-09-06 5:53
Re: grub配置请教
不知道你是不是看的这篇文章:http://hi.baidu.com/fghubuntu/blog/item ... 9478f.html
第四步以后用chroot方法重装grub2:
sudo mount /dev/sdXX /mnt ##########sdXX /根分区
sudo mount /dev/sdYY /mnt/boot ##########sdYY /boot分区(如果/boot单独分区),另外如果有其他单独分区也这样挂载
sudo mount --bind /dev/ /mnt/dev
sudo chroot /mnt
sudo grub-install /dev/sdX
sudo grub-install --recheck /dev/sdX
退出 chroot:按下键盘 CTRL-D
sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt
按billbear说法别忘了修改fstab
sudo gedit /etc/fstab
最后重启应该没问题了。
我自己没试过,不知道sudo update-grub能不能替代chroot方法重装grub2仅仅重写grub.cfg文件也行。
第四步以后用chroot方法重装grub2:
sudo mount /dev/sdXX /mnt ##########sdXX /根分区
sudo mount /dev/sdYY /mnt/boot ##########sdYY /boot分区(如果/boot单独分区),另外如果有其他单独分区也这样挂载
sudo mount --bind /dev/ /mnt/dev
sudo chroot /mnt
sudo grub-install /dev/sdX
sudo grub-install --recheck /dev/sdX
退出 chroot:按下键盘 CTRL-D
sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt
按billbear说法别忘了修改fstab
sudo gedit /etc/fstab
最后重启应该没问题了。
我自己没试过,不知道sudo update-grub能不能替代chroot方法重装grub2仅仅重写grub.cfg文件也行。
上次由 onshoestring 在 2010-02-05 15:02,总共编辑 1 次。
- smallapple
- 论坛版主
- 帖子: 7868
- 注册时间: 2009-03-28 15:12
Re: grub配置请教
/boot分区而己,简单
先建一个分区,假设是 /dev/sda9,格为ext3或ext4格式,再挂载到某个挂载点,比如 /mnt/boot
在动手之前要确保手头有可启动的 livecd或U盘之类的,出错时可进入恢复 /boot.old为 /boot并修改 /etc/fstab
先建一个分区,假设是 /dev/sda9,格为ext3或ext4格式,再挂载到某个挂载点,比如 /mnt/boot
代码: 全选
sudo su
mount /dev/sda9 /mnt/boot
cp -ax /boot/* /mnt/boot/
umount /dev/sda9
gedit /etc/fstab
加上 /dev/sda9挂载点为 /boot的语句
mv /boot /boot.old
mkdir /boot
mount /dev/sda9 /boot
grub-install /dev/sda
update-grub
- onshoestring
- 论坛版主
- 帖子: 4666
- 注册时间: 2009-09-06 5:53
Re: grub配置请教
我写一大段又废了。小苹果太可恶了。smallapple 写了:/boot分区而己,简单
先建一个分区,假设是 /dev/sda9,格为ext3或ext4格式,再挂载到某个挂载点,比如 /mnt/boot在动手之前要确保手头有可启动的 livecd或U盘之类的,出错时可进入恢复 /boot.old为 /boot并修改 /etc/fstab代码: 全选
sudo su mount /dev/sda9 /mnt/boot cp -ax /boot/* /mnt/boot/ umount /dev/sda9 gedit /etc/fstab 加上 /dev/sda9挂载点为 /boot的语句 mv /boot /boot.old mkdir /boot mount /dev/sda9 /boot grub-install /dev/sda update-grub
- smallapple
- 论坛版主
- 帖子: 7868
- 注册时间: 2009-03-28 15:12
Re: grub配置请教
我写一大段又废了。小苹果太可恶了。
对了,那个挂载点要手动先建立
代码: 全选
sudo mkdir /mnt/boot
重启没问题就可以把 /boot.old删除。
- onshoestring
- 论坛版主
- 帖子: 4666
- 注册时间: 2009-09-06 5:53
- smallapple
- 论坛版主
- 帖子: 7868
- 注册时间: 2009-03-28 15:12
Re: grub配置请教
按你写的那一大段onshoestring 写了:那要移动/分区,咋办呢?
比较方便的是在livecd 下先把 / 分区文件全部按 -ax 的方式复制到新的/ 分区下,修改新的 / 分区下的 /etc/fstab,然后用原系统启动,sudo update-grub后就能发现新 / 分区的系统,再重启用新 / 分区的系统启动,在新系统中再grub-install 和update-grub,再干掉旧的/分区,就不用chroot了。
上次由 smallapple 在 2010-02-05 15:37,总共编辑 1 次。
-
- 帖子: 196
- 注册时间: 2008-06-25 11:28
Re: grub配置请教
mount /dev/sdb1 /mnt/bootsmallapple 写了:/boot分区而己,简单
先建一个分区,假设是 /dev/sda9,格为ext3或ext4格式,再挂载到某个挂载点,比如 /mnt/boot在动手之前要确保手头有可启动的 livecd或U盘之类的,出错时可进入恢复 /boot.old为 /boot并修改 /etc/fstab代码: 全选
sudo su mount /dev/sda9 /mnt/boot cp -ax /boot/* /mnt/boot/ umount /dev/sda9 gedit /etc/fstab 加上 /dev/sda9挂载点为 /boot的语句 mv /boot /boot.old mkdir /boot mount /dev/sda9 /boot grub-install /dev/sda update-grub
cp -ax /boot/* /mnt/boot
umount /dev/sdb1
vi /etc/fstab (增加了/boot的加载点)
mv /boot /boot.old
mkdir /boot
mount /dev/sdb1 /boot
grub-install /dev/sdb
出错。
grub-probe: error: Cannot find a GRUB drive for /dev/sdb1. Check your device.map.
Auto-detection of a filesystem module failed.
Please specify the module with the option `--modules' explicitly.
grub-install /dev/sdc 这是原根分区。
出错。
grub-probe: error: Cannot find a GRUB drive for /dev/sdb1. Check your device.map.
Auto-detection of a filesystem module failed.
Please specify the module with the option `--modules' explicitly.
update-grub
出错。
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-17-generic
Found initrd image: /boot/initrd.img-2.6.31-17-generic
grub-probe: error: Cannot find a GRUB drive for /dev/sdb1. Check your device.map.
grub-probe: error: Cannot find a GRUB drive for /dev/sdb1. Check your device.map.
Found linux image: /boot/vmlinuz-2.6.31-14-generic
Found initrd image: /boot/initrd.img-2.6.31-14-generic
grub-probe: error: Cannot find a GRUB drive for /dev/sdb1. Check your device.map.
grub-probe: error: Cannot find a GRUB drive for /dev/sdb1. Check your device.map.
Found memtest86+ image: /memtest86+.bin
done
如此情况之下,可以重启一试吗?
- smallapple
- 论坛版主
- 帖子: 7868
- 注册时间: 2009-03-28 15:12
- smallapple
- 论坛版主
- 帖子: 7868
- 注册时间: 2009-03-28 15:12
Re: grub配置请教
代码: 全选
sudo grub-mkdevicemap
sudo grub-install /dev/sdb
sudo update-grub
还有还来的grub是装在哪个盘的mbr,还是要装在那个盘的mbr,不然用那个盘当启动盘是肯定出错。
-
- 帖子: 196
- 注册时间: 2008-06-25 11:28
Re: grub配置请教
多谢指点。 有新进展。 如你所说,我是加了一块小硬盘。 一共三块盘。smallapple 写了:试试会不会出错。代码: 全选
sudo grub-mkdevicemap sudo grub-install /dev/sdb sudo update-grub
还有还来的grub是装在哪个盘的mbr,还是要装在那个盘的mbr,不然用那个盘当启动盘是肯定出错。
/dev/sda1 挂在了/var
/dev/sdc1 原根分区
/dev/sdc5 原交换区
/dev/sdb1 打算新分给 /boot
运行过程没有出错了。重启之后,grub load出错,找不到文件。停在 grub scume>
是否应将 grub-install /dev/sdb 改为grub-install /dev/sdc ?
- smallapple
- 论坛版主
- 帖子: 7868
- 注册时间: 2009-03-28 15:12
-
- 帖子: 196
- 注册时间: 2008-06-25 11:28
Re: grub配置请教
smallapple 写了:bios改为从sdb启动,或者 grub-install /dev/sdc
唉,还是没搞定。 grub-install /dev/sdc也不行, dev/sdb也不行。难道/分区与/boot分区,只能在一块硬盘上?
分在两块盘上,搞不定?