烧饼的技术乱讲
In: Linux
24 一 2011前一段因为一些意外重装了两次系统,之前Win7和Gentoo并存的和谐景象也随之远去,最近准备重返Gentoo,于是今天中午着手修复grub2。
一开始我的设想是跟着Gentoo Handbook的指示来,只是其中编译系统等步骤我都可以跳过,只需要加载好目录,安装grub2就行了,步骤如下:
mount /dev/sda3 /mnt/gentoo
接下来chroot到已经存在的系统
mount –t proc none /mnt/gentoo/proc
mount –o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
因为之前已经安装过grub2,所以我这里想当然地觉得只需要把grub2安装进MBR里面去就可以了
grub-install –root-directory=/mnt/gentoo /dev/sda
接下来满心欢喜地重启电脑,"grub is loading",一切如常,可是接下来却没有出现系统选择界面,而是grub的bash-like终端,这……
于是我慌乱了,用Live CD重启进入gentoo。一开始我以为是grub2的设置并没有挂载上去,所以把/boot/grub/grub.cfg给删除后用
grub-mkconfig –o /boot/grub/grub.cfg
重新建立了一个配置文件,重启,如故。上网搜了一些如何从grub终端启动、修复grub的文章,虽然都是使用grub的语法,但是这令我大致明白了对于grub2来说,grub.cfg就相当于一个批处理文件(不知道这样描述是否恰当),当选择一个启动项之后,将在后台按顺序执行该menuentry内的命令。想明白这点后,我重新用Live CD进入了Gentoo,把启动命令序列抄了下来,然后重启,依次输入这些命令
insmod part_msdos
insmod ext2
set root=’(hd0,msdos3)’
linux /boot/gentoo-kernel-xxxx root=/dev/sda3 ro
然后输入boot,成功!引导进系统以后重启,仍然到了grub终端,怎么回事呢,按上述方法进系统,重新安装了一次grub2
grub-install /dev/sda
再重启,熟悉的启动界面回来了。因为还是一个菜鸟,所以我还没有想明白为什么用Live CD启动完安装grub却无法使用/boot/grub/grub.cfg配置文件,而引导进某一已存在的系统后还要重新安装grub2才可以,原因待考,等弄明白后再来更新(TODO)。
以上就是花了一个中午解决的在Win7+Linux共存被打破,重装Windows之后如何修复grub2安装的步骤。
I'm now a graduate student of Computer Applied Technology in Tongji University. I like Computer Graphics, Web 2.0, Magic, Music and am partially a geek. This blog is about C++, algorithm, cg, comments and other things I may get in touch with in the near future. Hope everyone enjoy this little site. Contact me: 4everlove.xu AT gmail.com