RAID

RAID

我正在尝试使用 Debian Live 恢复 RAID1 上的 LVM(无加密)。

显然,RAID1 可以毫无问题地组装,但 LVM 已损坏。您可以跳至 LVM 部分。保留 RAID 部分以备不时之需。

RAID

# aptitude install mdadm
# mdadm --assemble --scan

消息:

[  617.036709] md: md0 stopped.
[  617.038099] md: bind<sdc1>
[  617.038302] md: bind<sda1>
[  617.214903] md: raid1 personality registered for level 1
[  617.215534] md/raid1:md0: active with 2 out of 2 mirrors
[  617.215694] created bitmap (8 pages) for device md0
[  617.215956] md0: bitmap initialized from disk: read 1 pages, set 0 of
14903 bits
[  617.682354] md0: detected capacity change from 0 to 1000068874240
[  617.693821]  md0:

这是 RAID:

# ls -l /dev/md0
brw-rw---- 1 root disk 9, 0 Jan 21 19:34 /dev/md0

# mdadm --examine /dev/md0
/dev/md0:
   MBR Magic : aa55

# file -s /dev/{md0,sda,sdc}
/dev/md0: DOS/MBR boot sector
/dev/sda: DOS/MBR boot sector
/dev/sdc: DOS/MBR boot sector

恐怕这DOS/MBR boot sector就是问题所在。稍后会详细介绍这一点。

附加信息,以防万一

这可能不相关。

# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sun Jun 21 18:04:33 2015
     Raid Level : raid1
     Array Size : 976629760 (931.39 GiB 1000.07 GB)
  Used Dev Size : 976629760 (931.39 GiB 1000.07 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Wed Jan 20 22:28:23 2016
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : bouzin:0
           UUID : 102b07b8:703e4597:574b2ecf:880a1aee
         Events : 4349

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       33        1      active sync   /dev/sdc1


# fdisk -l /dev/md0

Disk /dev/md0: 931.4 GiB, 1000068874240 bytes, 1953259520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x9c0ff432

# sfdisk -l /dev/md0

Disk /dev/md0: 244157440 cylinders, 2 heads, 4 sectors/track
Units: cylinders of 4096 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/md0p1          0       -       0          0    0  Empty
/dev/md0p2          0       -       0          0    0  Empty
/dev/md0p3          0       -       0          0    0  Empty
/dev/md0p4          0       -       0          0    0  Empty

# sfdisk -l /dev/sda

Disk /dev/sda: 121601 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1          0+ 121601- 121602- 976760832   fd  Linux raid
autodetect
/dev/sda2          0       -       0          0    0  Empty
/dev/sda3          0       -       0          0    0  Empty
/dev/sda4          0       -       0          0    0  Empty

# sfdisk -l /dev/sdc

Disk /dev/sdc: 121601 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdc1          0+ 121601- 121602- 976760832   fd  Linux raid
autodetect
/dev/sdc2          0       -       0          0    0  Empty
/dev/sdc3          0       -       0          0    0  Empty
/dev/sdc4          0       -       0          0    0  Empty

# cat /proc/mdstat
Personalities : [raid1] 
md0 : active (auto-read-only) raid1 sda1[0] sdc1[1]
      976629760 blocks super 1.2 [2/2] [UU]
      bitmap: 0/8 pages [0KB], 65536KB chunk

编辑 8:RAID 被安装为自动只读。与我最初在这里写的相反,我不必将其设置为读写,它会在需要时自动进行读写,如所解释的这里

LVM

# aptitude install lvm2

# pvscan
  No matching physical volumes found

# lvscan
  No volume groups found

恢复配置文件

我没有 lvm 配置文件的任何备份(我不知道我需要)。

下列的使用 Knoppix Linux LiveCD 从 RAID1 LVM 分区恢复数据

这个想法是读取 LVM 分区的开头来查找 LVM 配置文件。

# dd if=/dev/md0 bs=512 count=4096 skip=1 of=/tmp/md0-raw-start

# vi /tmp/md0-raw-start

在那里找到配置文件。摆脱二进制文件和旧的配置版本。

这是我得到的结果(vg、lv……确实是我在配置 LVM 时使用的名称):

# Generated by LVM2 version 2.02.111(2) (2014-09-01): Sun Jun 21 18:12:39 2015

contents = "Text Format Volume Group"
version = 1

description = ""

creation_host = "bouzin"        # Linux bouzin 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64
creation_time = 1434910359      # Sun Jun 21 18:12:39 2015

vg {
id = "Yxknle-OEes-hihh-tWCt-QBxC-JtP9-bl360E"
seqno = 8
format = "lvm2"
status = ["RESIZEABLE", "READ", "WRITE"]
flags = []
extent_size = 8192
max_lv = 0
max_pv = 0
metadata_copies = 0

physical_volumes {

pv0 {
id = "gUyTdb-rc7j-rJh0-B2EZ-ebb7-mf77-KBgNWm"
device = "/dev/md0"

status = ["ALLOCATABLE"]
flags = []
dev_size = 1953259520
pe_start = 2048
pe_count = 238434
}
}

logical_volumes {

lv0 {
id = "AwliYc-HczW-LZ1x-czpO-YZOJ-sr7k-T13HUf"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
creation_host = "bouzin"
creation_time = 1434910352
segment_count = 1

segment1 {
start_extent = 0
extent_count = 953

type = "striped"
stripe_count = 1

stripes = [
"pv0", 0
]
}
}

lv1 {
id = "Ec1tN2-WKaf-v2if-lAu2-MfiI-1hkE-XyKFGI"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
creation_host = "bouzin"
creation_time = 1434910359
segment_count = 1

segment1 {
start_extent = 0
extent_count = 7152

type = "striped"
stripe_count = 1

stripes = [
"pv0", 953
]
}
}

lv2 {
id = "gFWdEh-7HUJ-zwX1-nqEU-DomC-tdfW-ZGChNw"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
creation_host = "bouzin"
creation_time = 1434910366
segment_count = 1

segment1 {
start_extent = 0
extent_count = 230329

type = "striped"
stripe_count = 1

stripes = [
"pv0", 8105
]
}
}
}
}

这确认我按以下顺序设置分区:

swap
/
/home

编辑2:重要说明

与我链接到的页面中显示的内容相反,不要错过之前的几行vg {,尤其是contents = ...,否则您会得到

`Can't process text format file - missing contents field.` 

使用时出错vgcfgrestore

使用恢复的配置文件

在 lvm 配置目录中安装恢复的配置文件并启动 lvm。

# mkdir /etc/lvm/backup
# cp /tmp/md0-raw-start /etc/lvm/backup/vg

# systemctl start lvm2

# systemctl status lvm2
● lvm2-activation.service - Activation of LVM2 logical volumes
   Loaded: loaded (/lib/systemd/system/lvm2-activation.service; enabled)
   Active: inactive (dead) since Thu 2016-01-21 20:37:42 UTC; 4s ago
     Docs: man:lvm(8)
           man:vgchange(8)
  Process: 22212 ExecStart=/sbin/lvm vgchange -aay --sysinit
(code=exited, status=0/SUCCESS)
 Main PID: 22212 (code=exited, status=0/SUCCESS)

Jan 21 20:37:42 debian lvm[22212]: No volume groups found

问题就在这里。No volume groups found

# vgscan
  Reading all physical volumes.  This may take a while...
  No volume groups found

没有。

# vgcfgrestore vg
  Couldn't find device with uuid gUyTdb-rc7j-rJh0-B2EZ-ebb7-mf77-KBgNWm.
  Cannot restore Volume Group vg with 1 PVs marked as missing.
  Restore failed.

由于我识别并修复了恢复的 lvm 配置文件中缺失的行(请参阅上面的编辑 2),因此此错误消息vgcfgrestore更加明确。

不过,我该去哪里呢?

分区表被删除了?

回到数组的描述:

# file -s /dev/{md0,sda,sdc}
/dev/md0: DOS/MBR boot sector
/dev/sda: DOS/MBR boot sector
/dev/sdc: DOS/MBR boot sector

另一个帖子在这里,我期望这样的事情:

$ file -s /dev/{sde1,md2}
/dev/sde1: LVM2 (Linux Logical Volume Manager) , UUID:
ZK8IfBzUHPH5befvm5CZ81oIXHm11TG
/dev/md2:  LVM2 (Linux Logical Volume Manager) , UUID:
ZK8IfBzUHPH5befvm5CZ81oIXHm11TG

在出现此问题之前上次启动时,我安装了使用 USB 记忆棒的 Linux Mint在另一台计算机上,使用该计算机创建可启动驱动器。我使用 GParted 将“混合”.iso 复制到棒上,dd然后在将其格式化回 FAT32 时遇到问题。我想我尝试了一些fdisk然后最终放弃了。

fdisk想想看,很可能是我使用了错误的方法搞乱了我的系统/dev。我不太清楚我做了什么,但这可能是一个线索。我想不出其他什么了。该系统是 Debian Jessie,具有无人值守升级功能,但我不认为自动更新可以做到这一点。

请注意,分区从交换开始,因此擦除开头可能不如从重要文件开始那么重要。

有人可以确认DOS/MBR boot sector这就是问题所在并且可能是由于 USB 记忆棒分区错误造成的吗?

最重要的是,知道如何解决这个问题吗?

(我每天都会备份驱动器上的大多数重要文件。为了理解,我想解决这个问题,并且因为我想检查我可能会错过备份的文件。)

指示这里可能适用,但在继续之前我希望了解更多细节,因为我有点不清楚。

编辑1:测试磁盘选项

有人建议放弃分区表恢复而是使用Testdisk恢复数据。在尝试任何英勇的操作之前,我可能会尝试以这种方式备份现有数据pvcreate

FWIW,这是 Testdisk 的输出。

分析

Disk /dev/md0 - 1000 GB / 931 GiB - CHS 244157440 2 4
Current partition structure:
     Partition                  Start        End    Size in sectors

No partition is bootable

快速搜索

Disk /dev/md0 - 1000 GB / 931 GiB - CHS 244157440 2 4
     Partition               Start        End    Size in sectors
 * Linux Swap             255   0  1   256   1  4         16
 P Linux                976128   0  1 8299775   1  4   58589184
 P Linux                8299776   0  1 244156671   1  4 1886855168

SWAP2 version 0, pagesize=8192, 8192 B
ext4 blocksize=4096 Large file Sparse superblock, 29 GB / 27 GiB
ext4 blocksize=4096 Large file Sparse superblock, 966 GB / 899 GiB

编辑2:pvcreate选项

这里又出现了错误消息。

# vgcfgrestore vg
  Couldn't find device with uuid gUyTdb-rc7j-rJh0-B2EZ-ebb7-mf77-KBgNWm.

现在,跟随这个建议,我应该尝试这个吗?

dd if=/dev/zero count=1 of=/dev/md0
pvcreate --uuid gUyTdb-rc7j-rJh0-B2EZ-ebb7-mf77-KBgNWm --norestorefile
vcfgrestore

我很确定就是这样,但我希望得到确认。

编辑3:症状

我忘了提及启动时收到的错误消息。

第一次重启,我遇到了这个错误:

error: disk `lvmid/Yxknle-OEes-...` not found. 
Entering rescue mode...
grub rescue> ls
(hd0) (hdO,msdos1), (hd1) (hd1,msdos1) (hd2) (hd2,msdos2) (md/0)

然后我尝试删除一张磁盘。不用找了。然后另一个错误发生了变化,我现在一直遇到这个新错误:

error: file `/boot/grub/i386-pc/normal.mod` not found.

编辑4:strace pvscan

# strace -e trace=open pvscan 2>&1 | grep /dev/md
open("/dev/md0", O_RDONLY|O_DIRECT|O_NOATIME) = 3
open("/dev/md0", O_RDONLY)              = 5
open("/dev/md0", O_RDONLY)              = 3
open("/dev/md0", O_RDONLY|O_DIRECT|O_NOATIME) = 3
open("/dev/md0", O_RDONLY|O_DIRECT|O_NOATIME) = 3

编辑5:lvm备份文件恢复

使用 Testdisk,我成功地掌握了/etc/lvm/backup/vg.

# Generated by LVM2 version 2.02.111(2) (2014-09-01): Sun Jun 21 20:19:54 2015

contents = "Text Format Volume Group"
version = 1

description = "Created *after* executing 'vgcfgbackup'"

creation_host = "bouzin"        # Linux bouzin 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64
creation_time = 1434910794      # Sun Jun 21 20:19:54 2015

vg {
        id = "Yxknle-OEes-hihh-tWCt-QBxC-JtP9-bl360E"
        seqno = 8
        format = "lvm2"                 # informational
        status = ["RESIZEABLE", "READ", "WRITE"]
        flags = []
        extent_size = 8192              # 4 Megabytes
        max_lv = 0
        max_pv = 0
        metadata_copies = 0

        physical_volumes {

                pv0 {
                        id = "gUyTdb-rc7j-rJh0-B2EZ-ebb7-mf77-KBgNWm"
                        device = "/dev/md0"     # Hint only

                        status = ["ALLOCATABLE"]
                        flags = []
                        dev_size = 1953259520   # 931,387 Gigabytes
                        pe_start = 2048
                        pe_count = 238434       # 931,383 Gigabytes
                }
        }

        logical_volumes {

                lv0 {
                        id = "AwliYc-HczW-LZ1x-czpO-YZOJ-sr7k-T13HUf"
                        status = ["READ", "WRITE", "VISIBLE"]
                        flags = []
                        creation_host = "bouzin"
                        creation_time = 1434910352      # 2015-06-21 20:12:32 +0200
                        segment_count = 1

                        segment1 {
                                start_extent = 0
                                extent_count = 953      # 3,72266 Gigabytes

                                type = "striped"
                                stripe_count = 1        # linear

                                stripes = [
                                        "pv0", 0
                                ]
                        }
                }

                lv1 {
                        id = "Ec1tN2-WKaf-v2if-lAu2-MfiI-1hkE-XyKFGI"
                        status = ["READ", "WRITE", "VISIBLE"]
                        flags = []
                        creation_host = "bouzin"
                        creation_time = 1434910359      # 2015-06-21 20:12:39 +0200
                        segment_count = 1

                        segment1 {
                                start_extent = 0
                                extent_count = 7152     # 27,9375 Gigabytes

                                type = "striped"
                                stripe_count = 1        # linear

                                stripes = [
                                        "pv0", 953
                                ]
                        }
                }

                lv2 {
                        id = "gFWdEh-7HUJ-zwX1-nqEU-DomC-tdfW-ZGChNw"
                        status = ["READ", "WRITE", "VISIBLE"]
                        flags = []
                        creation_host = "bouzin"
                        creation_time = 1434910366      # 2015-06-21 20:12:46 +0200
                        segment_count = 1

                        segment1 {
                                start_extent = 0
                                extent_count = 230329   # 899,723 Gigabytes

                                type = "striped"
                                stripe_count = 1        # linear

                                stripes = [
                                        "pv0", 8105
                                ]
                        }
                }
        }
}

它与我恢复的内容相同,只是它有注释。

编辑6:尝试创建物理卷

从上面可以看出,/dev/md0大小为 976629760 kB。

# dd if=/dev/md0 of=/media/user/bak/copy_lvm/start bs=1M count=1
# dd if=/dev/md0 of=/media/user/bak/copy_lvm/end bs=1M count=1 skip=953739

(希望我使用dd正确。)

不知道应该如何使用pvcreate

# pvcreate --uuid gUyTdb-rc7j-rJh0-B2EZ-ebb7-mf77-KBgNWm --norestorefile
  Can only set uuid on one volume at once
  Run `pvcreate --help' for more information.

# pvcreate --uuid gUyTdb-rc7j-rJh0-B2EZ-ebb7-mf77-KBgNWm --norestorefile /dev/md0
  Can't open /dev/md0 exclusively.  Mounted filesystem?

我尝试将数组设置为读写。

# mdadm --readwrite /dev/md0
mdadm: failed to set writable for /dev/md0: Device or resource busy

我不知道为什么很忙。lsof什么也不产生。

# lsof /dev/md0

编辑7:再次测试磁盘

感谢 Testdisk,我成功备份了没有自动备份的文件。现在我应该安全了。这只是为了保存系统以避免从头开始重新安装。 (我什至复制了/等)

Testdisk 还可以进行分区检测和分区表修复。它检测到我的分区(见上文),但表明交换区是可引导分区。我把它改成了持有系统的那个。也许幕后还发生了一些 Testdisk 欺骗行为。不管怎样,我点击了“写入”,然后重新启动。

重启时仍然出现同样的错误:

error: file `/boot/grub/i386-pc/normal.mod` not found.

不过,有个好消息:在 Debian Live 上启动时,阵列会自动组装并且 LVM 会被识别。我可以浏览分区。

我还可以检查它/boot/grub/i386-pc/normal.mod应该在哪里。 (它是二进制的,所以我无法检查其中的内容。)

哦,我还检查了 root 的 bash 历史记录,但没有找到会导致这种混乱的命令。我在 上使用了 fdisk /dev/sdh,但没有使用/dev/sda/dev/sdc错误地使用了 fdisk。不过,可以与 GParted 一起使用。

编辑8:RAID和LVM状态

由于事情已经发生变化,我想我会再次尝试这些命令。

# mdadm --examine /dev/md0
/dev/md0:
   MBR Magic : aa55
Partition[0] :           16 sectors at         2040 (type 82)
Partition[1] :     58589184 sectors at      7809024 (type 83)
Partition[2] :   1886855168 sectors at     66398208 (type 83)

# file -s /dev/{md0,sda,sdc}
/dev/md0: DOS/MBR boot sector; partition 1 : ID=0x82, start-CHS (0xff,0,1), end-CHS (0x10,1,4), startsector 2040, 16 sectors; partition 2 : ID=0x83, active, start-CHS (0x3ff,1,4), end-CHS (0x3ff,1,4), startsector 7809024, 58589184 sectors; partition 3 : ID=0x83, start-CHS (0x3ff,1,4), end-CHS (0x3ff,1,4), startsector 66398208, 1886855168 sectors
/dev/sda: DOS/MBR boot sector
/dev/sdc: DOS/MBR boot sector

# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sun Jun 21 18:04:33 2015
     Raid Level : raid1
     Array Size : 976629760 (931.39 GiB 1000.07 GB)
  Used Dev Size : 976629760 (931.39 GiB 1000.07 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Sat Jan 23 21:43:23 2016
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : bouzin:0
           UUID : 102b07b8:703e4597:574b2ecf:880a1aee
         Events : 4355

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       33        1      active sync   /dev/sdc1

# fdisk -l /dev/md0

Disk /dev/md0: 931.4 GiB, 1000068874240 bytes, 1953259520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x9c0ff432

Device     Boot    Start        End    Sectors   Size Id Type
/dev/md0p1          2040       2055         16     8K 82 Linux swap / Solaris
/dev/md0p2 *     7809024   66398207   58589184    28G 83 Linux
/dev/md0p3      66398208 1953253375 1886855168 899.7G 83 Linux

# sfdisk -l /dev/md0

Disk /dev/md0: 244157440 cylinders, 2 heads, 4 sectors/track
Units: cylinders of 4096 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/md0p1        255     256       2          8   82  Linux swap / Solaris
/dev/md0p2   * 976128  8299775  7323648   29294592   83  Linux
/dev/md0p3     8299776  244156671  235856896  943427584   83  Linux
/dev/md0p4          0       -       0          0    0  Empty

# cat /proc/mdstat
Personalities : [raid1] 
md0 : active raid1 sda1[0] sdc1[1]
      976629760 blocks super 1.2 [2/2] [UU]
      bitmap: 0/8 pages [0KB], 65536KB chunk

unused devices: <none>

# vgscan
  Reading all physical volumes.  This may take a while...
  No volume groups found

我想我开始理解你的疑虑了。看起来RAID ( /dev/md0) 是在没有LVM 的情况下进行分区的。不过,这会让人感到惊讶,因为我记得创建了 LVM,而且我发现的配置文件也证实了这一点。

难道是 Testdisk 忽略了 LVM,然后直接写入分区表来/dev/md0分流 LVM(如果这有意义的话)?

编辑9:我的LVM在哪里

FWIW,我重新启动,仍然在 Debian Live 上,安装 mdadm 后,即使在安装 lvm2 之前,raid 也会自动组装(只有 liblvm2app2.2 是)。这是否意味着LVM已经“消失”了?

# dmsetup ls
No devices found

# pvscan
  No matching physical volumes found

# vgscan 
  Reading all physical volumes.  This may take a while...
  No volume groups found

编辑10:Grub修复

让我们假设文件系统/LVM 工作正常并关注 Grub 错误。

按照网上的建议,我尝试了这个grub-install

# mount /dev/md0p2 /mnt
# grub-install --root-directory=/mnt /dev/md0
The file /mnt/boot/grub/stage1 not read correctly.

该分区被识别为Linux:

# fdisk -l  /dev/md0

Disk /dev/md0: 931.4 GiB, 1000068874240 bytes, 1953259520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x9c0ff432

Device     Boot    Start        End    Sectors   Size Id Type
/dev/md0p1          2040       2055         16     8K 82 Linux swap / Solaris
/dev/md0p2 *     7809024   66398207   58589184    28G 83 Linux
/dev/md0p3      66398208 1953253375 1886855168 899.7G 83 Linux

有人建议grub 仅适用于 inode 大小为 128

# tune2fs -l /dev/md0p2 | grep -i 'inode size'
Inode size:               256

我没有看到索引节点大小会发生变化的任何原因,所以我不确定我应该关心。

我被困住了。

分区表显示了一个奇怪的交换大小。也许我搞砸了这个分区,Testdisk 的检测不正确,它写入了我们在这里看到的错误表。无论如何,情况还不错。我想我可以在需要时随时更改它。

gparted 显示以下内容:

Partition     File System   Mount Point   Size         Flags
/dev/md0p1                                8 KiB
unallocated   unallocated                 3.72 GiB
/dev/md0p2    ext4          /mnt          27.94 GiB    boot
/dev/md0p3    ext4                        899.72 GiB
unallocated   unallocated                 3.72 GiB

看起来我的 /home 分区 (/dev/md0p3) 的末尾不知何故被切断了。

没有提到 LVM。

我应该重新创建 /dev/md0p1 作为交换添加靠近它的未分配空间(并忘记最后丢失的 4 GB),还是在这里使用 gparted 只会让事情变得更糟?

在这种情况下,使用 LVM 并不是很重要。 1 TB 磁盘允许我为系统预留 30 GB 的空间,但仅使用了 5 GB。我不介意在此过程中丢失 LVM,除非最终设置损坏。

编辑 11:保存数据,放弃文件系统

此时,我能够在另一个磁盘上安装/homeetc保留rsync权限和所有内容,因此从头开始重新安装并不是真正的问题。

如果我明白发生了什么,我会很高兴,但花费数小时修复 LVM 最终得到一个我无法完全理解和信任的设置,这并不是一个好的举动,所以我决定从头开始重新安装。

我可以使用 Debian 安装程序在阵列上重新安装,但在启动时会出现相同的错误。我不得不与安装程序斗争以销毁并重新创建阵列,最终一切顺利。

另一个教训。从现在开始,我将进行更多备份。为了备份/home,我rsync把它放在另一个磁盘上。要保存/etc和打包列表,这是我在工作中所做的:

我使用etckeeperversion   /etc,然后将其克隆到另一个驱动器上。我用来apt-clone保存已安装软件包的列表。

#!/bin/sh
#
# Script to clone installation
#

DEST_DIR=/mnt/backup_drive

# Apt clone
apt-clone clone $DEST_DIR/apt-clone/apt-clone-$(lsb_release -si)-$(lsb_release -sc)-$(lsb_release -sr)-$(date +%F).tar.gz

# Git clone /etc
cd $DEST_DIR/etc; git pull --quiet

答案1

你的信息是矛盾的。/dev/md0不能同时是 PV 和分区表。file会识别PV。似乎md0已分区,因此 LVM 卷相当于/dev/md0p1/dev/md0p2

也许由于某种原因pvscan/vgscan忽略/dev/md0/ /dev/md0p1(因此 LVM 无法找到 UUID)。您可以运行pvscan以下strace命令来检查扫描了哪些块设备:

strace -e trace=open pvscan 2>&1 | grep /dev/md

相关内容