Проблема с диском на 2 Тб возникла следующая-потерялась таблица разделов при установке MS Windows, причем не на вышеупомянутый диск. Так мне сообщил его владелец. Диск, подключенный в windows выглядит как не размеченный.
Личные фотографии, видео и вообще, файлы, созданные самостоятельно, пожалуй, самое ценное для обычного человека, ибо неповторимо.
Итак вот он диск, рабочий, но экспериментировать на живом теле без резервной копии-правило дурного тона. Ну так меня учили. И свой опыт был по молодости лет горький. Резервная копия - must have! :-) Но вот свободных дисков такого размера у меня не было. Было 2 диска по 1 ТБ и один на 500 Гб
Все SATA. Машина для тестов с linux тоже под рукой. Для создания одного большого тома из нескольких физических дисков была использована технология LVM. Замечу, что диски после подключения проявились в системе как sda, sdb и sde.
В существующей ubuntu потребовалось установить пакет lvm2
sudo apt-get install lvm2Диски были размечены при помощи fdisk, каждый с единственным разделом. В итоге появились устройства sda1,sdb1,sde1. Нужно ли это делать, стоит уточнить, но что было то было... Возможно было достаточно использовать диски не разбитые на разделы.
Далее диски были инициализированы для работы с LVM
sudo pvcreate /dev/sda1sudo pvcreate /dev/sdb1sudo pvcreate /dev/sde1в помощи для pvcreate указано что можно и одной строкой:
sudo pvcreeate /dev/sda1 /dev/sdb1 /dev/sde1Далее была создана группа из вышеописанных дисков
sudo vgcreate -s 128M vg1 /dev/sda1 /dev/sdb1 /dev/sde1
ключик -s означает размер "физического блока" в LVM (physical extent size) и по умолчанию равен 4 мб. Я решил, что ничего дурного не будет если блок будет несколько больше, поскольку размещаться в томе будет один единственный файл образа-резервной копии пациента.
Командой
sudo vgdisplay vg1убедился что группа создана успешно.
Теперь есть группа, нужно создать том. Сказано-сделано:
sudo lvcreate -n lv1 -L 2,2T vg1Теперь можем увидеть, что появилось устройство /dev/vg1/lv1
У нас теперь есть большой, непрерывный диск 2.2 терабайта размером.
Размечаем его:
sudo mkfs.ext4 /dev/vg1/lv1монтируем
sudo mkdir /media/big_vol sudo mount /dev/mapper/vg1-lv1 /media/big_volболее тщательный подход к выбору типа файловой системы, возможно, и сократил бы некоторое время на копирование образа, но для меня это было несущественным.
Далее было копирование.
sudo dd if=/dev/sdd of=/media/big_vol/lsdd.isoОставив копирование на ночь, поутру убедился, что копирование завершилось успешно. Образ на месте. Все так и должно было получиться, ведь предполагалось, что жесткий диск-пациет физически исправен.
Стоит отметить из личного опыта, что при неисправной поверхности жесткого диска подход следует менять. Однажды, я загубил свой диск, желая перенести информацию с него. В какой-то момент головки начали конвульсию, но тем не менее, хоть и со сбоями копирование продолжалось. Кончилось тем, что конвульсии прекратились, но и жизнь диска тоже. Он просто прекратил определяться системой. Сейчас бы я пошел другим путем, стал бы копировать с конца диска в начало, к сбойной области. Но вот глупая настойчивость иногда играет плохую шутку.
Итак, образ диска имеется. Свобода действий присутствует.
После поиска программ, которые могли бы помочь мне найти потерянный раздел выбор был сделан в пользу
gpart и
testdisk, хотя список был несколько большим, просто до использования остальных я не дошел.
А списочек следующий:
gdiskgpartedpartition managerdisktypetestdiskНекоторые из программ являются просто редакторами таблицы разделов, но поскольку я предполагал возможность редактирования таблицы вручную, то включил в список и их.
fdisk и
sfdisk я не упоминаю, ибо они имеются в системе как правило.
Я начал с утилиты gpart и после ее работы получил весьма странный результат в виде возможного раздела
fat небольшого размера. Попадение было в молоко, хотя работала программа так, словно перечитывала весь диск сектор за сектором. Короче говоря, весьма долго. Утром следующих за запуском суток, после получения неудачного результата я запустил testdisk и чудо случилось, после краткого анализа программа очень быстро показала нужное - таблицу ориентировчно похожую на нужную. От глубокого анализа я отказался и записывать найденную таблицу на диск не стал. Следует отметить, что testdisk и gpart могут работать как с физическим диском, так и с образом оного, но я анализ делал на физическом диске.
Итак, раздел найден, но надо быть бдительным, ошибки случаются и на ровном месте.
Я решил исправить таблицу разделов в образе и попытаться смонтировать раздел. После повторного запуска testdisk с файлом образа в качестве параметра, нахождения раздела и записи таблицы разделов стала проблема смонтировать этот раздел. Да, можно использовать losetup с указанием смещения, с которого начинается раздел, но мне показалось проще использовать программу
kpartx. Не путь джедая, согласен на все сто, но время поджимало и на курение мануалов его совсем не оставалось.
Так или иначе, использования loop устройства потребуется
losetup /dev/loop0 lsdd.isoкомандой
losetup -a
выясняем связь устройства loop0 с файлом lsdd.iso
но вот смонтировать нужно первый раздел и тут пригодится kpartx
sudo apt-get install kpartxsudo kpartx -a /dev/loop0и вот мы имеем устройство
/dev/maper/loop0p1 , которое можем аккуратно смонтировать
sudo mkdir /media/big_win_volsudo mount.ntfs /dev/mapper/loop0p1 /media/big_win_volИ вот мы видим свои данные. Проделываем манипуляции с поиском и записью таблицы раздела при помощи testdisk уже с реальным диском sdd.