我的笔记本电脑装的是WindowsXP和OpenSUSE11.3双系统。平时都是用装在linux下的GRUB启动。今天不知怎么的,一次开机时突然选择进入哪个系统的启动菜单不见了,取而代之的是grub命令行。现在好了,什么系统都进不去了。
在网上找了一下,是grub的menulist之类的文件丢失或背破坏造成的。其实用grub的命令行启动系统并不是很麻烦。
主要就是指定好启动所需要的两个文件:kernel 和 initrd。
1 root (hd0,2)
2 kernel /vmlinuz-2.6.26.5-28.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
3 initrd /initrd-2.6.26.5-28.fc8.img
4 boot
这样四条命令
第一条指定分区(非必须,就好像cd到某目录下之后再操作就可以用相对路径了一样,为了后面简便而已)
如果不知道应该在哪个分区里,可以在打完“root (hd0,”时按Tab,就会有提示,一个个试下来也行,反正也不多。
第二条指定kernel,敲完“kernel /”之后,同样可以Tab出所有的可选项,kernel一般是“vmlinuz-xxx”这样的文件
第三条指定initrd,方法同第二条。文件名都是“initrd-xxx”这样的
第四条不用说,就是开始启动啦~
这样大功告成之后,系统就启动起来了。我跑到/boot目录下看了一下
我的OpenSUSE11.3中的文件如下
-rw------- 1 root root 512 04-22 21:06 backup_mbr
lrwxrwxrwx 1 root root 1 04-22 20:57 boot -> .
-rw-r--r-- 1 root root 1236 04-22 21:03 boot.readme
-rw-r--r-- 1 root root 115961 04-22 20:57 config-2.6.34.7-0.7-default
drwxr-xr-x 2 root root 1024 04-22 21:32 grub
lrwxrwxrwx 1 root root 27 04-22 20:57 initrd -> initrd-2.6.34.7-0.7-default
-rw-r--r-- 1 root root 11685967 04-22 20:57 initrd-2.6.34.7-0.7-default
drwx------ 2 root root 1024 04-22 20:57 lost+found
-rw-r--r-- 1 root root 423936 04-22 21:06 message
-rw-r--r-- 1 root root 190301 04-22 20:57 symvers-2.6.34.7-0.7-default.gz
-rw-r--r-- 1 root root 1505387 04-22 20:57 System.map-2.6.34.7-0.7-default
lrwxrwxrwx 1 root root 28 04-22 20:57 vmlinuz -> vmlinuz-2.6.34.7-0.7-default
-rw-r--r-- 1 root root 3791424 04-22 20:57 vmlinuz-2.6.34.7-0.7-default
不明白为什么要有一个指向自身的链接boot
boot.readme是个说明文件
grub目录下放着grub启动所需的文件menu.lst device.map等。
initrd是指向当前启动所需initrd实际文件的软链接
vmlinuz类似
特别提一下这些文件:
message是启动菜单的图形界面所需的文件。我尝试把它删掉之后,grub的菜单就是黑背景命令行式的了
而symvers-2.6.34.7-0.7-default.gz
和System.map-2.6.34.7-0.7-default
应该是YaST配置时候需要的文件。