며칠 전 저는 느린 방식(gnome-disks 사용)으로 SSD(LUKS+Ext4)를 포맷하고 암호화했습니다. 디스크가 마운트되었고 일부 데이터를 다른 드라이브에서 비우고 암호화하려는 디스크로 옮겼습니다. 물론 이것은 실제로 최소한 3개(또는 1개)의 복사본이 없는 유일한 데이터입니다. 다음날 보니 파티션이 더 이상 마운트되지 않고 사라진 것 같았습니다.
fdisk -l /dev/sdb
Disk /dev/sdb:
...
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
파일 -s /dev/sdb
/dev/sdb: data
나는 드라이브에 데이터가 있는지 확인하기 위해 hexdump를 사용합니다(실수로 데이터를 0으로 설정한 것을 방지하기 위해).
dd if=/dev/sdb bs=512 count=2048 |hex dump -C 0으로 표시되지만 count=2049에 도달하면 일부 데이터가 표시되기 시작합니다.
dd if=/dev/sdb bs=512 count=2049 |16진수 덤프 -C
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00100000 4c 55 4b 53 ba be 00 01 61 65 73 00 00 00 00 00 |LUKS....aes.....|
00100010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00100020 00 00 00 00 00 00 00 00 78 74 73 2d 70 6c 61 69 |........xts-plai|
00100030 6e 36 34 00 00 00 00 00 00 00 00 00 00 00 00 00 |n64.............|
00100040 00 00 00 00 00 00 00 00 73 68 61 31 00 00 00 00 |........sha1....|
00100050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00100060 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 20 |............... |
00100070 54 de 2e 44 8a 4e f7 04 e2 c5 90 f3 0b 46 37 5c |T..D.N.......F7\|
00100080 69 56 f9 d0 3f f7 e8 b8 cf fa c6 18 0d c1 5e 8c |iV..?.........^.|
00100090 4e 11 73 1c 2b c0 1d 71 7d bb 61 61 10 5d ea 8c |N.s.+..q}.aa.]..|
001000a0 0a 10 96 bc 00 00 c5 44 34 35 38 65 33 34 30 34 |.......D458e3404|
001000b0 2d 64 62 35 38 2d 34 62 38 30 2d 39 32 64 64 2d |-db58-4b80-92dd-|
001000c0 30 38 37 63 30 33 61 36 39 38 38 64 00 00 00 00 |087c03a6988d....|
001000d0 00 ac 71 f3 00 03 0a cf a3 c8 f9 1e 42 bb 99 b0 |..q.........B...|
001000e0 9c 91 4c 66 fb 01 60 47 98 bc d0 b8 e3 3c 6f 64 |..Lf..`G.....<od|
001000f0 9a cf 06 85 ef 1d 42 0c 00 00 00 08 00 00 0f a0 |......B.........|
00100100 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00100110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00100120 00 00 00 00 00 00 00 00 00 00 01 08 00 00 0f a0 |................|
00100130 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00100140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00100150 00 00 00 00 00 00 00 00 00 00 02 08 00 00 0f a0 |................|
00100160 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00100170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00100180 00 00 00 00 00 00 00 00 00 00 03 08 00 00 0f a0 |................|
00100190 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |................|
001001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
001001b0 00 00 00 00 00 00 00 00 00 00 04 08 00 00 0f a0 |................|
001001c0 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |................|
001001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
001001e0 00 00 00 00 00 00 00 00 00 00 05 08 00 00 0f a0 |................|
001001f0 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00100200
내가 생각할 수 있는 유일한 다른 점은 나중에 실수로 다른 파티션에 같은 이름을 부여했을 수도 있다는 것입니다(이로 인해 마운트 해제가 발생했을 수도 있습니다).
어떤 조언이라도 대단히 감사하겠습니다.
고쳐 쓰다:
lsmod | grep dm_crypt
dm_crypt 23216 2
이름 없음 -r
3.16.0-38-generic
업데이트 2:
이것이 도움이 될지는 확실하지 않지만 헤더의 첫 번째 부분을 다른 암호화된 파티션의 헤더와 비교한 결과는 다음과 같습니다.
diff -y <(dd if=/dev/sdb bs=512skip=2048 개수=1 | hexdump -C) <(dd if=/dev/sdc1 bs=512skip=0 개수=1 | hexdump -C)
00000000 4c 55 4b 53 ba be 00 01 61 65 73 00 00 00 00 00 | 00000000 4c 55 4b 53 ba be 00 01 61 65 73 00 00 00 00 00 |
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
00000020 00 00 00 00 00 00 00 00 78 74 73 2d 70 6c 61 69 | 00000020 00 00 00 00 00 00 00 00 78 74 73 2d 70 6c 61 69 |
00000030 6e 36 34 00 00 00 00 00 00 00 00 00 00 00 00 00 | 00000030 6e 36 34 00 00 00 00 00 00 00 00 00 00 00 00 00 |
00000040 00 00 00 00 00 00 00 00 73 68 61 31 00 00 00 00 | 00000040 00 00 00 00 00 00 00 00 73 68 61 31 00 00 00 00 |
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
00000060 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 20 | | 00000060 00 00 00 00 00 00 00 00 00 00 10 01 00 00 00 20 |
00000070 54 de 2e 44 8a 4e f7 04 e2 c5 90 f3 0b 46 37 5c | | 00000070 24 1a 58 e8 ce 91 4b ef db 9d d0 27 9c 27 3c 02 |
00000080 69 56 f9 d0 3f f7 e8 b8 cf fa c6 18 0d c1 5e 8c | | 00000080 b7 27 35 b7 e5 ec 6d 6b 4f af 63 ab 06 03 4d da |
00000090 4e 11 73 1c 2b c0 1d 71 7d bb 61 61 10 5d ea 8c | | 00000090 eb 05 49 29 4b be 98 73 6c 4b 2e 49 b3 75 14 a0 |
000000a0 0a 10 96 bc 00 00 c5 44 34 35 38 65 33 34 30 34 | | 000000a0 69 ef 8a 53 00 00 c4 c7 64 63 64 35 66 65 32 35 |
000000b0 2d 64 62 35 38 2d 34 62 38 30 2d 39 32 64 64 2d | | 000000b0 2d 34 31 34 31 2d 34 35 34 31 2d 39 32 37 39 2d |
000000c0 30 38 37 63 30 33 61 36 39 38 38 64 00 00 00 00 | | 000000c0 37 35 31 38 34 66 64 61 37 39 63 31 00 00 00 00 |
000000d0 00 ac 71 f3 00 03 0a cf a3 c8 f9 1e 42 bb 99 b0 | | 000000d0 00 ac 71 f3 00 03 09 9a eb 00 61 89 23 34 ff b7 |
000000e0 9c 91 4c 66 fb 01 60 47 98 bc d0 b8 e3 3c 6f 64 | | 000000e0 cf 33 12 1e 5d a8 81 8c b6 3c e3 8b 18 b6 1f e5 |
000000f0 9a cf 06 85 ef 1d 42 0c 00 00 00 08 00 00 0f a0 | | 000000f0 24 4b 5a 07 ca b3 49 8c 00 00 00 08 00 00 0f a0 |
00000100 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 | 00000100 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |
00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
00000120 00 00 00 00 00 00 00 00 00 00 01 08 00 00 0f a0 | 00000120 00 00 00 00 00 00 00 00 00 00 01 08 00 00 0f a0 |
00000130 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 | 00000130 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |
00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
00000150 00 00 00 00 00 00 00 00 00 00 02 08 00 00 0f a0 | 00000150 00 00 00 00 00 00 00 00 00 00 02 08 00 00 0f a0 |
00000160 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 | 00000160 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |
00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
00000180 00 00 00 00 00 00 00 00 00 00 03 08 00 00 0f a0 | 00000180 00 00 00 00 00 00 00 00 00 00 03 08 00 00 0f a0 |
00000190 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 | 00000190 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |
000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
000001b0 00 00 00 00 00 00 00 00 00 00 04 08 00 00 0f a0 | 000001b0 00 00 00 00 00 00 00 00 00 00 04 08 00 00 0f a0 |
000001c0 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 | 000001c0 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
000001e0 00 00 00 00 00 00 00 00 00 00 05 08 00 00 0f a0 | 000001e0 00 00 00 00 00 00 00 00 00 00 05 08 00 00 0f a0 |
000001f0 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 | 000001f0 00 00 de ad 00 00 00 00 00 00 00 00 00 00 00 00 |
00000200 00000200
답변1
@grochmal 덕분에 다음을 수행하여 드라이브의 데이터에 액세스할 수 있었습니다.
- dd if=/dev/sdb of=sdb.img bs=512 건너뛰기=2048 변환=오류 없음, 동기화
- losstup /dev/loop0 sdb.img
- cryptsetup luks는 /dev/loop0 데이터를 엽니다.
나도 이제 할 수 있을 것 같아dd if=sdb.img of=/dev/sdb(물론 데이터를 백업한 후 :)).
참고: 비슷한 상황이 발생하는 경우 원본 게시물을 꼭 읽어보고 이 해결 방법이 적용되는 경우 올바른 오프셋 값(건너뛰기), 장치 이름 등으로 교체하세요.