Добавление DVD-привода в безголовый VirtualBox на FreeBSD
547
Dan Barowy
У меня есть виртуальная машина Windows 10, работающая без звука в VirtualBox на FreeBSD 11.1. Работает без проблем. Я хотел бы разрешить виртуальной машине доступ к физическим CD / DVD, чтобы я мог вставлять реальные диски и открывать их в виртуальной машине.
$ VBoxManage startvm MyVM --type headless Waiting for VM "MyVM" to power on... VBoxManage: error: The VM session was aborted VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component SessionMachine, interface ISession
Я уверен, что /etc/devfs.confсодержит
perm cd* 0660 perm xpt0 0660 perm pass* 0660
а мой пользователь в группе операторов. Кроме того, журнал VirtualBox не содержит явных ошибок или предупреждений. ВМ просто прерывается без какой-либо полезной диагностической информации. Извлечение устройства CD восстанавливает работоспособность виртуальной машины.
Есть идеи?
Обновление: похоже, VBoxHeadlessотключается из-за ошибки сегментации. Причина до сих пор неясна для меня. От /var/log/messages:
May 5 12:05:31 the_computer kernel: vboxdrv: XXXXXXXXXXXXXXXX VMMR0.r0 May 5 12:05:31 the_computer kernel: vboxdrv: XXXXXXXXXXXXXXXX VBoxDDR0.r0 May 5 12:05:31 the_computer kernel: pid 61621 (VBoxHeadless), uid 1001: exited on signal 11
Обновление 2: Точка, в которой происходит VBoxHeadlessпрерывание, - это место, где виртуальная машина инициализирует устройства ATA. Без устройства CD я вижу в журнале следующее:
... 00:00:01.280311 VD#0: Cancelling all active requests 00:00:01.280468 PIIX3 ATA: LUN#0: no unit ...
но когда я добавляю его обратно, я получаю
... 00:00:00.273730 VD#0: Cancelling all active requests [end of file]
2 ответа на вопрос
2
harrymc
Я думаю, что ваша ошибка в том, что вы должны определить хранилище как, IDE Controllerа не SATA Controller.
Хорошее предложение, но, к сожалению, выдает ту же ошибку. Журнал теперь показывает две записи PIIX3 вместо одной (для LUN # 0 и LUN # 1).
Dan Barowy 6 лет назад
0
Это должно было сработать. Что-то не так с вашей виртуальной машиной. Я предлагаю скопировать его на компьютер с графическим интерфейсом и изучить определение. При необходимости восстановите его на основе жесткого диска.
harrymc 6 лет назад
0
Для работы функций DVD / CD VirtualBox ™ необходимо запустить HAL
Таким образом, вам нужно ...
включите его /etc/rc.confи запустите, если он еще не запущен
Это делается путем добавления hald_enable="YES"в ваш /etc/rc.confфайл и затем выполнения
# service hald start
Это в дополнение к требованию для пользователя необходимости доступа к /dev/xpt0, /dev/cdNи /dev/passN, которые в соответствии с той же самой секции справочника является «обычно достигается путем пользователь является членом operator», и исправление разрешения устройства «, добавив эти строки /etc/devfs.conf"
perm cd* 0660 perm xpt0 0660 perm pass* 0660
и (чтобы система использовала эти изменения) перезапуск devfsслужбы
# service devfs restart
Если после всего этого ваша виртуальная машина по-прежнему не запускается при подключении к приводу CD / DVD вашего хоста, рассмотрите возможность следования этому совету (взято с той же страницы, что и выше):
При необходимости сначала создайте пустое устройство IDE CD / DVD. Затем выберите Host Drive во всплывающем меню для выбора виртуального CD / DVD привода.
Если вы не можете использовать упомянутое «всплывающее меню», я думаю (из прочтения документации), что следующее должно быть эквивалентно командной строке:
Когда виртуальная машина выключена: подключите пустое виртуальное устройство IDE CD / DVD
Похоже, что в VirtualBox может быть ошибка, которая не позволяет работать в вашей системе. Я полагаю, что этот вопрос будет сообщен разработчикам VirtualBox на проект BugTracker .
Временное решение:
Пока эта проблема не устранена, я рекомендую обойти эту проблему, создав ISO-файл с вашего физического диска (дисков) для использования с VirtualBox. (Некоторые люди могут предпочесть это в любом случае.)
Прочитайте блок и размер тома диска, чтобы вы могли создать идеальный ISO (этот шаг не является действительно необходимым, но ISO, созданный без него, будет иметь другую контрольную сумму, чем исходный файл ISO, использованный для создания компакт-диска из-за " Пара нулевых блоков данных в конце », плюс размер тома может пригодиться позже) isoinfo -d -i /dev/cd0 | grep -i -E 'block size|volume size'
Вы получите вывод, похожий на этот:
Logical block size is: 2048 Volume size is: 327867
Используйте ddдля копирования содержимого диска
dd if=/dev/cd0 of=<cd name>.iso bs=<block size from step 1> count=<volume size from step 1> Например, я создам ISO с именем «MyVirtualCD.iso» из приведенного выше примера диска: dd if=/dev/cd0 of=MyVirtualCD.iso bs=2048 count=327867
Если вы пропустили шаг 1, просто прекратите работу bsи count, например, так: dd if=/dev/cd0 of=MyVirtualCD.iso ваш ISO все равно будет работать нормально, в конце у него просто будут ненужные «нулевые блоки данных».
Если вы используете новую версию, ddона может поддерживать отображение его статуса, добавив status=progressв приведенную выше командную строку
Если вы используете более старую версию ddили хотите более приятный на вид индикатор прогресса, вы можете установить его pvчерез «Коллекцию портов» или «FreshPorts» и направитьdd вывод, pvчтобы увидеть статистику, и, поскольку мы знаем размер тома с шага 1, точный индикатор выполнения: dd if=/dev/cd0 | pv -s <volume size from step 1> | dd of=<cd name>.iso
В нашем примере это будет выглядеть следующим образом: dd if=/dev/cd0 of=MyVirtualCD.iso | pv -s 327867 | dd of=MyVirtualCD.iso
Теперь вы можете подключить ISO к ВМ и загрузить его:
Кроме того, если вы загружаете свою emptydriveвиртуальную машину с установленным на нее носителем, упомянутым ранее, вам будет доступен пустой виртуальный дисковод для компакт-дисков, чтобы вы могли использовать ту же storageattachкоманду, когда виртуальная машина работает, чтобы в любой момент заменить один из ваших виртуальных компакт-дисков.
`hald` уже запущен на моей машине, с точно таким же` / etc / devfs`, который у вас есть. Хорошее мышление, хотя!
Dan Barowy 6 лет назад
0
К сожалению, этот ответ не помог (я подозреваю, что ошибка VBox), но он кажется достаточно полным, что, надеюсь, это поможет кому-то еще.
Dan Barowy 6 лет назад
0
Я отредактировал свой ответ, чтобы показать информацию о том, как сделать ISO-файлы с ваших компакт-дисков в качестве обходного пути для этой проблемы. Поскольку это кажется ошибкой в VirtualBox, я призываю вас сообщить об этом через их [Bugtracker] (https://www.virtualbox.org/wiki/Bugtracker). Если вы это сделаете, пожалуйста, опубликуйте ссылку на ошибку в комментарии здесь, и я отредактирую ее в своем ответе.
3D1T0R 6 лет назад
0
@DanBarowy: Вы отправили сообщение об ошибке?
3D1T0R 6 лет назад
0