LINUX.ORG.RU

Как примонтировать vdi?


0

1

Cабж.

Вот тут https://forums.virtualbox.org/viewtopic.php?t=4748 нашел http://www.mat.uniroma1.it/~caminati/mount_vdi.html - нифига не работает. +этому скрипту требуется фиксированный образ, что некомильфо.

Какие ещё есть вменяемые способы?(перегонять в img - невменяемый)

Желательно указывать, то, чем вы риально пользовались, а не нагугленные варианты.

★★

Чем же вам в img не вменяемый?

lmtea
()

>> Желательно указывать, то, чем вы риально пользовались, а не нагугленные варианты.

virtualbox-fuse

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

Чёто я не понял, а как им пользоваться?Т.е. примонтировать-то примонтировало. но вместо ожидаемой обычной структуры каталогов наблюдаю три каких-то непонятных файла

$ ls
EntireDisk  Partition1  Partition5
Что это?

По обьёму основное EntireDisk

file '/path/EntireDisk' 
/path/EntireDisk: x86 boot sector; partition 1: ID=0x83, active, starthead 32, startsector 2048, 10713088 sectors; partition 2: ID=0x5, starthead 29, startsector 10717182, 2015234 sectors, code offset 0x63
Что с ними теперь делать, а?

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

Да-да, уже разобрался. mount -o loop Partition1 надо

Спасибо, этот способ наиболее хороший.

А вот оно всегда в Partition1 или может отличаться?А то неудобно же, cкрипт хочу написать чтоб одним кликом монтировать.

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

Ну, там та же логика, что и с /dev/sda, sda1-4, 5 — расширенный раздел. Вроде не должно быть проблем с автоматизацией.

GotF ★★★★★
()

Второй вариант - использовать qemu-nbd из qemu-utils (см. How to mount a VirtualBox VDI image). Но предложенный выше вариант с virtualbox-fuse несомненно лучше и удобнее. nbd склонен падать при активном I/O с подмонтированными дисками, почему-то.

frozen_twilight ★★
()

Только что смонтировал свой диск от VirtualBox'a (3.2.10 если что) с вендой

mount -t ntfs-3g winxp.vdi /mnt/tmp2 -o loop,offset=65536,force

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

В этом образе с 0-го по 64-ый сектор служебная инфа, в 65-ом MBR, в 128-ом начало раздела. 128секторов*512байт=65536байт смещения.

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

Это видно отличается для разных ф.с./cтpуктур дисков.Ext4 попробовал(ntfs у меня нет) - не монтирует, «wrong fs type, bad option, bad superblock ...»

Скрипт из стартового поста, кстати, именно на вычислениях обламывался.

**********************************************************************************************

А вот с qemu тоже рабочий способ, в принципе даже более наглядный.

минус - делать modprobe да и учитывая

nbd склонен падать при активном I/O

Вцелом, думаю лучше использовать специально предназначенные для этой цели средства, т.е. fuse.

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

Это видно отличается для разных ф.с./cтpуктур дисков.

Ничего подобного. Оно зависит от того, как ты разметил виртуальный диск. У меня он размечен установщиком венды, потому сам ntfs-раздел начинается в 63-ем (при счёте с нуля) секторе виртуального диска, а поскольку собственно винт начинается с 64-ого сектора или как-то так (и это либо стандарт, либо в начале диска должно быть указано сколько секторов/байт занимает служебная область), то получается смещение первого раздела в 128 секторов по 512 байт

Если хочешь опробовать монтирование vdi на петле, посмотри в виртуалке разметку виртуального диска с точностью до секторов и выложи сюда, попробуем расчитать (+64), проверить.

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

И да, петлевая фс ИМХО получше всех этих наблыдокоженных fuse, особенно когда никаких модификаций над считываемыми данными не производится, посекторный образ же лежит, не то что там загзипованный или затаренный.

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

>> петлевая фс ИМХО получше всех этих наблыдокоженных fuse

Таки оно будет работать с динамически расширяемыми образами?

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

надо проверить, я никогда не пользовался динамически расширяемыми образами, ставлю статический размер всегда

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

Если хочешь опробовать монтирование vdi на петле, посмотри в виртуалке разметку виртуального диска с точностью до секторов и выложи сюда, попробуем расчитать (+64), проверить.

Ну, джастофан разве что, для практического использования нет смысла в изобретании велосипедов.

А чем смотреть разметку, fdisk пойдёт?

Диск /dev/sda: 8589 МБ, 8589934592 байт
255 heads, 63 sectors/track, 1044 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b14d1

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *           1         994     7977984   83  Linux
Раздел 1 не заканчивается на границе цилиндра.
/dev/sda2             994        1045      407553    5  Расширенный
/dev/sda5             994        1045      407552   82  Linux своп / Solaris

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

>ставлю статический размер всегда

Аааа, вот оно что. Наверное в этом проблема, у меня динамические.

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

А ну если джаст фор фан, погрепай из виртуалки

dd if=/dev/sda | hd -v | grep «55 aa |»

и из хостовой

dd if=virtual_machine.vdi | hd -v | grep «55 aa |»

и покажи сравним

adriano32 ★★★
()
12 апреля 2012 г.
Ответ на: комментарий от adriano32

Предварительно нужно сделать том статическим vboxmanage clonehd --variant static win.vdi temp.vdi #hd -n 1000000 win.vdi | grep «eb 52 90 4e 54 46 53» | cut -c 1-8 00027e00 Что выдаст это и есть смещение в образе. mount -t ntfs-3g temp.vdi /mnt -o loop,offset=0x27e00

ps Кому трудно запомнить «eb 52 90 4e 54 46 53» это сигнатура .R.NTFS :)

big-town
()
Ответ на: комментарий от big-town

big-town, по поводу «ps», прежде чем громко именовать то, по чему ты привык детектировать начало ntfs-раздела, сигнатурой, стоит изучить доподлинно известный формат NTFS бутсектора.

0xeb5290 — это JUMP 52h, NOP — переход к IPL (Initial Program Loader) в этом же бутсекторе по известному смещению 0x52. А действительно OEM-сигнатурой NTFS является совсем не «NTFS», а «NTFS<пробел><пробел><пробел><пробел>» или в hex'e 4e54465320202020.

//устраиватель цирка по кнопочкам

anonymous
()
Ответ на: комментарий от anonymous

anonymous - это ты вообще о чем? Всегда «любил» вот таких «правильных выскочек» которые умеют только критиковать. То что eb 52 -это во первых не jump, а jmp 52h я знаю и без тебя, это команды короткого перехода где знаковый бай указывает на смещение на которое нужно перепрыгнуть вперед или назад в зависимости от знака. Первые три байта это действительно команда перехода на загрузочный код, далее следует информация о диске. А смещение в команде монтирования нужно указывать именно где располагаются данные eb 52 90 4e 54 46 53 . Проверяем sudo hd -n 512 /dev/sda1 первые байты какие? Вот то то и оно.

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