LVM重启后找不到文件分区

简介: LVM重启后找不到文件分区

原因

创建好LVM后,将LVM当做一个设备,又新建了一个分区,将LVM上的分区格式化后使用。
在重启后系统只能找到LVM找不到LVM上的分区。

解决方案

使用testdisk 来找回分区。

testdisk /dev/mapper/data-data`

找到保存分区后,执行partprobe 来扫描分区(重启就会又不见了)

partprobe /dev/mapper/data-data

建议

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

起因

LVM 上分区data-data1 重启后消失,在找回分区时应该使用testdisk /dev/mapper/data-data
但是误操作testdisk /dev/vdb , 而且扫描到了一个分区(可以看到磁盘上数据),并将分区/dev/vdb1 ❶信息写入磁盘。操作完成后发现有误,使用
testdisk /dev/mapper/data-data
来找回data-data1 测试并挂载到/mnt 下可以看到数据。为了验证问题 重启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 错误)
如果执行fsck vdb1 ,也许可以解决这个问题❷

解决

LVM创建成功后,都会在/etc/lvm/backup 下备份配置信息
在这个case中 备份名为/etc/lvm/backup/data
less /etc/lvm/backup/data #查看pv0 的配置

image.png
记录下pv0 的 id
执行下面命令恢复

pvcreate /dev/sdb -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 ,判断是我操作出错多了vdb1导致的,使用fidisk 删除vdb1
重新执行pvcreate
然后恢复vg 、激活vg

vgcfgrestore data
vgchange -ay data-data

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

testdisk  /dev/mapper/data-data
fsck -y /dev/mapper/data-data1   #前面写入vdb1 导致分区有错误需要fsck

❶ vdb上找到的分区是vdb 上的lvm 的分区,直接写入分区到vdb 是错误的,分区仍然无法识别
❷ fsck /dev/vdb1 也许能解决这个vdb1 不能使用的问题但是未做测试。

目录
相关文章
|
6月前
|
Linux 测试技术
非LVM磁盘分区根目录扩容操作参考
在操作系统部署时,根目录使用的是非LVM分区,后期空间不足又无法扩容。 提供一个思路是新增一块硬盘,创建为逻辑卷,把根目录迁移过去,然后引导以新分区启动。 迁移完成后,旧的根目录可以再格式化为逻辑卷,合并到新磁盘分区。 本操作仅在CentOS Linux release 7.9.2009实验过,其他环境可能不支持。
527 0
|
10月前
LVM 缩减 / 根目录导致的开机错误
LVM 缩减 / 根目录导致的开机错误
216 0
|
Linux Shell
umount卸载根目录,xfs_repair修复根分区
umount卸载根目录,xfs_repair修复根分区
1096 0
|
弹性计算
LVM重启后分区无法识别挂载
LVM重启后分区无法识别挂载
|
IDE Unix Linux
linux中的tar打包、压缩多个文件、磁盘查看和分区类、du查看文件和目录占用的磁盘空间、df查看磁盘空间使用情况、lsblk查看设备挂载情况、fdisk分区、mount/umount挂载/卸载、设置开机自动挂载
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的 文件格式.tar.gz)du 目录/文件 (功能描述:显示目录下每个子目录的磁盘使用情况)du: disk usage 磁盘占用情况。详细的请看我之前发的博客。linux常用命令下。linux常用命令中。linux常用命令上。...............对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根 目录、一个独立且唯一的文件结构。Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理 方法,它整个文件系统中包含了一整套的文件和目录,并将一
287 1
linux中的tar打包、压缩多个文件、磁盘查看和分区类、du查看文件和目录占用的磁盘空间、df查看磁盘空间使用情况、lsblk查看设备挂载情况、fdisk分区、mount/umount挂载/卸载、设置开机自动挂载
|
Linux
Linux 查看分区、未挂载分区
ls /dev 然后挂载 df -T 只可以查看已经挂载的分区和文件系统类型。 fdisk -l 可以显示出所有挂载和未挂载的分区,但不显示文件系统类型。
3259 0
|
机器学习/深度学习 Shell Linux
linux LVM 一键分区脚本自动扩容
lv 分区,vg 卷,pv 硬盘;加s 列出,remove 删除 ;如:lvs和 lvremove 需要fdisk -l 查看LVM硬盘目录,如删除分区:lvremove /dev/mapper/eisc-b
1729 0
|
存储 Shell Linux
Linux硬盘分区,卸载,挂载,格式化,加到开机启动项
0、创建挂载目录 mkdir -p /www 1、确认是否有没有分区的磁盘,如下图,没有分区的磁盘是 /dev/xvdb ,在您的服务器中可能是 /dev/vdb 请注意按实际名称修改 fdisk -l 2、为磁盘分区,若已分区的,请跳过! fdisk /dev/xvdb 3、输入n开始创建分.
2029 0
|
Linux
LVM 分区自定义镜像无法启动问题记录
手动添加lvm驱动引导启动
4043 0