Linux启停问题


一、MBR丢失

检查MBR信息:
dd if=/dev/vda of=/vda bs=512 count=1
cat vda| hexdump| less

重建MBR:
如果是grub2: 直接grub2-install –force /dev/vda (需强制安装,否则会报错。)
如果是grub: 先执行grub-recheck 再执行grub-install /dev/vda

 

二、文件系统异常

1、fdisk恢复分区
查看ext文件系统的其实扇区:

dd if=/dev/vda bs=512 count=4096 2>/dev/null | od -tx1 | perl -ne ‘
  chomp;
  if (/^([0-7]+)/s            # 磁盘数据的位置
    ([0-9a-f][0-9a-f]/s){8}       # 越过无关数据
    53/sef/s           # 模数
    0[124]/s00/s0[123]/s00/s     # 文件系统状态和出错后的行为配置
    /x) {
      my $s=int((oct $1)/512)-2;
      print qq[$s $_/n];
     }’

a.先通过模数找到文件系统的起始扇区(53ef是ext的模数所以此方法只适用ext
b.fdisk -u /dev/xxx 重新分区保证起始扇区和前面找到的一致即可云上默认都是单分区(fdisk默认是按照cylinder为单位的所以加-u指定以sector为单位)
c.新版本fdisk都是以2048为起始扇区的最小值的,如果分区起始扇区是63等小于2048的话,使用parted代替fdisk

2、testdisk恢复分区
a.运行testdisk /dev/xvdb(根据实际情况替换设备名),再选择Proceed(默认值)后按回车键。

Linux启停问题

b.选择分区表类型进行扫描:一般选择Intel(默认)。如果您的数据盘采用GPT分区,选择EFI GPT。

Linux启停问题

c.选择Analyse后按回车键。

Linux启停问题

d. 如果您没有看到没有任何分区信息,选择Quick Search后按回车键快速搜索。

Linux启停问题

e.在返回结果中会显示分区信息,如下图所示,选中分区后,按回车键。

Linux启停问题

f.选择Write保存分区。如果不是您需要的分区,可以选择Deeper Search继续搜索。

Linux启停问题

g.按Y键确认保存分区。

Linux启停问题

h.运行partprobe /dev/xvdb(根据实际情况替换设备名)手动刷新分区表。
i.重新挂载分区,查看数据盘里的数据情况。

Linux启停问题

2、testdisk恢复数据
a.按testdisk恢复分区 的第1步到第4步描述找到分区。

b.按P键列出文件。 返回结果如下图。

Linux启停问题

c.选中要恢复的文件,再按C键。选择目标目录。本示例中以恢复到 /home 为例。

Linux启停问题

如果您看到 Copy done! 1 ok, 0 failed 说明复制成功。如下图所示。

Linux启停问题

d.切换到 /home 目录查看。如果您能看到文件,说明文件恢复成功。

Linux启停问题

 

三、UUID冲突

ext4:
uuidgen | xargs tune2fs /dev/sda1 -U
指定uuid:
tune2fs -U 9f2d3e15-a78a-4f3d-8385-014b67864 /dev/sda1

xfs:
uuidgen | xfs_admin /dev/sdc1 -U

 

四、文件系统异常

查看超级块
mkfs.ext4 -n /dev/vdb1

尝试用超级块挂载
mount -t ext4 -o sb=131072 /dev/vdb1 /mnt/

尝试用超级块修复
fsck.ext4 -b 32768 /dev/vdb1

 

转载于:https://www.cnblogs.com/kcxg/p/10929287.html

原创文章,作者:1402239773,如若转载,请注明出处:https://blog.ytso.com/245171.html

(0)
上一篇 2022年4月18日
下一篇 2022年4月18日

相关推荐

发表回复

登录后才能评论