Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.
Модератор: Bizdelnick
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4
Сообщение
Doka » 15.01.2008 19:56
командой dd снят образ с HDD
в нем таблица разделов и сами разделы - 5 штук: FAT32 & NTFS
как теперь подмонтировать его, чтобы можно было потом монтировать партиции?
так не получается:
Код: Выделить всё
[root@centos ~]# mount -o loop /var/hdd/wd200.iso /hdd/x1
mount: you must specify the filesystem type
такое тоже не прокатило:
Код: Выделить всё
[root@centos ~]# mount -t autofs -o loop /var/hdd/wd200.iso /hdd/x1
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
[root@centos ~]# dmesg | tail
[drm] Setting GART location based on new memory map
[drm] writeback test succeeded in 1 usecs
loop: module loaded
hfs: unable to find HFS+ superblock
autofs: called with bogus options
Never stop thinking..................................................................
oberlicht
Сообщения: 381
Статус: Апатичный новичок
ОС: Slackware, Gentoo
Сообщение
oberlicht » 15.01.2008 20:09
А это вовсе и не исо никакое
losetup ?
Slackware 11 - 2.6.18 @ Athlon XP 1800+/512Mb
Slackware-12 - 2.6.21.5 @ Celeron D 2533/512Mb
Gentoo (amd64) - 2.6.22 @ Athlon X2 5600+/2048Mb
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4
Сообщение
Doka » 15.01.2008 22:51
а куда его монтировать-то?? что-то не получается:
Код: Выделить всё
[doka@centos ~]$ /sbin/losetup --help
/sbin/losetup: invalid option -- -
usage:
losetup loop_device # give info
losetup -d loop_device # delete
losetup -f # find unused
losetup -a # list all used
losetup -r # read-only loop
losetup [-e encryption] [-o offset] [-r] {-f|loop_device} file # setup
[doka@centos ~]$ /sbin/losetup /hdd/x1 /var/hdd/wd200.iso
/hdd/x1: Is a directory
где взять само loop-устройство, чтобы примонтировать к нему??
Never stop thinking..................................................................
oberlicht
Сообщения: 381
Статус: Апатичный новичок
ОС: Slackware, Gentoo
Сообщение
oberlicht » 15.01.2008 23:42
Doka писал(а): ↑ 15.01.2008 22:51
где взять само loop-устройство, чтобы примонтировать к нему??
У меня вот здесь:
Код: Выделить всё
~ $ ls /dev/loop*
/dev/loop0 /dev/loop2 /dev/loop4 /dev/loop6
/dev/loop1 /dev/loop3 /dev/loop5 /dev/loop7
/dev/loop:
0 1 2 3 4 5 6 7
Slackware 11 - 2.6.18 @ Athlon XP 1800+/512Mb
Slackware-12 - 2.6.21.5 @ Celeron D 2533/512Mb
Gentoo (amd64) - 2.6.22 @ Athlon X2 5600+/2048Mb
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4
Сообщение
Doka » 16.01.2008 11:48
что-то всё равно не догоняю!
когда есть HDD, то помимо самого устройства (/dev/sdd) появляются и сами партиции: (/dev/sdd1, /dev/sdd2, etc..)
но в случае использования losetup не появляется никаких дополнительных устройств/разделов
образ подмонтировал, но что делать дальше непонятно - как работать с партициями???
Код: Выделить всё
[root@centos ~]# /sbin/losetup /dev/loop0 /var/hdd/wd200.iso
[root@centos ~]# ls /dev/loop*
/dev/loop0 /dev/loop1 /dev/loop2 /dev/loop3 /dev/loop4 /dev/loop5 /dev/loop6 /dev/loop7
[root@centos ~]# ls /dev/loop0/
ls: cannot access /dev/loop0/: Not a directory
Never stop thinking..................................................................
Minton
Сообщения: 1588
Статус: openSUSE Localization Team
ОС: openSUSE Tumbleweed x86-64
Сообщение
Minton » 16.01.2008 16:02
эммм... Примонтировать?
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4
Сообщение
Doka » 16.01.2008 17:18
Minton писал(а): ↑ 16.01.2008 16:02
эммм... Примонтировать?
остроумно. ничего не скажешь...
а по существу есть что сказать?
Never stop thinking..................................................................
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Сообщение
sash-kan » 16.01.2008 18:05
Doka писал(а): ↑ 16.01.2008 17:18
а по существу есть что сказать?
примонтировать.
нужный раздел.
не забыв про указание offset.
как его рассчитать —
http://www.google.com/linux?q=losetup+calculate+offset
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Сообщение
Portnov » 16.01.2008 20:35
Проще всё.
Код: Выделить всё
[portnov]$ sudo fdisk -lu qemu.images/HDD
...
Device Boot Start End Blocks Id System
qemu.images/HDD1 * 63 3887729 1943833+ 83 Linux
qemu.images/HDD2 3887730 4192964 152617+ 5 Extended
qemu.images/HDD5 3887793 4192964 152586 82 Linux swap / Solaris
[portnov]$ sudo mount -o loop,offset=$((63*512)) qemu.images/HDD /mnt/loop
Цифру типа 63 берем из колонки Start для нужного раздела. 512 - это размер блока.
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4
Сообщение
Doka » 17.01.2008 11:40
Код: Выделить всё
[root@centos ~]# /sbin/fdisk -lu /var/hdd/wd200.iso
You can do this from the extra functions menu.
omitting empty partition (6)
You must set cylinders.
You can do this from the extra functions menu.
omitting empty partition (6)
You must set cylinders.
You can do this from the extra functions menu.
omitting empty partition (6)
You must set cylinders.
You can do this from the extra functions menu.
...
...
...
выводит такое минут пятнадцать... дальше ждать не выдержал..
Never stop thinking..................................................................
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4
Сообщение
Doka » 17.01.2008 14:57
2. If you want access to a hard disk image, you have to calculate the size of
the first cylinder. This value is the offset argument for losetup.
offset = bytes per sector * sectors per cylinder
The command for dlxlinux image looks like this:
losetup /dev/loop0 /usr/local/bochs/dlxlinux/hd10meg.img -o 8704
For images created by bximage you must use the value 32256.
3. The hard disk image access doesn't work if the image contains more than one partition .
Never stop thinking..................................................................
(asper
Бывший модератор
Сообщения: 1661
Статус: nano vi sed awk !
ОС: Работает как часы !
Сообщение
(asper » 17.01.2008 21:16
Остаётся залить этот образ на какой-нибудь рабочий харддиск и потом играться дальше.
Сомнительно доброе привидение
devilr
Сообщения: 3700
ОС: Mandriva => Gentoo (~amd64)
Сообщение
devilr » 17.01.2008 21:35
Doka , вы насколько знакомы с программированием? В принципе, можно было бы сначала определить размеры разделов, потом для каждого из них сделать свою собственную 0-дорожку с MBR, а уж потом (так как остается как раз 1 раздел) подмонтировать, как вам и советуют. Программку писать лениво, но действия по созданию такой программы могу подсказать.
Или, действительно, найти похожий HDD и перекинуть тем же dd данные на него.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Сообщение
sash-kan » 18.01.2008 02:13
Doka писал(а): ↑ 17.01.2008 14:57
3. The hard disk image access doesn't work if the image contains more than one partition.
да work-ает он, work-ает.
рассчитать только offset правильно. и не потребуется искать отдельный диск.
http://www.osdev.org/osfaq2/index.php/Disk...20Under%20Linux — в помощь.
иллюстрация(образа диска у меня нет, поэтому пришлось его сначала создать. процесс создания тоже прилагаю. опять-таки — для иллюстрации):
Shell
$ dd if=/dev/zero of=img count=64 bs=1M
64+0 записей считано
64+0 записей написано
скопировано 67108864 байта (67 MB), 6,00103 секунд, 11,2 MB/s
$ sudo losetup /dev/loop0 img
создание разделов пропускаю за полной элементарностью
и несущественностью
$ sudo fdisk -H16 -S63 -C130 -l /dev/loop0
Disk /dev/loop0: 67 MB, 67108864 bytes
16 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/loop0p1 1 1 472+ 83 Linux
/dev/loop0p2 2 130 65016 83 Linux
$ sudo losetup -d /dev/loop0
$ sudo losetup -o32256 /dev/loop0 img
$ sudo mke2fs -b1024 /dev/loop0 472 # форматирую первый раздел
$ sudo losetup -d /dev/loop0
$ sudo losetup -o64512 /dev/loop0 img
$ sudo mke2fs -b1024 /dev/loop0 65016 # форматирую второй раздел
$ sudo mount /dev/loop0 /mnt/
$ df | grep loop
/dev/loop0 62957 1279 58428 3% /mnt