Главная » 2011 » Октябрь » 21 » Как сделать образ всего жесткого диска и потом смонтировать его разделы?
01:19
Как сделать образ всего жесткого диска и потом смонтировать его разделы?
Ситуация сложилась следующая. Ни один свежий Linux не хотел подключать мои старые диски Seagate SATA 80 гб, а у меня их целых два. И конечно на них много всего полезного. Диски прекрасно работали в Ubuntu 8.10, а в последующих дистрибутивах как обрубило. То ли драйвера для них убрали из ядра, то ли ещё что. Да и сами диски видимо от старости даже в биосе определялись через раз. Разделы на дисках в перемешку fat32 и ext3, так что через виндовс с них всего не вытянешь. Недавно вышла свеженькая убунта 11,10. Загрузился с live-cd, посмотрел, что творится в папке /dev. Устройства /dev/sdb и /dev/sdd есть, но разделов /dev/sdb1, /dev/sdd1 и т.п. нету, соответственно монтироваться обычным образом файловые системы с этих дисков не хотят. Поехали дальше. Запустил cat /dev/sdb, приглядываюсь, что там пролетает, точно мой жесткий диск. Делать нечего, приготовил по соседству 160 гб свободного места, решил попробовать сделать полные образы проблемных винтов:
Процесс длился часа четыре. Сообщений об ошибках не было, в результате появился файл размером 80гб, как бы всё по плану. Теперь проблема - как содержимое получившихся образов примонтировать? Просто брать и монтировать образ - ничего хорошего не получится, потому что в начале образа хранится информация о разбивке диска на файловые системы, а самих разделов в образе может быть несколько (мы ведь всё-всё-всё с диска выгребли). В монтировании помогут fdisk для просмотра информации о разделах в образе (нам нужно будет узнать смещение раздела, который мы хотим примонтировать, относительно начала файла) и losetup для создания loop-устройств, которые потом можно будет наконец примонтировать. Рецепт взят отсюда http://linsovet.com/mount-partition-in-hdd-image, здесь можно ознакомиться так же с комментариями и посмотреть на автоматизацию процесса, а я покажу, что у меня получилось в консоли:
Диск /dev/loop0: 80.0 Гб, 80026361856 байт 255 головок, 63 секторов/треков, 9729 цилиндров, всего 156301488 секторов Units = секторы of 1 * 512 = 512 bytes Размер сектора (логического/физического): 512 байт / 512 байт I/O size (minimum/optimal): 512 bytes / 512 bytes Идентификатор диска: 0x00011407
Устр-во Загр Начало Конец Блоки Id Система /dev/loop0p1 63 156296384 78148161 83 Linux root@intell-desktop:~# losetup -o32256 /dev/loop1 /dev/loop0 root@intell-desktop:~# cd /media/ root@intell-desktop:/media# mkdir sdd root@intell-desktop:/media# mount /dev/loop1 /media/sddmount: неизвестный тип файловой системы 'isw_raid_member' root@intell-desktop:/media# mount -t ext3 /dev/loop1 /media/sdd root@intell-desktop:/media#
Циферку поясню: "Первый раздел начинается с сектора 63, это значит что нужен сдвиг 63 * 512 = 32256". В общем в результатераздел из образа успешно смонтировался в папку /media/sdd. Хорошо, что всё хорошо закончилось, и вам удачи.
$mount -t vfat -o iocharset=utf8,codepage=1251,offset=34681651200 /dev/loop0 /mnt/mount67737600 Это пример для дисков fat32 после винды чтоб названия файлов на русском правильно отображались, недостающие параметры в скрипт выше вставить
for I in $OFFSETS do mkdir /mnt/mount${I} OFFSET=$(($I*512)) mount -t vfat -o loop,offset=${OFFSET} "$1" /mnt/mount${I} || mount -o loop,offset=${OFFSET} "$1" /mnt/mount${I} done этим смонтировалось всё, но проблема с русской кодировкой в именах файлов
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]