grub配置请教

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
mayi
帖子: 196
注册时间: 2008-06-25 11:28

grub配置请教

#1

帖子 mayi » 2010-02-05 11:33

我机器只安装了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设备。
hunter108
帖子: 112
注册时间: 2009-11-02 10:29

Re: grub配置请教

#2

帖子 hunter108 » 2010-02-05 13:21

光盘安装的?ubuntu9.10默认好像是grub2,而grub2配置文件由原先的menu.lst改成现在的grub.cfg了
mayi
帖子: 196
注册时间: 2008-06-25 11:28

Re: grub配置请教

#3

帖子 mayi » 2010-02-05 14:05

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配置请教

#4

帖子 onshoestring » 2010-02-05 14:47

不知道你是不是看的这篇文章: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文件也行。
上次由 onshoestring 在 2010-02-05 15:02,总共编辑 1 次。
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: grub配置请教

#5

帖子 smallapple » 2010-02-05 15:01

/boot分区而己,简单
先建一个分区,假设是 /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
在动手之前要确保手头有可启动的 livecd或U盘之类的,出错时可进入恢复 /boot.old为 /boot并修改 /etc/fstab
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53

Re: grub配置请教

#6

帖子 onshoestring » 2010-02-05 15:05

smallapple 写了:/boot分区而己,简单
先建一个分区,假设是 /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
在动手之前要确保手头有可启动的 livecd或U盘之类的,出错时可进入恢复 /boot.old为 /boot并修改 /etc/fstab
我写一大段又废了。小苹果太可恶了。
:emb5
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: grub配置请教

#7

帖子 smallapple » 2010-02-05 15:09


我写一大段又废了。小苹果太可恶了。
:emb5
:em42 :em42 :em42

对了,那个挂载点要手动先建立

代码: 全选

sudo mkdir /mnt/boot
最后把 /boot分区挂载到 /boot后再grub-install和update-grub出来的grub.cfg就没错。
重启没问题就可以把 /boot.old删除。
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53

Re: grub配置请教

#8

帖子 onshoestring » 2010-02-05 15:23

那要移动/分区,咋办呢?
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: grub配置请教

#9

帖子 smallapple » 2010-02-05 15:30

onshoestring 写了:那要移动/分区,咋办呢?
按你写的那一大段 :em04

比较方便的是在livecd 下先把 / 分区文件全部按 -ax 的方式复制到新的/ 分区下,修改新的 / 分区下的 /etc/fstab,然后用原系统启动,sudo update-grub后就能发现新 / 分区的系统,再重启用新 / 分区的系统启动,在新系统中再grub-install 和update-grub,再干掉旧的/分区,就不用chroot了。
上次由 smallapple 在 2010-02-05 15:37,总共编辑 1 次。
mayi
帖子: 196
注册时间: 2008-06-25 11:28

Re: grub配置请教

#10

帖子 mayi » 2010-02-05 15:37

smallapple 写了:/boot分区而己,简单
先建一个分区,假设是 /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
在动手之前要确保手头有可启动的 livecd或U盘之类的,出错时可进入恢复 /boot.old为 /boot并修改 /etc/fstab
mount /dev/sdb1 /mnt/boot
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

Re: grub配置请教

#11

帖子 smallapple » 2010-02-05 15:38

你是加入另一个硬盘吗?
先不要重启
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: grub配置请教

#12

帖子 smallapple » 2010-02-05 15:44

代码: 全选

sudo grub-mkdevicemap
sudo grub-install /dev/sdb
sudo update-grub
试试会不会出错。
还有还来的grub是装在哪个盘的mbr,还是要装在那个盘的mbr,不然用那个盘当启动盘是肯定出错。
mayi
帖子: 196
注册时间: 2008-06-25 11:28

Re: grub配置请教

#13

帖子 mayi » 2010-02-05 16:15

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

Re: grub配置请教

#14

帖子 smallapple » 2010-02-05 16:19

bios改为从sdb启动,或者 grub-install /dev/sdc
mayi
帖子: 196
注册时间: 2008-06-25 11:28

Re: grub配置请教

#15

帖子 mayi » 2010-02-05 17:14

smallapple 写了:bios改为从sdb启动,或者 grub-install /dev/sdc

唉,还是没搞定。 grub-install /dev/sdc也不行, dev/sdb也不行。难道/分区与/boot分区,只能在一块硬盘上?
分在两块盘上,搞不定?
回复