grub分为两段,第一段446个字节在mbr上,第二段在/boot/grub/目录下由grub.conf支配执行的
开机启动的时候如果你grub的配置文件丢失了
grub的修复过程
grub>root (hd0,0) //此时如果你不知道在那里可以使用find来查找配置文件 find (hd0,0)/vmlinuz- (括号里面的数字改变直到找到为止)
grub>kernel /vmlinuz-2.6.18****** 1 //后面的1表示1级别,可以不输入级别。
grub>initrd /initrd-2.6.18******** //跟内核在一起与内核版本号相同。
grub>boot //启动
修复grub
修改开机时的画面和开机选项都在
/boot/grub/grub.conf
其中/etc/grub.conf文件是指向/boot/grub/grub.conf的链接
系统开机启动画面位于/boot/grub/下的
splash.xpm.gz
可以把它替换成你想要的照片的。但是格式和大小等必须正确,先生成xpm格式的图片再压缩
yum install gimp //装载图片修改工具,分辨率是640*480的14位颜色的图片必须要使用xpm格式,用gzip压缩
gzip -9 1.xpm //压缩图片
cp 1.xpm.gz /boot/grub/ //拷贝到/boot/grub/目录下
然后把grup.conf里面的图片的名字改成你的图片的名字(后缀一定为.xpm.gz)
这时候不能立即重启,此时数据位于内存,重启立即就丢失了,这时候要使用sync来写入硬盘
vim /etc/grub.conf //grub的配置文件,这是我的机器上的。如果此文件丢了我们可以重建
default=0 #表示如果你不选择运行级别默认就是第0个启动,也就是下面第一个title定义的启动级别
timeout=5 #开机等待你选择运行级别时间
splashimage=(hd0,0)/grub/splash.xpm.gz #定义开机图片的。可以把图片替换掉
hiddenmenu #隐藏信息
title Red Hat Enterprise Linux Server (2.6.18-164.el5) #系统版本
root (hd0,0) #第一块硬盘的第一分区
kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/vol0/root rhgb quiet #内核文件ro表示只读
initrd /initrd-2.6.18-164.el5.img #模拟出linux系统,来提供开机驱动程序
title Install Red Hat Enterprise Linux 5
root (hd0,0)
kernel /vmlinuz-5 ks=http://192.168.0.254/workstation.cfg ksdevice=eth0 noipv6
initrd /initrd-5
password --md5 $1$FSUEU/$uhUUc8USBK5QAXc.BfW4m. #设置密码,以md5格式加密
其中rhgb是redhat系统自带的红色边框。quiet表示开机的时候显示的那些文字信息,使用quiet后显示信息将隐藏(出现硬盘信息之前的信息)
title文件中系统的版本可以使用以下命令来查看
cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga) //我的当前系统
uname -r
2.6.18-164.el5 //版本号
自己手动建立grub.conf配置文件
ls /boot/ //查看vmlinuz文件名
df -lh //查看根分区的位置
vim /boot/grub/grub.conf
default=0
timeout=5 //表示开机等待5秒
title My Redhat Enterprise System //你系统的名字
root (hd0,0)
kernel /vmlinuz-******** ro root=/dev/vol0/root quiet
initrd /initrd-*********.img //这里initrd的版本与内核版本号完全一致,否则不能启动
使用单用户模式找回管理员密码
在开机启动时等待你选择运行级别的时候输入
e
找到kernel这一行再点击e
在显示的信息后面加入s或者1或者single都表示1级别 回车
此时返回到你的内核信息上点击 b 启动
此时你更改密码,并使用init来切换你想要进入的级别
passwd root
输入密码
init 5 //进入图形化界面模式
给grub添加密码,不能随便让人登录你的1模式,否则管理员密码形同虚设
vim /boot/grub/grub.conf
里面加入密码123456
password 123456 //此时如果你把passwd放在title外面表示全局的,放在title里面表示局部,局部在使用内核的时候才输入密码
此处的123456很不安全,登录后谁都可以看到,此时把此处加密保存可以使用grub-md5-crypt这个配置文件
cd /boot/grub
grub-md5-crypt
输入你的密码
再输入一次
出现的乱码复制并粘贴到grub.conf里面的passwd后面就可以了、形如:
passwd --md5 $1$EFl7E0$wQ1HU5SmIo29kbiajuOtC0
如果你无意中使用了
dd if=/dev/zero of=/dev/sda bs=446 count=1 销毁boot loader
重启肯定连系统都进不了了。此时你可以使用grub命令来恢复
第一种重装方法
cd /boot/grub/
#grub
grub>root (hd0,0)
grub>setup (hd0) //重装grub
grub>quit
sync
第二种重装grub的方式
grub-install --root-directory=/ /dev/sda
指定根目录 安装位置
第三中重装方式
加入你的系统分区中grub文件被你弄坏了,又进入不了系统了。此时你可以把硬盘挂载到另一台机器上来给他重装grub
你挂载的硬盘此时为sdb1,你给它建立分区,并挂载(如建立100M ext3并格式化)
mkdir /mnt/boot //一定要创建在/mnt下,否则跟你当前系统的重复了。后面的boot可以改
mount /dev/sdb1 /mnt/boot
然后给你的sdb安装grub.此时安装的位置不能写/mnt/boot要指定为boot的父目录。此时就完成给另外一块硬盘安装grub了
grub-install --root-directory=/mnt /dev/sdb