URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 85820
[ Назад ]

Исходное сообщение
"Создание/перенос образа диска"

Отправлено eax0r , 02-Июл-09 07:35 
Есть SATA винт. Необходимо, ну можно сказать, экспертизу его провести. чтобы нечего случайно не повредить, решил перенести его образ на другой винт при помощи dd.
исследуемый винт называется sdb, имеет один на весь винт ntfs раздел sdb1 объемом 80ГБ.
dd if=/dev/sdb conv=sync,noerror bs=64K | gzip -c > /mnt/sda1/sdb.img.gz
Далее хочу запусть виртуальную машину и на ее виртуальный диск уже восстановить образ.
Но возникло несколько вопросов.
1. Можно ли не делать образ в файл, а сразу на другой винт (sdc тоже SATA) при условии, что его объем 230ГБ? т.е.
dd if=/dev/sdb of=/dev/sdc conv=sync,noerror bs=64K
2. Есть задача попытаться программно восстановить удаленные файлы. При таком переносе образа останется ли такая возможность?

Содержание

Сообщения в этом обсуждении
"Создание/перенос образа диска"
Отправлено ronin , 02-Июл-09 09:07 
>1. Можно ли не делать образ в файл, а сразу на другой
>винт (sdc тоже SATA) при условии, что его объем 230ГБ? т.е.

Да, можно, конечно. И работать должно без проблем. Но остальная часть диска (>80GB)
после этого останется недоступной. Если на исходном диске есть таблица разделов, то это в принципе единственный выход. А если там только файловая система и создана она непосредственно на диске, без создания разделов, то я бы Вам посоветовал сделать так:

fdisk -l /dev/sdb

из выхлопа считываете геометрию (с точностью до байта). После этого:

fdisk /dev/sdc Поэтому я бы Вам посоветовал сделать так:

fdisk -l /dev/sdb

и создаёте раздел точно такого же размера (copy-paste эти самые байты).

Здесь важен один момент - подобность геометрии обох дисков в плане количества секторов ы головок. Они должны быть одинаковыми, чтоб всё работало без проблем. Иначе получите ошибку "Partition does not end on cylinder boundary". Ещё одна оговорка: эта ошибка будет вываливаться только если захотите после рековери изменить таблицу разделов и, скажем, добавить ещё разделов на незанятой части диска. А для простого data recovery эта ошибка не будет критична в принципе.
Ещё один момент: если на диске действительно только одна файловая система на весь диск (нету разделов), то всю операцию восстановления можно проводить на образе диска, а не на его копии. Разницы почти никакой :-) Поэтому ведущие собаководы советуют: если файловая система на диске одна - партишены нафик не нужны. Именно ради вот таких data recovery.


>dd if=/dev/sdb of=/dev/sdc conv=sync,noerror bs=64K
>2. Есть задача попытаться программно восстановить удаленные файлы. При таком переносе образа
>останется ли такая возможность?

Эээ... удалённые? Тоесть нормальным способом удалённые? Думаю, на ext2 - можно. Но на ext[34], reiserfs, xfs, да в принципе любой журналируемой системе, это будет действительно проблематично.


respect,
ronin


"Создание/перенос образа диска"
Отправлено eax0r , 02-Июл-09 11:16 
Спасибо за ответ! К счастью Ваши но и если в моем случае отсутствуют =)
Единственное, может я что-то не доконца понимаю, но зачем производить какие-либо манипуляции с разделами? dd все равно же скопирует все бит в бит и сотрет всю информацию о логической структуре диска sdc.

"Создание/перенос образа диска"
Отправлено ДорогойДрук , 02-Июл-09 11:49 
А разве нельзя вместо
dd if=/dev/sdb of=/dev/sdc

писать что-то вроде
dd if=/dev/sdb1 of=/dev/sdc1

разницу чувствуете?


"Создание/перенос образа диска"
Отправлено eax0r , 02-Июл-09 12:26 
>А разве нельзя вместо
>dd if=/dev/sdb of=/dev/sdc
>
>писать что-то вроде
>dd if=/dev/sdb1 of=/dev/sdc1
>
>разницу чувствуете?

В этом случае на все 100 согласен.


"Создание/перенос образа диска"
Отправлено ronin , 02-Июл-09 17:09 
>Спасибо за ответ! К счастью Ваши но и если в моем случае
>отсутствуют =)
>Единственное, может я что-то не доконца понимаю, но зачем производить какие-либо манипуляции
>с разделами? dd все равно же скопирует все бит в бит
>и сотрет всю информацию о логической структуре диска sdc.

Про разделы я писал только для того, чтоб избежать наступания на некоторые грабли и упрощения всей процедуры.  Действительно, dd if=/dev/sdb of=/dev/sdc перезатрёт всю инфу о разделах на /dev/sdc соответствующей инфой с исходного диска. тоесть, получите клон исходного диска. Но при разнй геометрии дисков (а при исходном диске в 80ГБ и целевом в 320ГБ разница очень большая) проблемы с партишенами Вам гарантированны (из-за разного кол-ва секторов на трэк партишены будут занимать неполные трэки, и из-за этого и получите еррору "Partition does not end on cylinder boundary"). Но опять же, это не критично, если вы не собираетесь далее модифицировать таблицу партишенов, а просто восстанавливаете данные.

Поэтому действительно удобнее делать что-то типа dd if=/dev/sdb1 of=/dev/sdc1, или dd if=/dev/sdb of=partition1.img


respect,
ronin