Как восстановить зашифрованные данные на жестком диске с помощью System Rescue CD по локальной сети
528
jia103
Я хотел бы знать, как лучше всего приступить к клонированию моего жесткого диска до такой степени, что я смогу просто вставить клонированный диск в мой компьютер и без проблем загрузиться с него, как в настоящее время я делаю с существующим диском.
У меня есть жесткий диск, на котором запущен Debian, который, по данным SMART, выходит из строя. У меня есть резервные копии, и я могу переустановить ОС на новый диск; тем не менее, мое первое предпочтение на данный момент было бы клонировать диск, и в настоящее время у меня нет другого выбора, кроме как использовать System Rescue CD 5.0.3 с загрузочного компакт-диска.
На диске не так много места - вероятно, менее 10 ГБ используемого пространства с очень небольшим объемом данных, поэтому я не слишком обеспокоен временем, потому что не ожидаю, что это займет необычайно много времени.
Если я не забуду, я установил Debian при установке Debian, чтобы настроить его как зашифрованный диск, поэтому я считаю, что / dev / sda отображается как незашифрованный загрузочный раздел, а остальное зашифровано, а затем в этом «rest» я иметь небольшой корневой раздел размером 10 ГБ внутри зашифрованной области, а остальная часть в настоящее время не используется.
Я также имею дело со старыми дисками PATA - нет доступных дисков SATA - и у компьютера есть один разъем PATA на материнской плате, к которому подключен ленточный кабель PATA с приводом CD-ROM для загрузки и почти полный сбой жесткого диска. диск, поэтому нет места для подключения любого второго диска PATA для локальной передачи.
Чтобы обойти это, у меня есть второй компьютер с тем же единственным разъемом PATA на материнской плате, к которому я подключил другой привод CD-ROM для загрузки и целевой жесткий диск.
Я загрузил оба компьютера с помощью привода CD-ROM, чтобы запустить System Rescue CD 5.0.3, и я рассматриваю свои варианты, как сделать клонируемый диск как можно лучше.
Компьютеры доступны по локальной сети, и я подключаюсь к ним обоим удаленно через SSH через терминал без графического интерфейса.
Я не слишком уверен в размерах исходного диска и целевого диска. Вполне возможно, что исходный диск имеет большую емкость, чем целевой диск, поэтому в идеале я бы хотел перенести только использованное пространство, а не пробежаться по всему пустому диску.
Я подумывал об использовании ddrescue, как описано здесь ; однако он описывает только передачу данных локально.
ОБНОВЛЕНИЕ: я смотрю, как установщик Debian настроил исходный диск. Похоже, у меня есть три раздела, и только последний зашифрован:
src # fdisk -l /dev/sda Disk /dev/sda: 37.3 GiB, 40027029504 bytes, 78177792 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 Disklabel type: dos Disk identifier: 0x332e4146 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 247807 245760 120M 83 Linux /dev/sda2 247808 8060927 7813120 3.7G 82 Linux swap / Solaris /dev/sda3 8060928 78176255 70115328 33.4G 83 Linux src# cryptsetup --verbose isLuks /dev/sda1 Device /dev/sda1 is not a valid LUKS device. Command failed with code 22: Invalid argument src# cryptsetup --verbose isLuks /dev/sda2 Device /dev/sda2 is not a valid LUKS device. Command failed with code 22: Invalid argument src# cryptsetup --verbose isLuks /dev/sda3 Command successful.
Я полагаю, что я также пытаюсь перенести данные между дисков одинаковой емкости: диск PATA 40 ГБ на другой диск PATA 40 ГБ.
ОБНОВЛЕНИЕ: я рассматриваю использование NBD, чтобы выставить разделы исходного диска через локальную сеть, чтобы использовать ddrescue от места назначения.
Вот то, что я пытался до сих пор выставлять исходный диск ...
src# nbd-server -d 8000 /dev/sda
... и локально смонтировать на конечном компьютере:
dest# nbd-client src 8000 /mnt/nbd-sda
К сожалению, я получаю ошибку при попытке этого; Я не могу даже смонтировать удаленное устройство:
Warning: the oldstyle protocol is no longer supported. This method now uses the newstyle protocol with a default export Error: Cannot open NBD: No such file or directory Please ensure the 'nbd' module is loaded. Exiting.
ОБНОВЛЕНИЕ: Следующее, что я пытаюсь, это просто воссоздать разделы на целевом диске вручную.
Прежде чем продолжить, я подумал, что это поможет, по крайней мере, сделать раздел восстановления на этот раз.
dest# fdisk /dev/sda
Я удаляю последний раздел и оставляю себе около 15 ГБ места для последнего раздела.
Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x332e4146 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 247807 245760 120M 83 Linux /dev/sda2 247808 8060927 7813120 3.7G 82 Linux swap / Solaris /dev/sda3 8060928 45809663 37748736 18G 83 Linux /dev/sda4 45809664 78177791 32368128 15.4G 83 Linux
Мне нужно создать тот же зашифрованный раздел в месте назначения, что и / dev / sda3 в источнике; Я мог бы сделать то же самое для этого раздела восстановления:
Монтирование / dev / sda1 и запуск df показывают, что он использует только 33 МБ, а файл .fsa - только 24 МБ, поэтому, возможно, он сжат. Это лучше, чем оригинальные 120 МБ.
Теперь давайте попробуем с корневым разделом sda3 посмотреть, как это происходит:
Далее я восстанавливаю заархивированные файлы обратно в / dev / sda1 и / dev / sda3 места назначения, но сначала давайте посмотрим, что у нас есть на диске назначения, потому что я забыл, где я остановился, настраивая его.
Во-первых, есть ли какая-нибудь файловая система в / dev / sda1?
dest# mkdir /mnt/sda1 dest# mount /dev/sda1 /mnt/sda1 NTFS signature is missing. Failed to mount '/dev/sda1': Invalid argument The device '/dev/sda1' doesn't seem to have a valid NTFS. Maybe the wrong device is used? Or the whole disk instead of a partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
Хорошо. Я не ожидал файловой системы, но не ожидал сообщения NTFS. Так что там ничего нет.
dest# mount /dev/sda1 /mnt/sda1 dest# ls -l /mnt/sda1 ... dest$ df -h | grep sda1 ...
Пока все выглядит хорошо.
Давайте сделаем корневой раздел сейчас.
dest# cryptsetup open /dev/sda3 sda3-opened dest# mkdir /mnt/sda3-open dest# mount /dev/mapper/sda3-opened /mnt/sda3-open NTFS signature is missing. Failed to mount '/dev/mapper/sda3-opened': Invalid argument The device '/dev/mapper/sda3-opened' doesn't seem to have a valid NTFS. Maybe the wrong device is used? Or the whole disk instead of a partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
dest# mount /dev/mapper/sda3-opened /mnt/sda3-open dest# ls -l /mnt/sda3 ... dest$ df -h | grep sda3 ...
Пока все выглядит хорошо.
Я запустил следующее на обоих:
# fsarchiver probe simple
Вещи выглядят как ожидалось.
Я верю, что мне все еще не хватает того, что я думаю, что это испортит Grub. Кажется, я кое-что вспомнил о начальной загрузке Stage 1 из MBR, но затем он не смог найти Stage 2 в разделе / boot, когда я пытался сделать что-то подобное в прошлый раз.
Эта страница привела к этому, который описывает, как восстановить Grub:
dest# mount -o bind /proc /mnt/sda3-open/proc dest# mount -o bind /dev /mnt/sda3-open/dev dest# mount -o bind /sys /mnt/sda3-open/sys dest# chroot /mnt/sda3-open /bin/bash (dest) chroot# mount /dev/sda1 /boot/ (dest) chroot# grub-install /dev/sda Installing for i386-pc platform. Installation finished. No error reported. (dest) chroot# umount /boot (dest) chroot# exit dest# umount /mnt/sda3-open/
Когда я перезагружаюсь, это должно работать, и привод должен загружаться правильно; однако сейчас уже поздно, и я пока не хочу вдаваться в подробности.
Также я еще не уверен, что у этого будет счастливый конец. Приведенная выше команда grub-install указала, что она устанавливается для i386, но я считаю, что мне нужна 64-битная версия.
Возможно, мне придется повторить эту часть, перезагрузив System Rescue CD через rescue64. Я не уверен, что при загрузке по умолчанию запускается 32-разрядная версия.
Опять же, завтра я собираюсь разобраться с остальными.
ОБНОВЛЕНИЕ: Итак, хорошая новость заключается в том, что загрузка по умолчанию для System Rescue CD была rescue64, так что это не было бы проблемой.
Оказывается, я полностью забыл о LVM, и UUID диска, очевидно, не совпадают.
... cryptsetup: lvm is not available cryptsetup: lvm is not available cryptsetup: lvm is not available cryptsetup: lvm is not available ALERT! /dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx does not exist. Check cryptopts=source= bootarg: cat /proc/cmdline or missing modules, devices: cat /proc/modules; ls /dev -r Dropping to a shell. Will skip /dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxx xxxxxxxx if you can't fix. modprobe: module ehci-orion not found in modules.dep BusyBox vx.xx.x (Debian x:x.xx.x-x+xxxxxx) built-in shell (ash) Enter 'help for a list of built-in commands. /bin/sh: can't access tty: job control turned off (initramfs)
Я полагаю, я мог бы бороться с этим, но я не буду беспокоиться. Вместо этого я собираюсь попробовать то, что предложил dirkt, и клонировать полные / dev / sda - UUID и все такое - поскольку 40 ГБ - это всего четыре раза по 10 ГБ, которые я перенес прошлой ночью и не занял слишком много времени. LAN.
Я не мог сделать это прошлой ночью, потому что не мог заставить работать NBD, поэтому я прибег к сохранению в файлы изображений. Я не могу этого сделать, если я делаю полное клонирование диска, поэтому давайте посмотрим, работают ли каналы или именованные каналы лучше.
Итак, вернемся к началу: оба компьютера теперь загрузились с загрузочного компакт-диска System Rescue CD, оба доступны по сети через соответствующие IP-адреса, назначенные DHCP, и у обоих установлен корневой пароль с помощью passwdкоманды.
Перед тем, как сделать это с реальными драйверами, я хочу попрактиковаться с крошечным фальшивым, поэтому я собираюсь начать с его настройки.
Теперь у меня есть /root/tempsrc.dat, который содержит образ диска, такой как образ SD-карты, который я хочу перенести в удаленный пункт назначения. На первом разделе находится файл с именем note1.txt, а третий раздел зашифрован и имеет note3.txtразличное содержимое. Я хотел бы убедиться, что смогу добраться до всего этого после запуска fsarchiverи переноса.
Давайте подготовим что-нибудь в пункте назначения:
ОБНОВЛЕНИЕ: я заменил целевой 40 ГБ диск на временный третий диск и включил ПК назначения.
Давайте начнем с настройки этого нового диска:
dest# mkdir /mnt/sda-open dest# mount /dev/sda1 /mnt/sda-open
Попытка перенести снова, за исключением этого времени, работающего на всю / dev / sda сразу:
src# mkdir /mnt/dest-sda src# sshfs root@dest:/mnt/sda-open /mnt/dest-sda src# fsarchiver savefs /mnt/dest-sda/src-sda.fsarchiver.img.fsa /dev/sda filesys.c#317,generic_mount(): partition [/dev/sda] cannot be mounted on [/tmp/fsa/20180408-222928-xxxxxxxx-00] as [vfat] with options [] oper_save.c#1032,filesystem_mount_partition(): cannot mount partition [/dev/sda]: filesystem may not be supported by either fsarchiver or the kernel. removed /mnt/dest-sda/src-sda.fsarchiver.img.fsa
Ну, так много за эту идею. Я предполагаю, что они называют это "FS" архиватором по причине. Давайте попробуем пристрастие.
src# partimage --compress=1 save /dev/sda /mnt/dest-sda/src-sda.partimg.bz2
Это тоже не сработало; по-видимому, это касается файловых систем, а не дисков в целом.
Поскольку мы работаем с диском в целом, давайте посмотрим, сработает ли сейчас ddrescue.
src# ddrescue --no-scrape /dev/sda /mnt/dest-sda/src-sda.ddrescue.img /mnt/dest-sda/src-sda.ddrescue.img.log GNU ddrescue 1.21 Press Ctrl-C to interrupt ipos: 785580 kB, non-trimmed: 0 B, current rate: 12320 kB/s opos: 785580 kB, non-scraped: 0 B, average rate: 10615 kB/s non-tried: 39241 MB, errsize: 0 B, run time: 1m 14s rescued: 785580 kB, errors: 0, remaining time: 1h percent rescued: 1.96% time since last successful read: 0s Copying non-tried blocks... Pass 1 (forwards)
Я начал это в 5:41 вечера для 40 ГБ диска, я думаю, что 100 Мбит / с LAN. На данный момент выходной утверждает, что это будет сделано примерно через час.
По какой-то причине вы не могли просто клонировать весь диск вместо того, чтобы смотреть на MBR, разделы и т. Д.? Кстати, вы также можете ответить на свои вопросы и принять ответ.
dirkt 6 лет назад
0
Я еще не достиг удовлетворительного ответа; это всего лишь заметки о том, что я пробовал до сих пор, и ничего более. После сна я думаю сделать это сейчас - клонировать весь диск. Меня беспокоило время, необходимое для передачи неиспользуемых 40 ГБ по локальной сети, когда у меня используется менее 10 ГБ, которые необходимо передать; однако, поскольку перенос 10 ГБ занял совсем немного времени, думаю, я попробую восстановить полный диск.
jia103 6 лет назад
0
1 ответ на вопрос
0
jia103
Ну, похоже, я был на правильном пути с промежуточным приводом. Это не то, что я собирался сделать изначально, но это помогло мне преодолеть мою проблему.
Новый диск теперь является клоном оригинального диска и приятно гудит.
Чтобы клонировать мой оригинальный привод с представленными ограничениями - в частности, требуя перебрать локальную сеть с компакт-диском System Rescue без Clonezilla - я смог пройти через это следующим образом.
Во-первых, у меня был временный жесткий диск на 160 ГБ, подключенный к запасному ПК, как описано выше, и я загрузил оба компьютера с моего загрузочного компакт-диска System Rescue CD.
Со своего srcкомпьютера я установил жесткий диск объемом 160 ГБ на destПК, используя локальный компьютер, sshfsа затем запустил его, ddrescueкак описано выше, чтобы записать неисправный жесткий диск на жесткий диск объемом 160 ГБ в виде файла образа. Этот диск объемом 40 ГБ был преобразован в файл образа объемом 40 ГБ, и мне потребовалось около часа, чтобы завершить работу в моей сети со скоростью 100 Мбит / с.
Я собираюсь сохранить это изображение, чтобы мне не пришлось делать это снова; начиная с этого момента, инкрементных резервных копий данных должно быть достаточно для восстановления после того, как этот исходный образ был захвачен.
После того, как эта фаза была завершена, мне пришлось заменить неисправный диск на 40 ГБ на заменяющий диск, который, как оказалось, имеет такую же емкость 40 ГБ на srcхосте, не касаясь и даже не отключая питание dest.
Затем я srcснова включил питание с загрузочного компакт-диска System Rescue, снова подключил destкаталог sshfsи на этот раз восстановил его из образа: