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 구성 파일에서 누락된 행을 식별하고 수정했기 때문에 vgcfgrestore더 명확해졌습니다 (위의 편집 2 참조).

그런데 어디로 가야 하나요?

파티션 테이블이 삭제되었나요?

어레이 설명으로 돌아가서:

# 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크기는 976629760kB입니다.

# 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 덕분에 자동으로 백업되지 않았던 파일들을 성공적으로 백업할 수 있었습니다. 이제 안전할 것 같아요. 이는 처음부터 다시 설치하지 않도록 시스템을 저장하기 위한 것입니다. (심지어 /etc도 복사했습니다)

Testdisk는 파티션 감지 및 파티션 테이블 복구도 수행할 수 있습니다. 내 파티션(위 참조)을 감지했지만 스왑 영역이 부팅 가능하다고 말합니다. 시스템을 보유하고 있는 것으로 변경했습니다. 어쩌면 배후에서 Testdisk 부정 행위가 진행되고 있을 수도 있습니다. 어쨌든 "쓰기"를 누르고 재부팅했습니다.

다시 시작해도 여전히 같은 오류가 발생합니다.

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

그러나 좋은 소식이 있습니다. Debian Live에서 부팅하면 어레이가 자동으로 조립되고 LVM이 인식됩니다. 파티션을 탐색할 수 있습니다.

/boot/grub/i386-pc/normal.mod어디에 있어야 하는지도 확인할 수 있어요 . (바이너리라서 내용을 확인할 수 없습니다.)

아, 루트의 bash 기록도 확인했는데 이런 혼란을 야기하는 명령을 찾을 수 없었습니다. 에서 fdisk를 사용하고 있지만 fdisk를 잘못 사용 하거나 사용하고 /dev/sdh있는 것은 아닙니다 . 그러나 GParted와 함께 사용할 수 있습니다./dev/sda/dev/sdc

편집 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( )가 LVM 없이 분할된 것 같습니다 /dev/md0. 하지만 이는 놀라운 일이 될 것입니다. 제가 LVM을 생성한 것을 기억하고 제가 찾은 구성 파일이 이를 확인하기 때문입니다.

Testdisk가 LVM을 무시하고 파티션 테이블에 직접 기록하여 LVM을 오프로드할 수 있습니까 /dev/md0(해당되는 경우)?

편집 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: 그럽 수정

파일 시스템/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

inode 크기가 변경되는 이유가 없으므로 신경써야 할지 잘 모르겠습니다.

나는 붙어있다.

파티션 테이블에 이상한 스왑 크기가 표시됩니다. 어쩌면 내가 이 파티션을 엉망으로 만들었고 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을 다시 생성해야 합니까(그리고 손실된 마지막 4GB는 잊어버리십시오), 아니면 여기에서 gparted를 사용하면 상황이 더 악화됩니까?

이 경우 LVM을 사용하는 것은 그다지 중요하지 않습니다. 1TB 디스크를 사용하면 시스템에 30GB의 공간을 예약할 수 있지만 5GB만 사용됩니다. 최종 설정이 손상되지 않는 한 프로세스에서 LVM을 잃어도 괜찮습니다.

편집 11: 데이터 저장, 파일 시스템 폐기

/home이 시점에서는 다른 디스크에 설치 하고 권한과 모든 것을 etc유지할 수 있었기 rsync때문에 처음부터 다시 설치하는 것은 실제로 문제가 되지 않았습니다.

무슨 일이 일어나고 있는지 이해하면 기쁘겠지만 LVM을 수정하는 데 시간을 투자하여 완전히 이해할 수 없고 신뢰할 수 없는 설정으로 끝나는 것은 좋은 조치가 아니기 때문에 처음부터 다시 설치하기로 결정했습니다.

Debian 설치 프로그램을 사용하여 어레이에 다시 설치할 수 있지만 시작할 때 동일한 오류가 발생합니다. 어레이를 파괴하고 다시 생성하기 위해 설치 프로그램과 싸워야 했고 결국 모든 것이 해결되었습니다.

또 다른 교훈. 이제부터 더 많은 백업을 수행하겠습니다. 백업을 위해 다른 디스크에 넣었습니다 /home. 목록을 rsync저장 /etc하고 정리하기 위해 직장에서는 다음과 같이 합니다.

etckeeper버전을   사용한 /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/md0PV와 파티션 테이블이 동시에 될 수는 없습니다. filePV가 인정됩니다. md0LVM 볼륨이 /dev/md0p1또는 와 동일하도록 분할된 것으로 보입니다 /dev/md0p2.

어쩌면 어떤 이유에서든 pvscan/ vgscan무시되었을 수도 있습니다 /dev/md0/ /dev/md0p1(그래서 LVM은 UUID를 찾을 수 없습니다). pvscan다음 명령을 실행하여 strace스캔된 블록 장치를 확인할 수 있습니다.

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

관련 정보