LINUX.ORG.RU

отрезать разделы от образа винчестера


0

0

есть полный образ винчестера в файле, есть его таблица разделов:

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1        1246    10008463+   c  W95 FAT32 (LBA)
/dev/hda2            1247        9729    68139697+   f  W95 Ext'd (LBA)
/dev/hda5   *        1247        2551    10482381   83  Linux
/dev/hda6            2552        2682     1052226   82  Linux swap
/dev/hda7            2683        9729    56604996    c  W95 FAT32 (LBA)

вопрос: как с помощью dd отрезать из него раздел Linux

я пробовал
dd if=80gbbak of=mylinux skip=1247 bs=8225280 count=1304
пробовал 
dd if=80gbbak of=mylinux skip=1246 bs=8225280 count=1304

count=1304 получается из (2551-1247)

один фиг - ничо не получается
mount -t ext3 -o ro,loop=/dev/loop0 mylinux linuxdir не работает.

при экспериментах с другими (ntfs) разделами по той же логике понял, что я что-то не понимаю в том, как правильно использовать цифры, которые выдает fdisk - делал полный образ ntfs партиции из hdb1 - монтировал - всё нормально, потом отдезал её же от hdb используя цифры, которые выдает fdisk - ничего не работает.
cat на образ hdb1 первой строчкой выдает 'NTFS', а на файл, отрезанный от hdb - что-то другое.

В общем, с ходу разобраться не удалось - подскажите, какие цифры я не учитываю, как правильно всё сделать. Спасибо


★★★★★

Сдаётся мне, что следует получить таблицу не в виде блоков, а в виде СЕКТОРОВ (fdisk -lu /dev/hda). Вы же получали начало раздела с точностью "плюс-минус трамвайная остановка".

Obidos ★★★★★
()

возможно ты забываеш учитывать нулевой цилиндр (он весь используеться под mbr). Тут тебе надо засесть с калькулятором ... и чтоб быстрее работа продвигалась было замени

dd if=80gbbak of=mylinux skip=1247 bs=8225280 count=1304 mount -t ext3 -o ro,loop=/dev/loop0 mylinux linuxdir

на losetup -o <смещение нужное кол-во байт> /dev/loop0 80gbbak mount -t ext3 -o ro,loop /dev/loop0 mylinux

x86 ★★
()
Ответ на: комментарий от Obidos

>Сдаётся мне, что следует получить таблицу не в виде блоков, а в виде >СЕКТОРОВ (fdisk -lu /dev/hda). Вы же получали начало раздела с >точностью "плюс-минус трамвайная остановка".

ок - понял..., а какой тогда указывать bs?

ну и так для общего развития - чем отличаются блоки от секторов, треков и циллиндров, и как они связаны

bender ★★★★★
() автор топика
Ответ на: комментарий от bender

>Сдаётся мне, что следует получить таблицу не в виде блоков, а в виде СЕКТОРОВ (fdisk -lu /dev/hda). Вы же получали начало раздела с точностью "плюс-минус трамвайная остановка".

хотя с другой стороны, если эти данные неточные, а плюс/минус, то как тогда по ним корректно восстанавливать например поврежденную таблицу разделов - она тоже запишется плюс/минус?

bender ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.