舅舅孩子! pvcreate 了错误的分区,如何恢复。

2023-08-23 22:55:37 +08:00
 ScotGu
一个傻小子的误操作,几个小伙伴抓耳挠腮了好久。但技术不过关,特来 V2 求救!
系统:CentOS7
系统盘(/dev/vda):100G[不涉及]
数据盘 1(/dev/vdb):分区 vdb1:5T ,单盘 1 个分区,数据接近满了。
打算再加两块数据盘 2(/dev/vdc)和数据盘 3(/dev/vdd),然后先做成 LVM ,后续空间不足直接加新盘就可以。
结果这小子鬼使神差 umount 数据盘 1
接着执行了以下操作:
pvcreate /dev/vdc1
pvcreate /dev/vdb1
vgcreate lvmdata /dev/vdc1
vgextend lvmdata /dev/vdb1
lvcreate -L 10T -n server lvmdata

这时才反应过来搞错盘了。
现在用快照创建了新盘,但是不知道怎么恢复。数据量大概 5T 。

一定有人问为什么没提前备份,但是现在首要的是补救,反思的话留着他祭天后在说吧。
904 次点击
所在节点    问与答
8 条回复
oott123
2023-08-24 00:46:45 +08:00
没备份的话应该不太容易…
cpstar
2023-08-24 08:52:54 +08:00
这是相当于用 vdc1 和 vdd1 新建的 lvmdata 覆盖了构建在原来 vdb1 的老 lvmdata ?那是不是相当于老的 lvmdata 信息丢失,需要恢复 lvmdata 的信息,然后搜搜看?
因为没有动 vdb1 上的数据,似乎感觉应该有戏。
7lQM1uTy635LOmbu
2023-08-24 09:25:07 +08:00
如果没有 mkfs 之类的操作,试试直接反向? lvremove ,vgremove ,pvremove ,然后直接挂载看看什么反应。(我没测过,纯脑补)
ScotGu
2023-08-24 10:40:54 +08:00
@cpstar vdb1 原来是单盘 ext4 格式, 没做 LVM 。但是现在看 vdb1 磁盘的文件系统是 LVM2

@nevadax 没有 mkfs ,各种 remove 都报错。或者移除完成后,磁盘类型没变。
cpstar
2023-08-24 11:27:14 +08:00
哦,第二个 pvcreate 搞了 vdb1 啊,不是 vbd1 ,那就相当于破坏了原有的分区表,需要按照 ext4 找内容的方法重建分区表了,这就。。。。
julyclyde
2023-08-24 12:56:54 +08:00
@nevadax pvcreate 和 pvremove 并不算反向啊
7lQM1uTy635LOmbu
2023-08-24 13:35:17 +08:00
加个引号
@julyclyde
billlee
2023-08-24 22:20:06 +08:00
1. 先用 dd 做全盘备份,再尝试进行恢复
2. 根据 lvm pv 和 ext4 的数据结构,ext4 的 superblock 和 group descriptors 应该已经被覆盖了。可以试试 fsck.ext4 指定使用备用 superblock 看看能不能救回来。
3. 最后,因为数据区和 inode table 应该都没有被覆盖,理论上应该是能全部文件+目录结构都恢复回来的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/967787

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX