이 문제를 해결하기 위해 약 10시간 이상 검색했지만 아직 해결책을 찾지 못하여 여기에 있습니다.
간단히 말해서, 이중 부팅 Windows 파티션을 위한 더 많은 공간을 만들기 위해 라이브 USB 부팅에서 크기를 줄여 기본 Linux 부팅 드라이브(luks 암호화 사용)를 손상시켰습니다.
컴퓨터를 부팅하고 정상적으로 드라이브를 해독하기 전까지는 모든 것이 괜찮았지만, 디스크를 해독한 후 로그가 없는 initramfs 콘솔(initramfs)을 발견했습니다.
여러 가지 접근 방식을 시도했지만 조사를 통해 추론할 수 있는 내용은 다음과 같습니다.
*내 드라이브에 유효한 luks 헤더가 있습니다(비밀번호를 알고 있습니다) *드라이브에 유효한 슈퍼 블록이 있습니다* initramfs에 종료를 입력하면 /dev/ 찾을 수 없음이라고만 표시됩니다(잠깐...). 프롬프트가 표시되지 않습니다.
이 문제를 해결하는 데 도움이 될 수 있는 몇 가지 결과를 명령에 적어 보겠습니다. 나는 몇 주 전에 Linux로 옮겼기 때문에 이것이 나에게 새로운 것입니다 :/
그런데, 라이브 실행 시 이 명령을 입력하고 있습니다. 내 주요 Linux 파티션은 sda3에 있습니다. 도움이 되었기를 바랍니다.
root@pop-os:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 2G 1 loop /rofs
sda 8:0 0 223.6G 0 disk
├─sda1 8:1 0 498M 0 part
├─sda2 8:2 0 4G 0 part
├─sda3 8:3 0 146.5G 0 part
│ └─luks-077248fb-b2bf-4ddb-9762-3c69af031c2c 253:0 0 146.5G 0 crypt
├─sda4 8:4 0 4G 0 part [SWAP]
└─sda5 8:5 0 67G 0 part /media/pop-os/c
sdb 8:16 0 1.8T 0 disk
├─sdb1 8:17 0 16M 0 part
└─sdb2 8:18 0 1.8T 0 part
sdc 8:32 1 14.5G 0 disk
├─sdc1 8:33 1 2.1G 0 part /cdrom
├─sdc2 8:34 1 4M 0 part
└─sdc3 8:35 1 12.3G 0 part /var/crash
root@pop-os:~# sudo blkid grep LUKS |
/dev/sda3: UUID="077248fb-b2bf-4ddb-9762-3c69af031c2c" TYPE="crypto_LUKS" PARTUUID="fa8127eb-222e-48ab-93ba-23fde42b29bf"
root@pop-os:~# sudo blkid |
/dev/mapper/luks-077248fb-b2bf-4ddb-9762-3c69af031c2c: UUID="FMjQHW-a72R-7Z4K-37pV-dioz-vvIb-QJsKhm" TYPE="LVM2_member"
root@pop-os:~# sudo fdisk -l /dev/sda3
Disk /dev/sda3: 146.5 GiB, 157286400000 bytes, 307200000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@pop-os:~# cryptsetup luksDump /dev/sda3
[luks header in full]
root@pop-os:~# sudo mke2fs -n /dev/mapper/luks-077248fb-b2bf-4ddb-9762-3c69af031c2c
mke2fs 1.45.5 (07-Jan-2020)
/dev/mapper/luks-077248fb-b2bf-4ddb-9762-3c69af031c2c contains a LVM2_member file system
Proceed anyway? (y,N) y
Creating filesystem with 38395904 4k blocks and 9601024 inodes
Filesystem UUID: 5eedce5b-bea9-405e-85ed-0316ea3ba13c
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
root@pop-os:~# file -s /dev/sda3
/dev/sda3: LUKS encrypted file, ver 2 [, , sha256] UUID: 077248fb-b2bf-4ddb-9762-3c69af031c2c
라이브 부팅 파일 관리자에서 파티션을 해독하고 열려고 하면 다음이 반환됩니다.
"/media/pop-os/<8num>-<4num>-<4num>-<4num>-<12num>에 /dev/dm-1을 설치하는 동안 오류가 발생했습니다. /dev/ Superblock 오류에서 잘못된 파일 시스템 유형, 잘못된 옵션이 발생했습니다. 매퍼/데이터루트에 코드 페이지나 도우미가 없거나 기타 오류가 발생했습니다."
아직 헤더가 있어서 복구가 가능해야 하는데, 전체 내용을 복구할 수 없다면 /home 디렉터리를 어떻게 구하는지 알고 싶습니다. 시간 내 주셔서 감사합니다.
답변1
실행 mke2fs -n
해 보면 암호화된 볼륨에 /dev/mapper/luks-077248fb-b2bf-4ddb-9762-3c69af031c2c
파일 시스템뿐만 아니라 LVM 물리 볼륨도 포함되어 있는 것으로 나타났습니다. 따라서 볼륨 잠금을 해제한 후(필요한 경우 수동으로) 다음 단계는 cryptsetup luksOpen
LVM 구성 요소를 검색한 후 상태가 양호하면 활성화하는 것입니다.
볼륨을 축소하여 손상시켰다고 하므로 감지할 수는 있지만 자동으로 활성화되지 않을 수 있습니다. LVM 및 관련 udev
자동화는 일반적으로 오류 없이 VG를 자동으로 활성화하기 때문입니다. 따라서 실제 환경에서는 다음 명령이 필요합니다.
vgscan
vgchange -Pay --activationmode partial
이는 일부 부품이 누락된 것처럼 보이더라도 LVM 볼륨 그룹(방금 잠금 해제된 볼륨 포함)을 찾아 활성화하도록 시스템에 지시합니다. 이러한 명령에서 진단, 경고 및/또는 오류 메시지가 표시될 수 있습니다.
LVM 물리 볼륨이 포함된 LUKS 암호화 볼륨보다 크다고 주장하여 VG가 활성화를 거부하는 경우 먼저 LUKS 컨테이너를 축소 전 크기로 다시 확장해야 할 수 있습니다.
이러한 명령이 성공하면 시스템 구성 방식에 따라 탑재할 수 있는 LVM 논리 볼륨이 최소한 하나 이상 있어야 합니다. lvs
및/또는 명령을 사용하여 확인하십시오. LVM 논리 볼륨을 또는 lsblk
로 지정할 수 있습니다 ./dev/<VG name>/<LV name>
/dev/mapper/<VG name>-<LV name>
data
라이브 부팅 파일러의 오류 메시지에 따르면 LVM 볼륨 그룹의 이름 이 루트 파일 시스템 LV의 이름인 것으로 추측됩니다 root
.
이것이 사실이라면 다음 단계는 파일 시스템 유형을 확인하는 것입니다. 그렇지 않을 수도 있지만 ext4
Linux 배포판과 설치 시 선택한 사항에 따라 다를 xfs
수도 있습니다 . btrfs
그래서:
file -Ls /dev/mapper/data-root
파일 시스템 유형이 인 경우 ext4
응답은 다음과 유사해야 합니다.
/dev/mapper/data-root: Linux rev 1.0 ext4 filesystem data, UUID=12345678-abcd-1234-abcd-123456789abcd, volume name [...]
파일 시스템 유형이 인 경우 xfs
응답은 다음과 유사해야 합니다.
/dev/mapper/data-root: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
ext4
파일 시스템 유형이 또는 ext3
이 아닌 경우 ext2
// systemtype 제품군 과 관련된 e2fsck
다른 파일 시스템 도구ext2
ext3
ext4
적용되지 않습니다. 이를 사용하려고 하면 해로울 수 있습니다.
명령이 파일 시스템 유형을 인식하지 못하는 경우 file
파일 시스템이 손상되었기 때문일 수 있습니다. 또는 단순히 라이브 Linux 환경이 실제 설치보다 오래되었거나 더 제한적이며 특정 파일 시스템 유형을 완전히 지원하지 않기 때문일 수 있습니다. .
파일 시스템 유형을 성공적으로 식별할 수 있으면 다음 명령을 사용하여 파일 시스템 마운트를 시도할 수 있습니다.
mount -o ro /dev/mapper/data-root /mnt #or whatever you want to use as a mount point
LVM 논리 볼륨이 여러 개 있는 경우 이제 모두 동일한 방식으로 마운트되어야 합니다.