Как получить доступ на запись в гостевой ОС (linux) для raw диска (ext4) с virtualbox на Win7 host?

5

Я создал vmdk-файл, как описано в Глава 9. Расширенные темы и добавил его в мой гость вм. После этого я мог смонтировать весь сырой диск в моей гостевой виртуальной машине Linux. Теперь я могу читать файловую систему ext4, но не могу писать в нее. Как получить доступ на запись без изменения файловой системы на NTFS? В Win7 я не могу установить разрешения для этого жесткого диска, потому что это сырой жесткий диск с неизвестной файловой системой.

Marc
источник
Я обнаружил, что мне нужно запустить VirtualBox с правами администратора, чтобы получить полный доступ к необработанным дискам в Win 7. Вы пробовали это?
StarNamer
Извините, тоже не работает.
Marc
Как вы устанавливаете диск? Можете ли вы написать в него как root от гостя Linux?
terdon
Сделал это, нажав на hdd в файловом браузере, чтобы смонтировать его. Я тоже пробовал sudo mount /dev/sdb1/ /media/Data и он был смонтирован тогда, но без разрешения на запись.
Marc
Если вы монтируете is, а затем запускаете команду mount, вы должны увидеть что-то вроде: / dev / sdb1 в / media / Тип данных ext4 (rw, errors = remount-ro). rw означает, что диск находится в режиме чтения-записи. Чтобы перемонтировать его в режиме rw, вы можете попробовать смонтировать -o remount, rw / dev / sdb1
kovica

Ответы:

3

Хорошо, я нашел решение сам. Теперь я хочу дать вам подробные инструкции о шагах, которые я сделал, чтобы заставить его работать.

Моя настройка

VirtualBox 4.2.0 r80737
Ведущий: Windows 7 (64-разрядная версия)
Гость: Ubuntu 12.04 LTS (64-разрядная версия)

Конфигурация диска в Win7 (хост)

  1. Закройте все открытые программы или документы в любом разделе на диске для сквозного доступа.
  2. Бежать DISKPART (утилита командной строки) от имени администратора.
  3. Тип LIST DISK чтобы получить список всех доступных дисков и связанных с ними идентификаторов. ( LIST PARTITIONS если вы хотите использовать только часть целого диска)
  4. Тщательно выбирайте жесткий диск, используя SELECT DISK,
  5. Оффлайн диск с помощью OFFLINE DISK, Все тома диска исчезнут из проводника Windows.
  6. Тип ATTRIBUTES DISK CLEAR READONLY ( важный! ) убедиться, что диск будет доступен для записи.
  7. Проверить с помощью ATTRIBUTES DISK,

Создание файла VMDK в Win7 (хост)

  1. Бежать cmd (утилита командной строки) от имени администратора.
  2. Тип cd "C:\Program Files\Oracle\VirtualBox"
    (ваш путь может отличаться в зависимости от вашего местоположения VirtualBox).
  3. Тип VBoxManage internalcommands createrawvmdk -filename /path/RawDisk.vmdk -rawdisk \\.\PhysicalDrive1
    ( PhysicalDrive1 значит второй диск)

(Источник: Руководство по VirtualBox: расширенная конфигурация хранилища )

Добавьте файл VMDK в виртуальную машину Linux (гость)

  1. Откройте VirtualBox Manager
  2. Выберите Linux VM & GT; настройки & GT; Место хранения & GT; Контроллер IDE & GT; Добавить приложение & GT; Добавить жесткий диск & GT; Выберите существующий диск & GT; Выберите файл VMDK
  3. Запустите 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.

Marc
источник
1

Диск появится в вашем госте как / 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 ...].

Ярослав Рахматуллин
источник
После добавления строки в / etc / fstab диск исчез из проводника, а команда mount просто выдает ошибку «плохая операция». Я удалил строку из / etc / fstab, и диск снова появился в проводнике, но когда я щелкнул по нему, чтобы смонтировать диск (только для чтения), виртуальная машина теперь вылетает с идентификатором ошибки BLKCACHE_IOERR.
Marc
Вам не нужно запускать mount, если он у вас есть / etc / fstab. В этом весь смысл. Второй аргумент, т. Е. `/ Mnt / raw / disk-file / ', - это произвольный путь, по которому вы хотите, чтобы диск« появлялся в проводнике ».
Ярослав Рахматуллин
Я знаю, но это не работает через / etc / fstab или через mount. Я все еще думаю, что здесь происходит не неправильное монтирование, а скорее нет совместимости для доступа к ext4 через хост Windows.
Marc
Windows пишет в «сырой файл» или раздел. Не нужно знать ext4. Гость знает, что это ext4, для windows ext4 «совместимость» не нужна. Смотри сюда: superuser.com/questions/407977/... Он исправил свою проблему, и проблема была не в типе файловой системы. Во всяком случае ... GL
Ярослав Рахматуллин