Я создал vmdk-файл, как описано в главе 9.Расширенные темы и добавил его в мой гость вм. После этого я мог смонтировать весь сырой диск в моей гостевой виртуальной машине Linux. Теперь я могу читать файловую систему ext4, но не могу писать в нее. Как получить доступ на запись без изменения файловой системы на NTFS? В Win7 я не могу установить разрешения для этого жесткого диска, потому что это сырой жесткий диск с неизвестной файловой системой.
Как получить доступ на запись в гостевой ОС (linux) для raw диска (ext4) с virtualbox на хосте Win7?
2 ответа
Хорошо, я нашел решение сам. Теперь я хочу дать вам подробные инструкции о шагах, которые я сделал, чтобы заставить его работать.
Моя настройка
VirtualBox 4.2.0 r80737
Хост: Windows 7 (64-разрядная версия)
Гость: Ubuntu 12.04 LTS (64-разрядная версия)
Конфигурация диска в Win7 (хост)
- Закройте все открытые программы или документы в любом разделе на диске для сквозного доступа.
- Запустите
DISKPART
(утилита командной строки) от имени администратора. - Введите
LIST DISK
чтобы получить список всех доступных дисков и связанных с ними идентификаторов. (LIST PARTITIONS
если вы хотите использовать только часть целого диска) - Тщательно выбирайте жесткий диск с помощью
SELECT DISK
. - Оффлайн диск с помощью
OFFLINE DISK
. Все тома диска исчезнут из проводника Windows. - Тип
ATTRIBUTES DISK CLEAR READONLY
(важно!) чтобы убедиться, что диск будет доступен для записи. - Проверьте с помощью
ATTRIBUTES DISK
.
Создание файла VMDK в Win7 (хост)
- Запустите
cmd
(утилита командной строки) от имени администратора. - Введите
cd "C:\Program Files\Oracle\VirtualBox"
(ваш путь может отличаться в зависимости от вашего местоположения VirtualBox). - Введите
VBoxManage internalcommands createrawvmdk -filename /path/RawDisk.vmdk -rawdisk \\.\PhysicalDrive1
(PhysicalDrive1 означает второй диск)
(Источник: руководство VirtualBox: расширенная конфигурация хранилища)
Добавьте файл VMDK в виртуальную машину Linux (гость)
- Откройте VirtualBox Manager
- Выберите Linux VM > Настройки > Хранилище > Контроллер IDE > Добавить вложение > Добавить жесткий диск > Выбрать существующий диск > Выбрать файл VMDK
- Запустите Linux VM
Установите разрешения и смонтируйте сырой диск
Если вы используете Ubuntu, то вы уже должны увидеть диск в навигационной панели проводника. Если вы щелкнете по нему сейчас, вы просто подключите диск только для чтения к /media/drivename
. Чтобы предотвратить это, откройте терминал и вставьте в него следующее:
cd /media
sudo mkdir DRIVENAME
sudo chown USERNAME DRIVENAME
sudo chgrp USERNAME DRIVENAME
(замените DRIVENAME и USERNAME правильными значениями)
Снова откройте проводник и установите диск, щелкнув его имя на панели навигации. Теперь вы сможете создавать файлы и папки на жестком диске.
Дальнейшая информация
Конечно, можно монтировать диск постоянно через /etc/fstab
, но тогда вам придется монтировать устройство sudo mount
, и графическое монтирование через панель навигации больше не будет работать.
После создания файла VMDK я заметил следующую строку:
ddb.adapterType="ide"
Эта опция установлена по умолчанию. Если вы все еще сталкиваетесь с проблемами и ваш сырой диск не IDE-диск, а SATA, просто измените эту строку на
ddb.adapterType="sata"
Конечно, тогда вы должны добавить файл VMDK в качестве контроллера SATA к вашей виртуальной машине вместо контроллера IDE.
Диск появится в вашем госте как /dev /sda1 (обратитесь к документации по виртуальной коробке). Вы должны смонтировать этот диск для чтения и записи. Самый простой способ настроить это навсегда - добавить строку в /etc /fstab, например так:
/dev/sda1 /mnt/raw/disk-file/ ext4 defaults 0 2
Если вы хотите перемонтировать диск для чтения-записи на лету, вы можете ввести команду:
mount -o remount,rw /dev/sda1
Опять же, это предполагает, что устройство для диска sda1. Если у вас ничего подобного нет, я бы посмотрел результаты сканирования dmesg на наличие строк с "ATA" или "SCSI", поскольку это приведет вас к узлу устройства накопителя. Обычно это действительно легко обнаружить в папке /dev /. Просто найдите hd [abcd ..] [1234] или sd [abcd ..] [1234 ...].