Приветствую Вас Гость | RSS

Суббота, 04.05.2024, 11:14
Главная » 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 гб свободного места, решил попробовать сделать полные образы проблемных винтов:

$ sudo bash
# dd if=/dev/sdd of=/media/disk1/sdd.iso

Процесс длился часа четыре. Сообщений об ошибках не было, в результате появился файл размером 80гб, как бы всё по плану. Теперь проблема - как содержимое получившихся образов примонтировать? Просто брать и монтировать образ - ничего хорошего не получится, потому что в начале образа хранится информация о разбивке диска на файловые системы, а самих разделов в образе может быть несколько (мы ведь всё-всё-всё с диска выгребли). В монтировании помогут fdisk для просмотра информации о разделах в образе (нам нужно будет узнать смещение раздела, который мы хотим примонтировать, относительно начала файла) и losetup для создания loop-устройств, которые потом можно будет наконец примонтировать. Рецепт взят отсюда http://linsovet.com/mount-partition-in-hdd-image, здесь можно ознакомиться так же с комментариями и посмотреть на автоматизацию процесса, а я покажу, что у меня получилось в консоли:

root@intell-desktop:~# losetup /dev/loop0 /media/disk1/sdd.iso
root@intell-desktop:~# fdisk -lu /dev/loop0

Диск /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. Хорошо, что всё хорошо закончилось, и вам удачи.
Просмотров: 4475 | Добавил: intell | Рейтинг: 0.0/0
Всего комментариев: 3
3 intell  
0
Пример запуска скрипта выше

# losetup /dev/loop0 /media/Seagate/sdb.iso
# script.sh /dev/loop0


Если всё прошло удачно, разделы образа диска монтируются внутри папки /mnt

2 intell  
0
$mount -t vfat -o iocharset=utf8,codepage=1251,offset=34681651200 /dev/loop0 /mnt/mount67737600
Это пример для дисков fat32 после винды чтоб названия файлов на русском правильно отображались, недостающие параметры в скрипт выше вставить

1 intell  
0
#!/bin/bash

OFFSETS=`fdisk -l $1 2>/dev/null | grep "^$1" | grep -v Extended | awk '{if($2 == "*" ) print $3; else print $2}'`

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
этим смонтировалось всё, но проблема с русской кодировкой в именах файлов

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]