Доступ до віртуальних дисків з-поза віртуальної машини, Linux, Операційні системи, статті

Еріжоков А.А.

Іноді виникає потреба списати небудь з віртуального диска, створеного під VMWare, на диск реального комп’ютера. Це можна зробити, запустивши VMWare, завантажити встановлену під нею ОС і переписати це “щось” на реальний диск, підключений в VMWare як Raw Disk або через Samba і т.д.. А якщо твоя віртуальна машина створена без підтримки мережі? Або у тебе немає часу або бажання запускати Windows під VMWare і чекати його завантаження тільки для того, щоб переписати пару кілобайт?

Саме для таких цілей служить програма, що входить в поставку VMWare – vmware-loop. Ця програма призначена для зв’язування якогось
NBD (Network Block Device)
-Пристрої з файлом віртуального диска. Після цього NBD-Пристрій можна монтувати як звичайний диск або loopback-пристрій.

Для того, щоб все це працювало, твоє ядро ​​має підтримувати NBD/usr/src/linux/.config повинні бути рядок CONFIG_BLK_DEV_NBD = m або CONFIG_BLK_DEV_NBD = y). По-замовчуванню вона є. Якщо ні – доведеться перезібрати ядро, додавши підтримку NBD.:)

NBD-Пристрої мають імена /dev/nbX або /dev/ndX, Де X – номер пристрою. Для зв’язування NBD і віртуального диска треба виконати наступну команду:


vmware-loop имя_файла_виртуального_диска номер_партиции_виртуального_диска / dev / nbX

Тобто якщо файл віртуального диска – /home/vmware/win98/win98.dsk, Ти хочеш підключені перші партіцій на цьому диску до пристрою / dev/nb0, тоді треба виконати команду:



vmware-loop /home/vmware/win98/win98.dsk 1 /dev/nb0

Для того, щоб відкрити файл віртуального диска тільки для читання, треба запускати vmware-loop з ключем -r.


vmware-loop-r имя_файла_виртуального_диска номер_партиции_виртуального_диска / dev / nbX

Після запуску vmware-loop залишиться активною в поточному вікні терміналі, чекаючи натиснення Ctrl+C. Тепер в іншому вікні можна запустити mount:


mount-t файлова_система / dev / nbX точка_монтірованія

У моєму прикладі, можна використовувати таку команду:



mount -t vfat /dev/nb0 /mnt/vmware

Зверни увагу: каталог, до якого ти монтуєш пристрій, повинен існувати. Решта опцій команди mount ти можеш подивитися, набравши man mount.

Тепер перейди в каталог, який є точкою мотірованія, і можеш копіювати з диска і на диск що хочеш і чим хочеш … 🙂

Після цього потрібно отмонтировать віртуальний диск командою:


umount точка_монтірованія

У моєму прикладі:



umount /mnt/vmware

Тепер треба перейти в те вікно терміналу, в якому працює vmware-loop і натиснути Ctrl+C.

Програма vmware-loop дозволяє також переглянути інформацію про партиція віртуального диска.


vmware-loop-p имя_файла_виртуального_диска

У моєму прикладі:



vmware-loop -p /home/vmware/win98/win98.dsk

Для автоматизації всього цього процесу (зв’язування з NBD і монтування) служить скрипт
vmware-mount.pl
, Що також входить в поставку VMWare. Викликається він наступним чином:


vmware-mount.pl имя_файла_виртуального_диска номер_партіціі точка_монтірованія

Стосовно мій приклад:



vmware-mount.pl /home/vmware/win98/win98.dsk 1 /mnt/vmware

Скрипт намагається автоматично визначити файлову систему монтує партіціі. Якщо це не вдається, можна скористатися ключем -t:


vmware-mount.pl имя_файла_виртуального_диска номер_партіціі-t тіп_файловой_сістеми точка_монтірованія

Після виконання всіх необхідних операцій скрипт залишається активним у своєму вікні терміналу та повідомляє про тому, що для виходу з нього потрібно натиснути Ctrl+C. При натисканні Ctrl+C відбувається отмонтірованіе віртуального диска і розрив зв’язку з NDB-Пристроєм.

При запуску vmware-loop (Відповідно і vmware-mount.pl) Блокує файл віртуального диска, забороняючи запис і читання. Через це запуск віртуальної машини, що використовує цей диск неможливий. Також не можна пов’язати з NBD-Пристроєм файл віртуального диска, який зайнятий запущеної віртуальної машиною.

(c)Еріжоков А.А., 2000.
Використання даного документа дозволено тільки за згодою автора і з зазначенням першоджерела: DH’s Linux Site

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*