Saya punya 3 disk:
- OS Utama (CentOS)
- HDD dienkripsi dengan LUKS untuk data (Perangkat Keras RAID10, LSI Logical Volume)
- Windows 10 (Baru-baru ini diinstal untuk pengujian)
Masalah saya adalah ketika saya menginstal Windows 10, disk LUKS saya rusak dengan membuat boot loader di atasnya ... Sekarang saya tidak dapat mendekripsi disk saya dan saya benar-benar membutuhkan data saya.
Bisakah saya mengembalikan proses dengan Gparted atau alat lain? Saya harap data saya tidak dihancurkan oleh boot loader itu ...
Saya benar-benar butuh bantuan, tolong!
EDIT 1 Menambahkan beberapa informasi
fdisk -l
Disk /dev/sda: 12000.0 GB, 11999999164416 bytes, 23437498368 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
Disk label type: dos
Disk identifier: 0x385dcf68
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 7 HPFS/NTFS/exFAT
Setelah jawaban Xen2050 di sini adalah hasil saya:
LANG=C grep -obUaP "\x4C\x55\x4B\x53\xBA\xBE" /dev/sda
164822601573:LUKS��
Lalu harapan dikembalikan!
Saya dd header saya dengan ukuran blok 1 byte dengan itu
dd if=/dev/sda of=luks_header bs=1 skip=164822601573 count=2097152
Sekarang saya memiliki tajuk luks saya, saya dapat mengonfirmasi mulai dengan LUKS dengan vi
LUKSº¾^@squashfs^@sqsh^@hsqs^@lvm2pv^@LVM2 001^@btrfs^@
Sekarang langkah selanjutnya adalah menulis ulang header luks saya ...
EDIT 2 Menambahkan pengembangan
Dari unix.stackexchange ini: https://unix.stackexchange.com/questions/177831/recovering-a-luks-partition
Saya menemukan awal jika header saya
hexdump -s 164822601573 -C /dev/sda | grep LUKS
2660314f65 4c 55 4b 53 ba be 00 73 71 75 61 73 68 66 73 00 |LUKS...squashfs.|
Siapkan perangkat loop
losetup -o 0x2660314f65 -r -f /dev/sda
losetup -a
cryptsetup luksOpen /dev/loop0 luksrecover
Tapi saya punya pesan kesalahan pesan ini:
Unsupported LUKS version 115.
Saya pikir header saya rusak ... Ini adalah permulaan dari saya:
|LUKS...squashfs.|
|sqsh.hsqs.lvm2pv|
|.LVM2 001.btrfs.|
|_BHRfS_M.f2fs.. |
|...<device.</dev|
|ice>.PRI.TIME.DE|
|VNO.%s-XXXXXX.w.|
| PRI="%d".>%s</d|
|evice>.. %s="%s"|
|.%s.old.1.42.9.2|
|8-Dec-2013......|
|................|
*
|...............d|
|.... n;.0.&.A.v.|
|QkkXa.M<q.P ...D|
|.........a...d..|
|...x............|
|.............T..|
|..........@.....|
|.i@<device DEVNO|
|="0x%04lx" TIME=|
|"%ld"...........|
Dan di sini adalah tajuk fungsional
|LUKS....aes.....|
|................|
|........xts-plai|
|n64.............|
|........sha1....|
|................|
|............... |
|2x.l...r0....8|.|
|...'..[!D..J..tp|
|....?J...~.x"s.=|
|.?.....]981be66e|
|-a0b0-4daa-8a2c-|
|5a6e5d8ed3ae....|
|..q....ZG..}#..,|
|...w..!|..3..>.?|
|.;.&...-........|
|................|
|................|
sumber
Jawaban:
Sungguh, cadangan header LUKS adalah yang Anda butuhkan. Tapi, mungkin itu sebenarnya tidak ditimpa dan hanya tabel partisi disk yang kacau dan Anda tidak dapat menemukan awal perangkat LUKS.
Header LUKS sebenarnya dimulai dengan karakter
LUKS
kemudian dua karakter non-ascii 0xba dan 0xbe, sehingga Anda dapat mencari seluruh disk Anda mencari string itu. Semua dalam hex, ituMiliki Pencarian Program
PhotoRec harus dapat menemukan header / file LUKS dan itu ada di sumber Debian & Ubuntu, dan tersedia untuk Windows juga, kirim untuk mencari seluruh drive Anda.
Atau coba TestDisk juga (dari penulis yang sama), ia dapat mencoba mencari partisi yang hilang & mungkin menemukan yang LUKS.
Cari "sendiri"
Atau, Anda dapat mencari seluruh jenis drive "diri Anda" byte-demi-byte, dengan hex editor favorit Anda (Bless is nice) atau dengan
grep
di linux (ditemukan dari Q lain ini ):Tanpa
LANG=C
pengaturan awal itu tidak berfungsi untuk saya, "bahasa" saya yang biasa tampaknya adalah UTF-8, dan opsi itu adalah bentuk pendek dari --hanya cocok dengan --by-offset - biner - teks --perl -regexp lihatman grep
atauinfo grep
)Seharusnya output byte di mana header LUKS dimulai, jika menemukan satu. Anda kemudian dapat menggunakan
dd
untuk menyalin wadah LUKS di tempat yang aman, atau menggunakan info itu untuk membuat partisi yang dimulai di tempat yang tepat, meskipun membuat salinan cadangan terlebih dahulu akan paling aman, Anda tidak ingin menimpa header secara tidak sengaja.Sebagai contoh:
Di sini, itu 5.242.880 byte ke dalam file (di linux semuanya file, seluruh hard drive juga, misalnya
/dev/sdb
).Sekarang saat yang tepat untuk membuat cadangan tajuk, panjangnya 1M atau 2M, jadi salin 2M berikutnya
dd
.dd
membutuhkan sedikit matematika untuk mengetahui ukuran blok yang baik (-bs), it tends to read extremely slow with a low block size, the default 512 bytes is probably too slow for more than a few megabytes on a hard drive, 1M (1048576 bytes,
dd` tahu M, G, K, dll) harus ok.Dalam contoh di atas, itu terjadi persis 5M dari awal (5242880/1048576 = 5) sehingga perintah ini akan menyalin dari 5M ke akhir file / perangkat, menulis ke file
outfile
(dalam direktori saat ini):Untuk cadangan header-saja, Anda dapat menggunakan
count=N
untuk berhenti menyalin setelah N blok, cari tahu berapa banyak blok yang Anda pilihbs=
dalam 2 megabyte, di atasnya hanya akan 2. Lihatdd
bantuan untuk informasi.sumber
cryptsetup
memiliki perintah perbaikan, dapat mencobanya pada salinan 10 atau 20MB dari "header" sebelumnya? Atau jawaban yang ditautkan di unix.stackexchange menunjukkan format tajuk dalam PDF, dapatkah mencoba mengekstraksi data jika ada yang tersisa? Cadangan header benar-benar diperlukan, sayangnya