欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux系统无法正常启动----故障集

程序员文章站 2024-02-22 18:27:28
...

修复命令

(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
linux系统无法正常启动----故障集
直接回进入光盘启动
选择第三项进入救援模式
linux系统无法正常启动----故障集

1.用grub命令,

前提是这些文件必须全部存在
linux系统无法正常启动----故障集

1.1/boot/grub/文件存在

linux系统无法正常启动----故障集
执行完之后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

linux系统无法正常启动----故障集
然后sysn

2.用grub-install

切根 chroot /mnt/sysiamge
原因:此时所处的位置并不是磁盘上的根,真正的根位于/mnt/sysimage下在救援模式自身是不提供grub-install的只有切根才可以

前提必须是在处于../grub文件夹中 (也就是必须在/boot的上一级目录 / 下面)
就一条命令

grub-install  /dev/sda

二. stage1_5被破坏

mbr之后的扇区比较大(1扇区之后的很多个扇区

linux系统无法正常启动----故障集
重启会变成这样,
直接进入grub模式
linux系统无法正常启动----故障集
直接修复
linux系统无法正常启动----故障集
修复不了(找不到/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

linux系统无法正常启动----故障集
然后启动后马上写一个/boot/grub/grub.conf文件
linux系统无法正常启动----故障集
这样就ok

三. 如果将/boot删掉

1.简单的删除/boot

所有东西都没了,所以都得修复(grub ,vmlinuz)
linux系统无法正常启动----故障集

进入救援模式
没有/boot了
linux系统无法正常启动----故障集
切根chroot /mnt/sysimage

开始修复
修复grub grub-install /dev/sda

linux系统无法正常启动----故障集
挂载光盘mount /dev/sr0 /mnt
拷贝vmlinuz文件
linux系统无法正常启动----故障集
生成initramfs.img文件

mkinitrd initramfs.img  `uname -r`

手写grub.conf文件
linux系统无法正常启动----故障集

2.删除/etc/fatab和/boot

一如果linux系统安装时是以逻辑卷方式安装的

linux系统无法正常启动----故障集
如果这个文件被破坏
linux系统无法正常启动----故障集
那么chroot就不能切根

首先进入救援模式
提示你没有任何linux分区,敲回车开一个shell
linux系统无法正常启动----故障集
找不到/mnt/sysimage
linux系统无法正常启动----故障集
linux系统无法正常启动----故障集
linux系统无法正常启动----故障集
/boot不能拿逻辑卷做

①先恢复fstab文件

**卷组

vgchage -ay 卷组名

linux系统无法正常启动----故障集
然后这些逻辑卷就能被识别了
linux系统无法正常启动----故障集
挂载root

linux系统无法正常启动----故障集
创建fstab文件
用里面挂载的是逻辑卷
linux系统无法正常启动----故障集
然后重启
重新进入救援模式
这就相当于找到操作系统了(把fstab文件修复完了)

②然后修复grub.conf文件

linux系统无法正常启动----故障集
然后修复/boot文件
切根
挂载光盘
安装kernel 必须强行安装–force
这样直接就能把initrd,vmliuz文件就自动生成了
linux系统无法正常启动----故障集
linux系统无法正常启动----故障集
然后强制写入磁盘sync
linux系统无法正常启动----故障集
生成grub目录
linux系统无法正常启动----故障集
sync写入磁盘
手写一个grub.conf文件在/biit/grub/grub.conf
在vi中可以结合r!命令 读取文件路径
linux系统无法正常启动----故障集
sync写入磁盘
重启

二.如果linux系统安装时是以分区方式安装的

四.如果kerbel和initrd写反

linux系统无法正常启动----故障集
linux系统无法正常启动----故障集
方法一:
选择e编辑
选择o加入新的行 initrd /initramfs.img
d删除第一行initrd /initramfs.img
b重启
进入之后把grub.conf文件修改回去

方法二:
用命令行方式
选择c手工写kernel和initrd

linux系统无法正常启动----故障集