LVM丢失恢复

简介: LVM丢失恢复


LVM 上分区data-data1 重启后消失,在找回分区时应该使用testdisk /dev/mapper/data-data

但是误操作testdisk /dev/vdb  , 而且扫描到了一个分区(可以看到磁盘上数据),并将分区/dev/vdb1 信息写入磁盘,但是发现无法正常挂载而且在重启ECS后 /dev/mapper/data-data 和/dev/mapper/data-data1 都消失了。


思考


机器内原本没有vdb1只有vdb 将vdb 制成pv,而扫描vdb 发现的分区实际上是data-data1 ,将data-data1 分区写入到vdb 后多了vdb1,这导致重启后LVM 找不到vdb从而报错。而由于vdb 上找到的分区信息也不是直接在vdb 上创建的,所以vdb1 也不能挂载(superblock 错误)


解决


LVM创建成功后,都会在/etc/lvm/backup 下备份配置信息,尝试使用备份来恢复pv。

在这个case中 备份名为/etc/lvm/backup/data

less/etc/lvm/backup/data#查看pv0 的配置


记录下pv0 的 id


执行下面命令恢复

pvcreate /dev/vdb -u qdJSB3-pjMo-KI5z-PzkU-zmHb-Gyol-2Tc60v --restorefile /etc/lvm/backup/data

-u  后面的“qdJSB3-pjMo-KI5z-PzkU-zmHb-Gyol-2Tc60v”是pv0 id  

执行这个命令后报错:

Device /dev/vdb excluded by a filter.


翻阅相关的文档,都是说是已经有了分区表导致无法识别或者lvm.conf 中设置了filter 导致的。查看配置文件,发现并未启用global filter ,判断是我操作出错将分区写vdb后多了vdb1导致的,使用fidisk 删除vdb1


重新执行上面pvcreate 命令然后恢复vg 、激活vg

vgcfgrestore data
vgchange -ay data-data

激活后/dev/mapper/data-data 回来了,但是缺少分区 data-data1

使用testdisk 找回分区

testdisk  /dev/mapper/data-data  
# 找到保存分区后,执行partprobe 来扫描磁盘通知内核重载分区表partprobe /dev/mapper/data-data
fsck -y /dev/mapper/data-data1   #前面写入vdb1 导致分区有错误需要fsck


建议


后续使用磁盘直接分区,不使用逻辑卷,在云服务器上单磁盘使用LVM 无任何优势,而且管理也麻烦。


❶ vdb上找到的分区是vdb 上的lvm 的分区,直接写入分区到vdb 是错误的,分区仍然无法识别

相关文章
|
存储 Linux
Linux系统LVM信息丢失处理方法
Linux的LVM会存储用户对PV/VG/LV的每一步操作,并自动把当前的VG的信息备份到一个文件里面,该文件为/etc/lvm/backup/VG名,本文描述了当信息丢失时如何找回的处理方法。
11134 60
Linux系统LVM信息丢失处理方法
|
Docker Windows 容器
cpu不支持avx指令集怎么办
如果CPU不支持AVX指令集,可以考虑以下两种解决方案: 更新BIOS版本:在某些情况下,更新BIOS版本可能会支持AVX指令集。可以联系电脑厂商或者查阅相关教程进行BIOS更新。 更换支持AVX指令集的CPU:如果更新BIOS版本后仍不支持AVX指令集,那么可以考虑更换支持AVX指令集的CPU。可以根据自己的需求和预算选择适合的CPU。 另外,如果在tf1.6以后的官方的tf包都是用AVX编译的,而电脑的CPU不支持AVX指令集,那么可以考虑使用Docker来配置运行环境。但需要注意,Docker在Windows上配置稍显繁琐,并需要配置虚拟机等其他东西。 总的来说,如果不支持AVX指令
9145 1
|
存储 关系型数据库 MySQL
Linux的dev/vda1文件满了导致MySQL无法写入
今天查看两个月前上线的小项目,发现运行非常慢,而且增删改查失效了(吓我一大跳),急急忙忙的就开始了我的线上问题排查之路。/dev/vda1是 Linux 系统中的一个设备文件,它表示第一个虚拟磁盘(vda)的第一个分区(1)。在大多数 Linux 发行版中,这是系统根分区的默认位置。如果您要对/dev/vda1进行操作(例如挂载、格式化、备份等),则需要具有足够的权限。一般来说,只有 root 用户或具有 sudo 权限的用户才能进行这些操作。当Linux的/dev/vda1。
1097 0
webpack 使用打包报错 ERROR in node_modules\@types\node\ts4.8\assert.d.ts
webpack 使用打包报错 ERROR in node_modules\@types\node\ts4.8\assert.d.ts
1278 1
|
Linux 数据处理 Perl
深入探索Linux中的`more`命令
`more`命令是Linux下的文本查看器,适合查看长文件,分页显示内容,支持交互操作如空格(下一页)、回车(下一行)、q(退出)。参数包括:+<num>从指定行开始,/-<num>跳过行,/pattern搜索模式。示例:查看日志`more /var/log/syslog`,从第1000行开始`more +1000 file`,搜索关键词`more /var/log/syslog +/ERROR`。大文件可考虑使用`less`。结合`grep`等命令增强功能。
|
网络协议 安全 测试技术
Nping工具详解:网络工程师的瑞士军刀
### Nping工具详解:网络工程师的瑞士军刀 Nping是Nmap项目的一部分,支持TCP、UDP、ICMP和ARP等多种协议,用于生成和分析网络数据包。它提供灵活的命令行界面,适用于网络探测、安全测试和故障排除。本文介绍Nping的基础与高级用法,包括发送不同类型的网络请求、自定义TCP标志位、路由跟踪等,并通过实战案例展示其应用。掌握Nping有助于更好地理解和管理网络环境。 (239字符)
1245 9
Node安装版本低于工程版本时打包绕过校验
在开发中,若本地Node版本低于项目配置要求,导致打包报错(如图所示),可在不变更本地环境的情况下,通过在执行`npm run build`前输入命令`set NODE_OPTIONS=--openssl-legacy-provider`来绕行此问题,确保构建顺利进行。
1031 10
|
人工智能 弹性计算 并行计算
操作系统迁移难?Alibaba Cloud Linux 支持跨版本升级 | 龙蜥技术
无需担心数据丢失,无需考虑如何解决在升级后同步问题。
|
Linux 数据安全/隐私保护 虚拟化
【复盘】记一次LVM元数据丢失的恢复过程
【复盘】记一次LVM元数据丢失的恢复过程
868 0
|
资源调度 前端开发 JavaScript
秒懂 Yarn:从安装配置到高效使用的全攻略
秒懂 Yarn:从安装配置到高效使用的全攻略