Linux教程

Linux启停问题

本文主要是介绍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(默认值)后按回车键。

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

c.选择Analyse后按回车键。

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

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

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

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

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

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

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

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

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

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

 

三、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

这篇关于Linux启停问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!