물리볼륨, 논리볼륨, 슈퍼블록이 사라진다.. 어떻게 시작할까?

물리볼륨, 논리볼륨, 슈퍼블록이 사라진다.. 어떻게 시작할까?

아주 비슷한 이야기이것어제 나에게 일어났습니다.

고쳐 쓰다: 내 유일한 하드 드라이브는 /dev/sda원래 다음과 같이 분할되었습니다.

Device     Boot   Start        End     Blocks  Id  System
/dev/sda1  *       2048    1026047     512000  83   Linux
/dev/sda2       1026048  976773119  487873536  83   Linux

/dev/sda1/boot암호화되지 않은 파티션 입니다 . 이 파티션은 원래 다음 논리 볼륨을 포함하는 /dev/sda2볼륨 그룹을 포함하는 LUKS 파티션이었습니다 .fedora_pedro

/dev/mapper/fedora_pedro-root
/dev/mapper/fedora_pedro-home
/dev/mapper/fedora_pedro-swap

라이브 디스크에 있고 다음 /dev/sda2파티션을 축소하려고 합니다.그 단계갑자기 컴퓨터를 멈추고 플러그를 뽑아야 했습니다. 방금 사용했어요

cryptsetup luksOpen /dev/sda2 fedora_pedro

exit그리고 (처음으로 LVM과 LUKS를 사용하면서) 둘러보면서 다양한 논리 볼륨(스왑, 루트, 홈)을 마운트하고 마운트 해제하는 과정에서 LUKS 파티션( ; ) 을 닫지 않고 서둘러 터미널을 닫아야 했습니다 exit. 별로 주의를 기울이지 않은 채 종료 프로세스가 끝나기 전에 Live CD를 꺼낸 다음 전원 버튼을 눌러 노트북을 종료했습니다.

몇 시간 후 컴퓨터를 부팅했을 때 "대상 기본 시스템에 도달했습니다"라는 메시지가 표시되면서 부팅이 중단되었습니다. 복구 모드에서 하드 드라이브로 부팅할 때 받은 유일한 메시지는 다음과 같습니다.

dracut-initqueue [...] unit file of systemd-cryptsetup@luksMYUUID changed on disk

복구 디스크를 사용하여 드라이브( )를 열고 다음을 사용하여 cryptsetup luksOpen /dev/sda2 fedora_pedro파티션 상태를 쿼리했습니다.e2fsck

fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/sda2

pvdisplay모든 PE가 사용 가능함(그래서 볼륨이 실제로 비어 있는 것으로 나타남)을 반환하고 vgscan이 보기를 공유했으며 내 볼륨 그룹에 논리 볼륨이 포함되어 있지 않다고 언급했습니다. lvdisplay아무것도 반환되지 않습니다.

아직 아무것도 크기를 조정하지 않았으므로 이 문제에 대해 매우 혼란스럽습니다.

testdisk /dev/mapper/fedora_pedro

올바른 볼륨(스왑, 루트 및 홈)이 표시되었고 시스템의 모든 데이터에 대한 액세스가 허용되었으므로 Write partition to the disk재부팅 후 볼 수 있기를 바라면서 해당 볼륨을 선택했습니다. 그런 일은 일어나지 않았지만 fdisk -l /dev/mapper/fedora_pedro지금은 다시 그런 일이 일어났습니다

Disk /dev/mapper/fedora_pedro: 465.3 GiB, 49958403712 bytes, 975742976 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 / 4096 bytes
Disklabel type: dos
Disk identifier: 0x0000000

Device                      Boot     Start        End     Blocks  Id  System
/dev/mapper/fedora_pedro1  *         2048    8161279    4079616  82  Linux swap / Solaris
/dev/mapper/fedora_pedro2         8161280  870885375  431362048  82  Linux
/dev/mapper/fedora_pedro3       870885376  975742975   52428800  82  Linux

모든 것이 제대로 작동하면 볼륨을 마운트 해제할 수 있기 때문에 여전히 볼륨을 개별적으로 마운트할 수 없습니다. 사실 에서 찾을 수 없습니다 /dev/mapper. 또한 테이블을 디스크에 복사했기 때문에 그룹과 논리 볼륨은 물론이고 물리 볼륨도 더 이상 볼 수 없습니다( pvscan, vgscan& lvscan명령은 아무것도 반환하지 않습니다). 그러나 나는 이 문제에 대한 해결책이 결코 불가능한 것은 아니라고 확신하고 확신합니다.

  • grub의 원래 볼륨 항목과 일치하도록 파티션 테이블의 볼륨 항목 이름을 바꿀 수도 있습니다. <-- 가능성 없음
  • vgcfgrestore어쩌면 백업을 찾고 동등한 도구를 사용하여 시스템을 복원할 수도 있습니다. <-- 아래에서 볼 수 있습니다
  • mke2fs -S처음에 언급한 이야기에서 제안한 것처럼 디스크의 슈퍼블록을 다시 작성하는 방법을 사용할 수도 있습니다 . testdisk블록 크기는 양수: 4096입니다. <-- 위험하다

그러나 이러한 모든 솔루션(및 귀하가 제안할 수 있는 다른 솔루션)은 읽은 내용을 통해 알 수 있듯이 논리 볼륨 시스템에 대한 나의 제한된 지식을 넘어서는 것입니다. 정상적으로 다시 시작하기에 적합한 프로그램이 무엇인지 알고 싶습니다.

최전선에서 전하는 소식

다시 이전 시스템에 대한 액세스를 사용하고 있습니다 testdisk. 언급한 대로 파티션은 괜찮았으며 특히 /etc복원할 귀중한 정보를 얻을 수 있는지 확인하기 위해 이전 파일 시스템을 살펴보았습니다 . 이 게임을 오래 플레이할수록 라벨링 문제라는 생각이 더 많이 듭니다. 라이브 문서 파일에 복사하여 /etc/lvm백업 파일로 사용하려고 했으나 vgcfgrestore결과가 좋지 않았습니다.

