| ||
今天用U盘装linux时候不小心将grub安装到了U盘上,导致每次启动系统都得插U盘,下面是解决办法,拷贝时忘了记下转载出处,实在不好意思。
-----------------------------------------------------------------------------------------------------------------------
装CentOS的时候用的是u盘安装,不小心把grub装在了u盘上,然后每次都要从u盘启动,当然不能容忍这样子,以下就是修复grub的过程:
u盘引导进入系统后,首先查看系统安装位置,也就是执行df -k 查看系统盘/boot位置
[root@localhost /]#df -k #可能会得到/dev/hda1
[root@localhost /]#/sbin/grub #进入grub命令行模式
grub> find /boot/grub/stage1 find /grub/stage1 find stage1 #命令行下输入下列三条命令,总有一条会返回一个正确的grub位置
grub> find /grub/stage1
find /grub/stage1
(hd1,1)
grub>root (hd0,0) #第一条
grub>setup (hd0) #第二条
grub>quit #第三条 grub环境下连续执行这三条命令返回SHELL
最后修改grub.conf和menu.lst里面的(hd1,1)为(hd0,0)重新启动即可。
[root@localhost /]#vi /boot/grub/grub.conf ... vi /boot/grub/menu.1st ...
[root@localhost /]init 6
需要特别说明的是,CENTOS 默认在VG上把BOOT分为一个独立的分区,所以开始启动的时候和系统启动开的根目录是不一样的,也就是说系统引导的时候的/,就是LINUX里的/BOOT,所以,GRUB的配置文件在系统里的位置应该在/BOOT/BOOT/GRUB/GRUB.CONF.
----------------------------
说明:你可能在find /boot/grub/stage1 的时候发现就是 (hd0,0),那就可能是grub.conf和menu.lst里面有hd(1,1),同样按作者的方法也能解决。”
补充:若确认之前安装时硬盘(或SDD)是sda*,而U盘是sdb*,那么也会出现敲完find /grub/stage1后仍出现(hd0,0),按理应该是正确的,但仍需要U盘才能启动(我就是这种情况)。
这时要看下grub.conf文件里写的是(hd0,0)吗?我理解是若系统安装在sda上,应该就是(hd0,0),所以看grub.conf写的hd*,*是否为(hd0,0)。
我这种情况,虽find /grub/stage1找到的是(hd0,0),但grub.conf写的(hd1,0),所以仍依靠U盘启动。改写为(hd0,0)后,正常硬盘/SDD启动。另外修改grub.conf后,可看下menu.lst是否自动改写了。