视频地址
模拟搞坏磁盘中的某一块
dd if=/dev/zero of=/dev/sdb1 bs=1k count=10(默认4K)
1.修补分区中每个组中坏掉的超级块部分
查看超级块的备份块
dumpe2fs 磁盘位置
如:
dumpe2fs /dev/sdb1
使用备份超级块进行修复(超级块的备份块有几份,默认最近,可能最近的备份块可能修复不了,可以制定其他备份块进行恢复
{组0,1{32768},3{98304},5{163840},7,9有备份块,每个组的第一块)
fsck -y 磁盘位置(默认)
如:
fsck -y /dev/sdb1
指定修复块
e2fsck -b 修复块号 磁盘位置
e2fsck -b 98304 dev/sdb1
它支持多种文件系统类型,包括但不限于ext2、ext3、ext4、XFS、Btrfs等
xfs文件系统修复(不支持人工指定某一备份块进行修复):
xfs repair 磁盘位置
当用户在利用 fsck 命令修复磁盘分区以后,如果发现分区中有文件丢失,就可以到对应的 lost+found 目录中去查找,
但由于无法通过文件名称分辨各个文件,这里可以利用 file 命令查看文件系统类型,进而判断出哪个是我们需要的文件
sync:强制将内存中的数据写入硬盘中,立即写入,默认30s
红帽7后,配置文件中写入挂载的数据分区 第一个0全量/1增量
如果数据分区损坏,重启可能起不来,需要输入root密码进入救援模式,查询挂载情况mount -a
再对其中损坏的文件分区进行修复
扩展挂载的文件系统(如文件系统挂在/上,且磁盘还有剩余存储)
mount /dev/cdrom /media/
cd /media/AppStream/Packages
rpm -ivh cloud-utils-growpart-0.29-2.el8.noarch.rpm
fdisk -l
growpart 分区
如:
growpart /dev/sda 5
再查看fdisk -l
df -h
resize2fs 挂载点(ext4)
xfs growfs 挂载点(其他)
如:
xfs growfs /
再查看fdisk -l
df -h
成功!!!
红帽7(Kernel 3.6)之前扩展挂载的文件系统(小概率会出现数据丢失情况,挂载点存储空间越小,丢失概率越高)
df -h
umount 挂载点
如:
umount /data
fdisk 分区
如:
fdisk /dev/sda
d
6
n
回车
+10G
w
resize2fs /dev/sda6 (ext4文件系统)
mount /dev/sda6 /data/
df -h
成功!!!
模拟:
rm -rf /
ctrl +C,关机
开机快速进入救援模式(需要去查如何操作)
3
创建文件夹(当前进入到迷你系统中)把分区挂载上去,查看哪个分区是根分区
mkdir /readhat
mount /dev/sda5 /readhat/
df -h(查看挂上去的文件系统大小)
查看环境是否为双机热备,是的话执行下列操作
tar -zcvf /temp/etc.tar.gz /etc/
ifconfig(会看到没有ip)
ifconfig cns160 192.168.1.101
ping 完好主机的ip(能ping通则说明两台主机能正常通信)
mkdir /data
scp [email protected]:/temp/etc.tar.gz /data/
yes
输入密码
cd /data/
ls
tar -zxvf etc.tar.gz -C /readhat/
vi /readhat/etc/fstab
把UUID修改成相应的文件系统分区
重启快速进入救援模式
1
如果不能正常启动,就需要继续进入救援模式下去修复
再重启快速进入救援模式
1
能正常进入则进行下一步操作(此时进入的是系统的根,之前3进入的是迷你系统的根)
修复boot和引导层协议
1.修复根分区所在的硬盘,再进行挂载光驱,安装光驱中的kernel软件对 进行修复
grub2-install /dev/sda
mkdir /media
mount /dev/cdrom /media
cd /media/BaseOS/Packages
rpm -ivh kernel-***-core.rpm --force
修复boot
grub2-mkconfig -o /boot/grub2/grub.cfg
exit
exit
出现菜单栏,点击需要等待(在等待中可能会出现错误,先不管,记住出现的问题如:3ddabc…)
如果出现SELinux的报错,需要重启并在
启动进入菜单栏后时添加内核参数,临时关闭SELinux
linux16这行最末尾添加 selinux=0 内核参数
此时被破坏主机应该能启动起来了
在完好主机上查看之前出现的错误**3ddabc…**在/etc中是啥
grep -irn 3ddabc /etc/
是swap的UUID冲突了!!!
在被破坏主机中修改主机名,IP(修改ip,删除UUID)
彻底禁掉selinux
vi /etc/selinux/config
查询自己的UUID
blkid
替换/etc/fstab,/etc/default/grub
中的UUID,有就替换,没有就不管
vi /etc/fstab
vi /etc/default/grub
再修复boot(在此状态下操作)
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
重启时可能存在ssh服务出错的情况(ssh证书冲突)
进入到相关ssh目录下(如:/etc/ssh)删除证书,重启服务(会自带生成新证书)
rm -rf ssh_host*
systemctl restart sshd
systemctl status sshd
reboot(再次检验是否还有问题)
创建挂载点时,取名z开头的,最后才删除(删除按字母顺序依次删除)