ПредишенСледващото

Веднъж, късно през нощта, аз отчаяно се нуждае, за да се измъкне от спря Virtualbox виртуална машина намира на работа на компютъра ми, аз открих един. Дистанционно стартиране на виртуалната машина и по-свързана с него не работи, така че реших да се опитам да получите най-желаната част от VDI и да го монтирате. Ситуацията е малко по-сложно от това, че виртуалния твърд диск, въпреки че се съдържа само един корен дял, но се разраства динамично, което означава, че блоковете на файловата система са подредени в хронологичен ред, а не в този, който чака за водач на файловата система.

За щастие, можете лесно да конвертирате VDI от динамично да статичен формат с помощта на помощна програма VBoxManage многоцелеви, която е част от VirtualBox пакет:

Сега имаме temp.vdi файл, в който някъде има изображение на желания файловата система; за правилното му добив е необходимо да се изчисли изместване на изображението спрямо делото. На половината намерени при поискване «монтиране VDI Linux» статии се препоръчват за тази цел полезност vditool, предназначени всъщност да тестват функционалността на вътрешните виртуални дискове в VirtualBox. Преди двоичен vditool може да бъде изтеглен отделно от virtualbox.org сайт, но сега той е там по обясними причини не (всеки може да го компилирате сами: vditool.cpp)

Ние, както винаги, отидете на друг начин и да използват средствата на една ръка разстояние. Първите 512 байта на нашия VDI-файла - заглавната част, която може да бъде разрешен с помощта, например, че ръчно или директно описание VDI заглавна структура в източник VirtualBox. От тези източници, от това следва, че изображението е маркиран, както следва:
512 байта: Header
4 * N + X: карта мегабайта блокове тук N - брой на мегабайта в един виртуален твърд диск, и X - привеждане в резултат число до най-близкия връх 512-байт границата
512 + 4 * N + изравняване: компенсира данни

Познаването на точния размер на виртуалния диск, можете лесно да се изчисли отклонението ръчно:

(UUID желания диск може да се намери в vboxmanage списък hhds команден изход). Има приравнява на картата на блок 512 стойност е равна на размера на 16 384, както и данни за офсетов - 16896.
И това е възможно да се извади и смени директно от VDI хедър. Например, тук е началото на моя chetyrohgigovogo виртуален диск:

Смел, необходими offsetData четири байта в компенсирани 0 × 0158. Можете да ги търсите, визуално, съпричастни на байт малко къс поръчка (в този случай, на желаната стойност е 0 × 00004200) и да използвам прости команди:

Във всеки случай, за пореден път, проверете отново себе си никога не боли.

Да видим какво е това компенсира. Веднага можем да приемем, че е налице от началото на изображението на твърдия диск, от това следва, че първите 512 байта съдържат MBR. Проверка:

Твърд диск раздел 2 се състои от: основен размер мегабайт 3859 като се започне с 63-сектори (сектор 1 - 512 байта) и 235 мегабайта напреднали изведен в рамките на инсталатора на Дебиан суап (това е изненада за virtualke). За да изчистите съвестта ми покажат заглавието на първата част:

Това е! Ляв планината. Преди няколко години би трябвало допълнително 7903917 екстракт всички сектори в един файл и да го монтират, но сега можете просто да зададете отместването от началото на файла, като опция монтиране (останалата част от разширения дял и суап в него ще бъдат игнорирани):

Проблемът е решен, всички са свободни.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!