Dan*_*Dan 7 linux hard-drive filesystems partitioning lvm
如何修复 LVM 卷的超级块?或者,如何恢复无法挂载的lvm逻辑卷上的数据?
\n\n我最近添加了第二个硬盘,扩展了卷组,并将现有 LV 镜像vg00/FAST到lvconvert -m1 /dev/vg00/FAST新磁盘上的物理空间。vg00/SLOW我还在新硬盘的剩余空间上创建了第二个LV 。两者都是 ext4 文件系统。我的理解是LVM当前的实现默认使用mdadm raid 1进行镜像。我正在lvm2 2.02.168-1Arch 中运行。/etc/lvm/archive我还在和中保存了 LVM 卷的多个备份/etc/lvm/backup。
从物理角度来看,/dev/sda4是一个 1.79T GPT LVM 分区,包含vg00/FAST,/dev/sdc1是一个 2.73T GPT LVM 分区,包含vg00/FAST和vg00/SLOW。
在 Linux 启动期间,我收到以下超级块错误:
\n\n15.111767 device-mapper: raid: Failed to read superblock of device at position 1\nFailed to start lvm2 PV scan on device 8:4\nSee systemctl status \'lvm20pvscan@8:4.service\'\nRun Code Online (Sandbox Code Playgroud)\n\nvg00/FAST挂载(从/dev/sda4镜像)并且文件系统/数据完好无损,但未vg00/SLOW挂载。看来 LVM 不会从 读取任何 LV /dev/sdb1。
对于普通的 ext4 分区,我会fsck继续,但vg/SLOW不在,/dev所以我不能fsck /dev/vg00/SLOW。如果我fsck /dev/sdb1fsck 理解底层 LVM 结构,还是会将 sdb1 视为损坏的 ext4 分区,并生成错误流?
日志:
\n\n $ journalctl -xb\n .....\n Dec 08 23:21:52 hostname lvm[304]: WARNING: Device for PV g1WAG2-Dc9i-Gods-w3n7-SZD7-5Kvc-qzepno not found or rejected\n Dec 08 23:21:52 hostname lvm[304]: Refusing refresh of partial LV vg00/FAST_rimage_1. Use \'--activationmode partial\' t\n Dec 08 23:21:52 hostname lvm[304]: Refusing refresh of partial LV vg00/SLOW. Use \'--activationmode partial\' to overrid\n Dec 08 23:21:52 hostname lvm[304]: Refusing refresh of partial LV vg00/FAST_rimage_1. Use \'--activationmode partial\' t\n Dec 08 23:21:52 hostname lvm[304]: Refusing refresh of partial LV vg00/SLOW. Use \'--activationmode partial\' to overrid\n Dec 08 23:21:52 hostname lvm[304]: Refusing refresh of partial LV vg00/FAST_rimage_1. Use \'--activationmode partial\' t\n Dec 08 23:21:52 hostname lvm[304]: Refusing refresh of partial LV vg00/SLOW. Use \'--activationmode partial\' to overrid\n Dec 08 23:21:52 hostname lvm[304]: Refusing refresh of partial LV vg00/FAST_rimage_1. Use \'--activationmode partial\' t\n Dec 08 23:21:52 hostname lvm[304]: Refusing refresh of partial LV vg00/SLOW. Use \'--activationmode partial\' to overrid\n Dec 08 23:21:52 hostname lvm[304]: Refusing refresh of partial LV vg00/FAST_rimage_1. Use \'--activationmode partial\' t\n Dec 08 23:21:52 hostname lvm[304]: Refusing refresh of partial LV vg00/SLOW. Use \'--activationmode partial\' to overrid\n .....\n Dec 08 23:21:57 hostname kernel: device-mapper: raid: Failed to read superblock of device at position 1\n Dec 08 23:21:58 hostname kernel: md: raid1 personality registered for level 1\n Dec 08 23:21:58 hostname kernel: md/raid1:mdX: active with 1 out of 2 mirrors\n Dec 08 23:21:58 hostname kernel: created bitmap (917 pages) for device mdX\n Dec 08 23:21:58 hostname kernel: mdX: bitmap initialized from disk: read 58 pages, set 921 of 1876944 bits\n Dec 08 23:21:58 hostname kernel: EXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: data=ordered\n Dec 08 23:21:52 hostname systemd[1]: Starting Flush Journal to Persistent Storage...\n -- Subject: Unit systemd-journal-flush.service has begun start-up\n -- Defined-By: systemd\n --\n -- Unit systemd-journal-flush.service has begun starting up.\n Dec 08 23:21:55 hostname dmeventd[403]: dmeventd ready for processing.\n Dec 08 23:21:58 hostname lvm[304]: vg00: refresh before autoactivation failed.\n Dec 08 23:21:58 hostname lvm[304]: Refusing activation of partial LV vg00/SLOW. Use \'--activationmode partial\' to ove\n Dec 08 23:21:58 hostname lvm[304]: 1 logical volume(s) in volume group "vg00" now active\n Dec 08 23:21:58 hostname lvm[304]: vg00: autoactivation failed.\n Dec 08 23:21:55 hostname systemd[1]: Started Device-mapper event daemon.\n -- Subject: Unit dm-event.service has finished start-up\n -- Defined-By: systemd\n --\n -- Unit dm-event.service has finished starting up.\n --\n -- The start-up result is done.\n Dec 08 23:21:55 hostname lvm[403]: Monitoring RAID device vg00-FAST for events.\n Dec 08 23:21:55 hostname systemd[1]: Found device /dev/vg00/FAST.\n -- Subject: Unit dev-vg00-FAST.device has finished start-up\n -- Defined-By: systemd\n --\n -- Unit dev-vg00-FAST.device has finished starting up.\n --\n -- The start-up result is done.\n Dec 08 23:21:55 hostname systemd[1]: lvm2-pvscan@8:4.service: Main process exited, code=exited, status=5/NOTINSTALLED\n Dec 08 23:21:55 hostname systemd[1]: Failed to start LVM2 PV scan on device 8:4.\n -- Subject: Unit lvm2-pvscan@8:4.service has failed\n -- Defined-By: systemd\n --\n -- Unit lvm2-pvscan@8:4.service has failed.\n --\n -- The result is failed.\n Dec 08 23:21:55 hostname systemd[1]: lvm2-pvscan@8:4.service: Unit entered failed state.\n Dec 08 23:21:58 hostname systemd-fsck[409]: /dev/mapper/vg00-FAST: clean, 5273/120127488 files, 389615339/480497664 bloc\n Dec 08 23:21:55 hostname systemd[1]: lvm2-pvscan@8:4.service: Failed with result \'exit-code\'.\n Dec 08 23:21:55 hostname systemd[1]: Starting File System Check on /dev/vg00/FAST...\n -- Subject: Unit systemd-fsck@dev-vg00-FAST.service has begun start-up\n -- Defined-By: systemd\n --\n -- Unit systemd-fsck@dev-vg00-FAST.service has begun starting up.\n Dec 08 23:21:56 hostname systemd[1]: Started File System Check on /dev/vg00/FAST.\n -- Subject: Unit systemd-fsck@dev-vg00-FAST.service has finished start-up\n -- Defined-By: systemd\n --\n -- Unit systemd-fsck@dev-vg00-FAST.service has finished starting up.\nRun Code Online (Sandbox Code Playgroud)\n\nlv显示:
\n\n$ lvdisplay -v\n\n WARNING: Device for PV g1WAG2-Dc9i-Gods-w3n7-SZD7-5Kvc-qzepno not found or rejected by a filter.\n There are 1 physical volumes missing.\n There are 1 physical volumes missing.\n --- Logical volume ---\n LV Path /dev/vg00/FAST\n LV Name FAST\n VG Name vg00\n LV UUID g7lYit-lsR3-WvoE-Idfj-C8kE-kcz4-VXpS1D\n LV Write Access read/write\n LV Creation host, time host, 2015-12-02 21:06:11 -0500\n LV Status available\n # open 1\n LV Size 1.79 TiB\n Current LE 469236\n Mirrored volumes 2\n Segments 1\n Allocation contiguous\n Read ahead sectors auto\n - currently set to 256\n Block device 254:6\n\n --- Logical volume ---\n LV Path /dev/vg00/SLOW\n LV Name SLOW\n VG Name vg00\n LV UUID u2ExhF-DFCH-U1Yc-M1WM-aIUl-bODu-FILusX\n LV Write Access read/write\n LV Creation host, time host, 2016-12-07 09:16:22 -0500\n LV Status NOT available\n LV Size 961.56 GiB\n Current LE 246159\n Segments 1\n Allocation contiguous\n Read ahead sectors auto\nRun Code Online (Sandbox Code Playgroud)\n\n左扫描:
\n\n$ lvscan -v\n\n WARNING: Device for PV g1WAG2-Dc9i-Gods-w3n7-SZD7-5Kvc-qzepno not found or rejected by a filter.\n There are 1 physical volumes missing.\n There are 1 physical volumes missing.\n ACTIVE \'/dev/vg00/FAST\' [1.79 TiB] contiguous\n inactive \'/dev/vg00/SLOW\' [961.56 GiB] contiguous\nRun Code Online (Sandbox Code Playgroud)\n\nlvmdisk扫描:
\n\n$ lvmdiskscan\n /dev/sda2 [ 20.00 GiB]\n /dev/sda3 [ 8.00 GiB]\n /dev/sda4 [ 1.79 TiB] LVM physical volume\n /dev/vg00/FAST [ 1.79 TiB]\n /dev/sdb1 [ 2.73 TiB]\n 2 disks\n 5 partitions\n 0 LVM physical volume whole disks\n 1 LVM physical volume\nRun Code Online (Sandbox Code Playgroud)\n\ngdisk 分区结构看起来不错:
\n\n$ gdisk -l /dev/sdb\n\nGPT fdisk (gdisk) version 1.0.1\n\nPartition table scan:\n MBR: protective\n BSD: not present\n APM: not present\n GPT: present\n\nFound valid GPT with protective MBR; using GPT.\nDisk /dev/sdb: 5860533168 sectors, 2.7 TiB\nLogical sector size: 512 bytes\nDisk identifier (GUID): 9B452B16-4F7C-4F3E-B54F-0B46C7B978E1\nPartition table holds up to 128 entries\nFirst usable sector is 34, last usable sector is 5860533134\nPartitions will be aligned on 2048-sector boundaries\nTotal free space is 2014 sectors (1007.0 KiB)\n\nNumber Start (sector) End (sector) Size Code Name\n 1 2048 5860533134 2.7 TiB 8E00 Linux LVM\nRun Code Online (Sandbox Code Playgroud)\n\nTestdisk,似乎也可以:
\n\nTestDisk 7.0, Data Recovery Utility, April 2015\nChristophe GRENIER <grenier@cgsecurity.org>\nhttp://www.cgsecurity.org\n\nDisk /dev/sdb - 3000 GB / 2794 GiB - CHS 364801 255 63\nCurrent partition structure:\n Partition Start End Size in sectors\n\nNo LVM or LVM2 structure\n 1 P Linux LVM 2048 5860533134 5860531087 [Linux LVM]\n 1 P Linux LVM 2048 5860533134 5860531087 [Linux LVM]\nRun Code Online (Sandbox Code Playgroud)\n\n尝试直接挂载分区会产生:
\n\n$ mount /dev/sdb1 /mnt/TMP/\nmount: mount /dev/sdb1 on /mnt/TMP failed: Structure needs cleaning\nRun Code Online (Sandbox Code Playgroud)\n\n编辑添加:
\n\n从 LVM 的角度来看,问题似乎是“在 /dev/sdb1 上找不到 LVM 标签”。我可以重新创建 LVM 标签吗/dev/sdb1?\npvscan:
$ pvscan -v\n Wiping internal VG cache\n Wiping cache of LVM-capable devices\n WARNING: Device for PV g1WAG2-Dc9i-Gods-w3n7-SZD7-5Kvc-qzepno not found or rejected by a filter.\n There are 1 physical volumes missing.\n There are 1 physical volumes missing.\n PV /dev/sda4 VG vg00 lvm2 [1.79 TiB / 4.00 MiB free]\n PV [unknown] VG vg00 lvm2 [2.73 TiB / 0 free]\n Total: 2 [4.52 TiB] / in use: 2 [4.52 TiB] / in no VG: 0 [0 ]\nRun Code Online (Sandbox Code Playgroud)\n\n新的非工作分区上的 pvck:
\n\n$ pvck -v /dev/sdb1\n Scanning /dev/sdb1\n Could not find LVM label on /dev/sdb1\nRun Code Online (Sandbox Code Playgroud)\n\n原始(工作)lvm 分区上的 pvck:
\n\n$ pvck -v /dev/sda4\n Scanning /dev/sda4\n Found label on /dev/sda4, sector 1, type=LVM2 001\n Found text metadata area: offset=4096, size=1044480\n Found LVM2 metadata record at offset=52224, size=3072, offset2=0 size2=0\n Found LVM2 metadata record at offset=49152, size=3072, offset2=0 size2=0\n Found LVM2 metadata record at offset=46080, size=3072, offset2=0 size2=0\n Found LVM2 metadata record at offset=43520, size=2560, offset2=0 size2=0\n Found LVM2 metadata record at offset=40960, size=2560, offset2=0 size2=0\n Found LVM2 metadata record at offset=38400, size=2560, offset2=0 size2=0\n Found LVM2 metadata record at offset=35840, size=2560, offset2=0 size2=0\n Found LVM2 metadata record at offset=33280, size=2560, offset2=0 size2=0\n Found LVM2 metadata record at offset=30720, size=2560, offset2=0 size2=0\n Found LVM2 metadata record at offset=28160, size=2560, offset2=0 size2=0\n Found LVM2 metadata record at offset=25600, size=2560, offset2=0 size2=0\n Found LVM2 metadata record at offset=23040, size=2560, offset2=0 size2=0\n Found LVM2 metadata record at offset=21504, size=1536, offset2=0 size2=0\n Found LVM2 metadata record at offset=19968, size=1536, offset2=0 size2=0\n Found LVM2 metadata record at offset=18432, size=1536, offset2=0 size2=0\n Found LVM2 metadata record at offset=16896, size=1536, offset2=0 size2=0\n Found LVM2 metadata record at offset=15360, size=1536, offset2=0 size2=0\n Found LVM2 metadata record at offset=13824, size=1536, offset2=0 size2=0\n Found LVM2 metadata record at offset=12288, size=1536, offset2=0 size2=0\n Found LVM2 metadata record at offset=10752, size=1536, offset2=0 size2=0\n Found LVM2 metadata record at offset=9216, size=1536, offset2=0 size2=0\n Found LVM2 metadata record at offset=7680, size=1536, offset2=0 size2=0\n Found LVM2 metadata record at offset=6144, size=1536, offset2=0 size2=0\nRun Code Online (Sandbox Code Playgroud)\n\nlsblk:
\n\n$ lsblk -o name,mountpoint,label,size,uuid\nNAME MOUNTPOINT LABEL SIZE UUID\nsdb 2.7T\n\xe2\x94\x94\xe2\x94\x80sdb1 BACKUP 2.7T a1b354f4-dea8-4b39-9520-aebcf6c9c72f\nvg00-FAST_rimage_1-missing_0_0 1.8T\n\xe2\x94\x94\xe2\x94\x80vg00-FAST_rimage_1 1.8T\nsr0 Parted Magic 2016_01_06 494M 2016-01-13-12-09-50-00\nvg00-FAST_rmeta_1-missing_0_0 4M\n\xe2\x94\x94\xe2\x94\x80vg00-FAST_rmeta_1 4M\nloop0 30G d5ce3be0-00fc-4f73-8ee4-989440310d23\n\xe2\x94\x94\xe2\x94\x80docker-8:2-410226-pool 30G\nsda 1.8T\n\xe2\x94\x9c\xe2\x94\x80sda4 1.8T UDq1dm-JH3Z-aCIX-3oQy-1ZDG-kNoi-BdNtkK\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80vg00-FAST_rimage_0 1.8T\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80vg00-FAST /mnt/FAST 1.8T b78849e7-3399-444f-b98f-cba61d073961\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80vg00-FAST_rmeta_0 4M\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80vg00-FAST /mnt/FAST 1.8T b78849e7-3399-444f-b98f-cba61d073961\n\xe2\x94\x9c\xe2\x94\x80sda2 / rootfs 20G ae45e705-67f4-4269-88e3-06d8e77a9e36\n\xe2\x94\x9c\xe2\x94\x80sda3 [SWAP] 8G 22a40da7-d0f9-4371-a585-8d49dc585708\n\xe2\x94\x94\xe2\x94\x80sda1 1007K\nRun Code Online (Sandbox Code Playgroud)\n