文章目录
修复命令
(1) grub-install
安装grub stage1和stage1_5到/dev/DISK磁盘上,并复制GRUB相关文件
到 DIR/boot目录下
grub-install --root-directory=DIR /dev/DISK
–root-directory=指定跟在哪(/boot所在的根)
(2) grub交互式
grub> root (hd#,#) 指定硬盘在哪
grub> setup (hd#) 安装的时候要指定硬盘
一. stage1被破坏
stage1: mbr(前446字节)就是bootloader
直接回进入光盘启动
选择第三项进入救援模式
1.用grub命令,
前提是这些文件必须全部存在
1.1/boot/grub/文件存在
执行完之后sync强制写入磁盘
也可以使用
1、重启系统按c键,直接进入grub
grub> kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/sda2 selinux=0
grub> initrd /initramfs-2.6.32-696.el6.x86_64.img
grub> boot
2、通过修改/etc/sysconfig/selinux 把selinux=disabled
1.2/boot/grub/文件不存在
只能用grub-install命令
grub-install /dev/sda
然后sysn
2.用grub-install
切根 chroot /mnt/sysiamge
原因:此时所处的位置并不是磁盘上的根,真正的根位于/mnt/sysimage下在救援模式自身是不提供grub-install的只有切根才可以
前提必须是在处于../grub
文件夹中 (也就是必须在/boot的上一级目录 / 下面)
就一条命令
grub-install /dev/sda
二. stage1_5被破坏
mbr之后的扇区比较大(1扇区之后的很多个扇区)
重启会变成这样,
直接进入grub模式
直接修复
修复不了(找不到/boot/grub/grub.conf文件)
所以只能收工敲内核
grub> kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/sda2 selinux=0
grub> initrd /initramfs-2.6.32-696.el6.x86_64.img
grub> boot
然后启动后马上写一个/boot/grub/grub.conf文件
这样就ok
三. 如果将/boot删掉
1.简单的删除/boot
所有东西都没了,所以都得修复(grub ,vmlinuz,initramfs.img)
进入救援模式
没有/boot了
切根chroot /mnt/sysimage
开始修复
修复grub grub-install /dev/sda
挂载光盘mount /dev/sr0 /mnt
拷贝vmlinuz文件
生成initramfs.img文件
mkinitrd initramfs.img `uname -r`
手写grub.conf文件
2.删除/etc/fatab和/boot
一.如果linux系统安装时是以逻辑卷方式安装的
如果这个文件被破坏
那么chroot就不能切根
首先进入救援模式
提示你没有任何linux分区,敲回车开一个shell
找不到/mnt/sysimage
/boot不能拿逻辑卷做
①先恢复fstab文件
激活卷组
vgchage -ay 卷组名
然后这些逻辑卷就能被识别了
挂载root
创建fstab文件
用里面挂载的是逻辑卷
然后重启
重新进入救援模式
这就相当于找到操作系统根了(把fstab文件修复完了)
②然后修复boot 目录和grub.conf文件
然后修复/boot文件
切根
挂载光盘
安装kernel 必须强行安装–force
这样直接就能把initrd,vmliuz文件就自动生成了
然后强制写入磁盘sync
生成grub目录
sync写入磁盘
手写一个grub.conf文件在/biit/grub/grub.conf
在vi中可以结合r!命令
读取文件路径
sync写入磁盘
重启
二.如果linux系统安装时是以分区方式安装的
首先得知道自己以前的分区是怎么分的(比如那个分区挂载的是哪个文件系统和类型)
这样在修复的是后就能一一对应(首先截图这一部分)—避免切根后找不到源fstab
挂载根/dev/sda2
切根后
重新手写/etc/fstab文件(对应以前分区)
sync
重启–再次进入救援模式(这次就会自动挂载/mnt/sysimages)
然后修复/boot目录和grub.confg同上②
四.如果kernel和initrd写反
方法一:
选择e编辑
选择o加入新的行 initrd /initramfs.img
d删除第一行initrd /initramfs.img
b重启
进入之后把grub.conf文件修改回去
方法二:
用命令行方式
选择c手工写kernel和initrd