Couldn't find device with uuid cZ83jX-WXkk-tNG4-ulGT-sAqq-HlKq-Omtqc8.
PV unknown device missing from cache
Format-specific setup for unknown device failed
Restore failed.

실제로 blkid유사한 uuid는 반환되지 않습니다. 훨씬 더 흥미로운(그리고 아마도 내 자신의 행동일 수도 있음) blkid내 Ext4 파일 시스템에 대해 반환된 다음은 다음과 같습니다.

/dev/sda1: "9f2a5417-dce6-45c1-8d93-1ee753e5c75c" TYPE="ext4" PARTUUID="0006282d-01"
/dev/sda2: "a33beb04-1147-446e-8f3b-7ff9d6bc226b" TYPE="crypto_LUKS" PARTUUID="0006282d-02"
[...]
/dev/mapper/fedora_pedro: PTTYPE="dos"

Write partition to disktestdisk현재 uuid가 fedora_pedro원래 uuid와 전혀 일치하지 않는다는 점 에서 실수를 한 것 같습니다 . 실제로 fedora_pedrouuid는 없습니다. 이전 작업 단위의 모든 사양을 이 볼륨에 귀속시키는 것이 가능합니까? uuid, 논리 파티션... 그렇다면 어떻게?

가까워지고 있나요?

vgchange -ay fedora_pedro반품

Volume group "fedora_pedro" not found
Skipping volume group fedora_pedro

/etc/lvm/backup/또는 에서 언급한 원래 볼륨 그룹 이름과 동일한 볼륨 그룹 이름을 사용하더라도 마찬가지입니다 /etc/lvm/archive. vgdisplay똑같은 말을 했어요.

흥미로운 점은 출력입니다.lvmdiskscan

/dev/mapper/live-rw        [   4.00 GiB]
/dev/sda1                  [ 500.00 MiB]
/dev/mapper/live-base      [   4.00 GiB]
/dev/loop2                 [ 886.75 MiB]
/dev/sda2                  [ 465.27 GiB]
/dev/mapper/live-osimg-min [   4.00 GiB]
/dev/mapper/loop3          [   4.00 GiB]
/dev/mapper/fedora_pedro   [ 465.27 GiB] LVM physical volume
/dev/loop4                 [ 512.00 MiB]
3 disks
5 partitions
1 LVM physical volume whole disk
0 LVM physical volume

내가 올바르게 이해했다면 거기에 물리적 볼륨이 있다는 것을 아는 사람이 있습니까? 그러나 그것은 그것을 보여주고 싶지 않습니다.

$ pvdisplay fedora_pedro
Failed to read physical volume "fedora_pedro"

$ pvdisplay /dev/mapper/fedora_pedro
No physical volume found in lvmetad cache for /dev/mapper/fedora_pedro
Failed to read physical volume "/dev/mapper/fedora_pedro"

$ pvdisplay /home/liveuser/Documents/etc/lvm/archive/fedora_pedro_00000-1031984471.vg
Failed to read physical volume "/home/liveuser/Documents/etc/lvm/archive/fedora_pedro_00000-1031984471.vg"

더 나아가는 방법을 모르겠습니다. lvmdump -mdmsetup_ls_tree, dmsetup_table, dmsetup_status 및 dmsetup_info를 살펴보았습니다 . dmsetup_info는 fedora_pedro에 대해 다음 UUID를 반환합니다.

Name         Maj Min Stat Open Targ Event UUID
fedora_pedro 253   3 L--w    0    1     0 CRYPT-LUKS1-a33beb04-1147-446e-8f3b-7ff9d6bc226b-fedora_pedro

blkid이는 for 에서 반환한 것과 동일한 UUID입니다 /dev/sda2. 이것은 또한 26번째 줄에서 찾은 내용과 동일합니다./home/liveuser/Documents/etc/lvm/archive/fedora_pedro_00000-1031984471.vg

[...]
pv0 {
       id = "cZ83jX-WXkk-tNG4-ulGT-sAqq-HlKq-Omtqc8"
       device = "/dev/mapper/luks-a33beb04-1147-446e-8f3b-7ff9d6bc226b" # Hint only
[...]

그리고 grub.cfg파일 에 /dev/sda1.

위 목록에 쓴 것처럼 id와 UUID를 함께 일치시키려고 노력하겠지만 문제는 다른 곳에 있는 것 같습니다.

답변1

어떻게든 볼륨 그룹과 그 안에 있는 물리 볼륨을 지웠습니다. 그냥 질문이에요메타데이터를 사용하여 복원을 사용할 수 있습니다 testdisk. /etc/lvm원본 폴더를 실제 사용자의 데스크탑에 복사한 다음

$ pvcreate --uuid "cZ83jX-WXkk-tNG4-ulGT-sAqq-HlKq-Omtqc8" \
--restorefile /home/liveuser/Desktop/etc/lvm/archive/VG.vg /dev/sda2
  Physical volume "/dev/sda2" successfully created

$ vgcfgrestore VG
  Restored volume group VG

$ lvchange -ay /dev/VG/home /dev/VG/root /dev/VG/swap

$ lvs -a -o +devices

그 후, vgdisplay -v fedora_pedro원래 논리 및 물리 볼륨을 언급하는 일관된 출력이 반환되었으며 마운트하고 탐색할 수 있었습니다. 그러나 몇 분 후 불행하게도 이러한 변경 사항을 디스크에 쓰려고 Luks 컨테이너의 헤더를 지웠습니다. 그래서 모든 것이 헛된 일이었습니다 ...

관련 정보