grub.conf是系统启动的一个必须文件,此文件丢失或者破坏将影响系统的启动,本文简单介绍grub.conf文件的基本排错方式。
grup.conf文件丢失,系统启动的时候找不到内核文件
开机会停留在grup> 界面
在系统第一次丢失grub.conf时,可以复制备份的grup.conf到/boot/grup文件夹,系统即可以正常启动,系统启动的时候只需要grup.conf,其他的文件相当于备份
grub.conf文件介绍
default定义默认启动的第n个系统
timeout为系统启动的等待时间
title定义系统在启动菜单中的主机名
root (hd0,0)指第一个磁盘的第一个扇区
kernel是系统的内核文件
initrd是系统启动文件
上面定义root为(hd0,0)更为方便
理论上不加(hd0,0)一样可以启动
在kernel和initrd后面加不加斜线/都可以启动
[root@ccui ~]#cat /boot/grub/grub.conf
default=0
timeout=3
title=ccui
root (hd0,0)
kernel=/vmlinuz-2.6.32-696.el6.x86_64 root=/dev/sda2
initrd=/initramfs-2.6.32-696.el6.x86_64.img
initrd必须在kernel之后加载,只有加载内核才知道谁才是操作系统的根。
重启之后卡停,按esc进入菜单,按e进入编辑,因为initrd在kernel之前,所以按d删除initrd,重新写在kernel下
删除后,按o开启新行,按e进入编辑,写入initrd /initramfs-2.6........
配置完成,按b启动
菜单的配置都是临时更改,进入系统需要重新配置文件
在grub里加口令
1)在title前加入密码password
在title添加密码不影响系统启动,不能进单用户,不能直接修改root密码。
在系统启动时,按esc进入菜单,按p进入密码输入,输入密码即可开启选择进入单用户系统。
2)在title最后一行加入password,选择这个系统启动时需输入密码。
default=0
timeout=3
password magedu
title=ccui
root (hd0,0)
kernel=/vmlinuz-2.6.32-696.el6.x86_64 root=/dev/sda2
initrd=/initramfs-2.6.32-696.el6.x86_64.img
password --MD5 $1$9I.2U/$79t3pp/jalpFckJPscwBR0
password $6$VqBU0R.XQGI1cYar$ompVZusMGjoey1etIcrF7CUEPdcM4ZSsc88CZQ5soiAR9M23o4DQ/MeMfEt7Vhb.GnRboiMqDERmNZry4MhYg.
设置加密口令
1)设置MD5加密
命令grub-md5-crypt
输入两次密码生成MD5
[root@ccui ~]#grub-md5-crypt
Password:
Retype password:
$1$R.z1U/$4d0lAEmHWUj9k0IdHXr6X0
在用vim打开的文件里,用r!加命令生成MD5
password要定义MD5格式
password --MD5 [生成的MD5]
2)设置512位加密
password --encrypted [生成的512密码]
[root@ccui ~]#grub-crypt
Password:
Retype password:
$6$tiFK4NzmK7tKgH9h$4OwM/mfuzBMaH90Kr2CZ3DbgBOxHXxrOX3C59OPtF1zquluWVwif3hWw8fPnBpe0cYCJVOcvzJ4ujiXnUTDiC0
物理机下直接修改root密码
当开机菜单密码忘记,进救援模式修复
先切根 chroot /mnt/sysimage
改口令 vim /etc/shadow
直接清空root的口令
重启,空口令直接登录
破坏sda的头部文件
hexdump —C -n 512 /dev/sda 查看sda硬盘的512字节头部16进制码
前446字节与启动相关,到80 20之前。
模拟破坏 dd if=/dev/zero of=/dev/sda bs=1 cpunt=446
此时硬盘sda与系统启动的字节遭到破坏,系统启动会卡在菜单界面
修复sda
利用光盘启动,此时看到的根目录是伪根:/mnt/sysimage
切根 chroot /mnt/sysimage
执行grub-install命令,恢复grub文件,并生成/boot/grub内所有文件
exit退出,执行两遍
正常重启
/boot/grub/文件夹被清空
进入救援模式修复
切根 chroot /mnt/sysimage
复制备份的grub.conf到/boot/grub
复制stage2到grub mv /root/grub/stage2 /boot/grub
sync 同步,两次
exit 退出,两次
grub.conf缺失
grub.conf缺失,系统卡在2阶段,手动添加title下的三行配置
root (hd0,0) root后加空格
kernel /vmlinuz-2.6..... root=/dev/sda2
initrd /initramfs-2.6.......
boot 启动
因为是临时输入,启动后重新恢复配置文件
意外删除grub文件夹 rm -rf /bpot/grub/
进入光盘救援
因为删除grub.conf一样会卡在grub>,所以要先确定是文件丢失还是文件夹丢失,
用ls查看文件夹是否存在,如果只是文件丢失,可以直接复制文件或者手动编写配置文件,
编写临时文件也可以临时启动,进入系统再修复。
如果grub文件夹不存在执行以下操作
先切根 chroot /mnt/sysimage
grub-install /dev/sda 直接修复1、1.5、2阶段
现在还缺少grub.conf文件,手动写一个
vim /boot/grub/grub.conf
default=0
timeout=3
title yflinux
root (hd0,0)
kernel /vmlinuz-2.6...... root=/dev/sda
initrd /initramfs-2.6....img
保存
sync
exit 两次 启动
删除boot
如果/boot在挂载,删除/boot需取消挂载
umount /boot
rm -rf /boot
reboot
界面卡在Error 15
进入光盘救援
/boot文件夹丢失需要修复内核,虚拟文件系统,grub这三项
先切根
第一步找回内核
挂载光盘 mount /dev/sr0 /mnt
查看iso cd /mnt/isolinux
找到vmlinuz文件(比大小,确认内核文件)
内核是光盘带的,装系统时复制进系统,是固定不变的
复制内核到boot cp /mnt.isolinux/vmlinuz
第二步修复initramfs,使用mkinitrd命令
mkinitrd /boot/initramfs.img uname -r
用ls查看是否生成
安装生成grub
grub-install /dev/sda
查看grub文件夹,依然缺失grub.conf
第三步复制或者手写配置文件
vim /boot/grub/grub.conf
default=0
timeout=3
title yflinux
root (hd0,0)
kernel /vmlinuz-2.6...... root=/dev/sda
initrd /initramfs-2.6....img
保存
sync
exit 两次 启动
持续更新,添新补错......