linux笔记-系统修复


系统恢复
 
系统因为引导问题无法正常启动的一些修复方法

环境:redhat7虚拟机

修复方法:
1
、通过光盘
通过光盘修复:在虚拟系统管理器中点击小灯泡,选择" Boot Options",然后选择光盘启动至第一个。如果没有需要自己添加,选择添加硬件->Stirage->磁盘设备->CDROM设备->选择镜像文件(没有下载一个和自己系统匹配的)。
2
、通过网卡

#####
一、grub引导(两个阶段)
1.
磁盘引导阶段,mbr(主引导记录)主引导记录在硬盘的0磁道,1扇区,占446字节
2.
文件引导阶段,找到boot分区,读取/boot/grub2/grub.cfg

#### 1.grub
磁盘引导阶段

丢失mbr446个字节
通过光盘修复:在虚拟系统管理器中点击小灯泡,选择" Boot Options",然后选择光盘启动至第一个。如果没有需要自己添加,选择添加硬件->Stirage->磁盘设备->CDROM设备->选择镜像文件(没有下载一个和自己系统匹配的)目录。
chroot /mnt/sysimage
grub2-install /dev/vda

#### 2.grub
文件引导阶段

丢失/boot/grub2/grub.cfg引导文件,从硬盘启动
1.
指定/boot分区位置,ls 可查看
set root='hd0,msdos1'
2.
加载内核
linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1
3.
启动系统初始化进程
initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img
4.
启动系统
boot
5.
进入系统恢复文件:
grub2-mkconfig >/boot/grub2/grub.cfg

####
二、内核引导

丢失 /boot/vmlinuz-3.10.0-123.el7.x86_64文件:
重启报错:
error: file '/boot/vmlinuz-3.10.0-123.el7.x86_64' not found
error: you need to load the kernel first
使用光盘进入挽救模式:
sh-4.2# chroot /mnt/sysimage/
bash-4.2# mount /dev/cdrom /opt
bash-4.2# cp /opt/Packges/kernel-3.10.0-123.el7.x86_64.rpm /mnt
bash-4.2# rpm2cpio /mnt/kernel-3.10.0-123.el7.x86_64.rpm | cpio -id
bash-4.2# cp /mnt/boot/vmlinuz-3.10.0-123.el7.x86_64 /boot/
bash-4.2# exit
sh-4.2# exit
然后强制关机,从硬盘启动,恢复正常


####
三、系统初始化

1.
开启 selinux systemd-tools
2.
加载内核参数
3.
加载系统时钟,键盘,主机名称
4.
读写挂载 / 文件系统
5.
激活 raid , lvm 设备
6.
激活系统配额
7.
启动 multi-user.target.wants 中的所有服务脚本
8.
启用虚拟控台
9.
启动图形

丢失initramfs-3.10.0-123.el7.x86_64.img
重启报错:
error: file '/boot/initramfs-3.10.0-123.el7.x86_64.img' not found
使用光盘进入挽救模式:
sh-4.2# chroot /mnt/sysimage/
bash-4.2# mkinittrd initramfs-$(uname -r).img $(uname -r)
cat: write error: Broken pipe
bash-4.2# exit
sh-4.2# exit
然后强制关机,从硬盘启动,恢复正常


#### 
删除目录/boot/

重启后出现报错:
erro: file'/boot/grub2/i386-pc/normal.mod' not found
Entering rescue mode...

使用光盘进入挽救模式:
sh-4.2# chroot /mnt/sysimage
bash-4.2# mount /dev/cdrom /opt
bash-4.2# cp /opt/Packges/kernel-3.10.0-123.el7.x86_64.rpm /mnt
bash-4.2# rpm2cpio /mnt/kernel-3.10.0-123.el7.x86_64.rpm | cpio -id
bash-4.2# rpm -ivh /mnt/boot/vmlinuz-3.10.0-123.el7.x86_64
然后缺上述哪个文件就按其操作进行


#### 
启动级别被更改

原因:
rm -fr /etc/systemd/system/default.target
ln -s /usr/lib/systemd/system/reboot.target/etc/systemd/system/default.target
reboot
重启后无法进入系统,而是会不断重启

修复方法:

1
、重启时在系统选择界面按 上下键,选中第一个标题然后按'e'
2
、将有 '...ro...'这一行,删除到 'ro', 'ro'改为 'rw',后面加上'rd.break'(打断初始化进程)。

swich_root:/# chroot /sysroot/
sh-4.2# rm -fr /etc/systemd/system/default.target
sh-4.2# ln -s /usr/lib/systemd/system/graphical.target/etc/systemd/system/default.target
sh-4.2# exit
swich_root:/# logout

##### 
删除/bin/bash

原因:
rm -fr /bin/bash
reboot
重启时出现大量红色的'FAILED',然后卡住不动

修复方法:
1
、重启时在系统选择界面按 上下键,选中第一个标题然后按'e'
2
、将有 '...ro...'这一行,删除到 'ro', 'ro'改为 'rw',后面加上'rd.break'(打断初始化进程)。

swich_root:/# chroot /sysroot/
swich_root:/# cp /bin/bash /sysroot/bin/bash
swich_root:/# chroot /sysroot/
sh-4.2# touch /.autorelabel ##
必须写,不然进不了图形界面
sh-4.2# exit
swich_root:/# logout

##### 
双系统

menuentry 'windows'{
   
}
grub2-set-default 0 #
进入第一个标题下的系统
grub2-set-default 1 #
进入第二个标题下的系统
grub2-set-default 2 #
进入第三个标题下的系统


##### 
忘记root密码

进入选择界面按 e ,修改  "..... ro ...."这一行为  "..... ro rd.break" 。然后ctrl+x
swich_root:/# chroot /sysroot/
sh-4.2# passwd
重新设置密码
sh-4.2# touch /.autorelabel ##
必须写,不然进不了图形界面
sh-4.2# exit
swich_root:/# logout



 

你可能感兴趣的:(linux基础)