質問: freebsdのヘッドレスvirtualboxにdvdドライブを追加する windows 10 vm freebsd11.1のvirtualboxでヘッドレスで実行しています。問題なく実行されます。vmで物理cdにアクセスできるようにしたい/実際のディスクを挿入してvmで開くことができるようにdvd。私がする時vboxmanage storageattach myvm --storagectl "sata controller" --port 1 --device 0 --type dvddrive --medium host:/dev/cd0 vmは起動しなくなりました。$ 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ログには明らかなエラーや警告は含まれていません。 vmは、有用な診断情報なしで中止されます。cdデバイスを取り外すと、vmが機能するようになります。何か案は?更新:セグメンテーション違反のために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が異常終了するポイントは、vmが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]
回答: 試すべきこと: freebsdハンドブック§21.6.3によると:virtualboxTMホストdvd/cdアクセス ... virtualboxTMdvd/cd機能を機能させるには、halを実行する必要があります したがって、あなたは...する必要があります /etc/rc.confで有効にし、まだ実行されていない場合は開始します これは、hald_enable="yes"をyour/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ドライブに接続しているときに、vmがまだ起動しない場合は、このアドバイスに従うことを検討してください( 同じページから取得 上記のように): 必要に応じて、最初に空のide cd/dvdデバイスを作成します。次に、仮想cd/dvdドライブを選択するためのポップアップメニューからホストドライブを選択します。 上記の「ポップアップメニュー」を使用できない場合は、(ドキュメントを読んで)次のコマンドラインに相当するものが必要だと思います。 vm電源がオフの場合:空の仮想ide cd/dvdデバイスを接続します vboxmanage storageattach myvm --storagectl "sata controller" --port 1 --device 0 --type dvddrive --medium emptydrive vmを起動します。 vboxmanage startvm myvm vmがまだ実行されている間:ホストドライブの使用に切り替えます vboxmanage storageattach myvm --storagectl "sata controller" --port 1 --device 0 --type dvddrive --medium host:/dev/cd0 残念ながら、それでも機能しない可能性があります。virtualboxにバグがあり、システムでこれが機能しない可能性があるようです。この問題は、プロジェクトの bugtracker でvirtualbox開発者に報告することをお勧めします。回避策:この問題が修正されるまで、virtualboxで使用するために物理ディスクからisoファイルを作成して問題を回避することをお勧めします。 (とにかくこれを好む人もいます。) 完璧なisoを作成できるように、ディスクのブロックとボリュームサイズを読み取ります (この手順は実際には必要ではありませんが、それなしで作成されたisoは、cdの作成に使用された元の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> たとえば、上記のサンプルディスクから「myvirtualcd.iso」という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を使用している場合、または見栄えの良い進行状況インジケーターが必要な場合は、 "the ports collection" または "を介して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をvmにアタッチして、起動できます。 vboxmanage storageattach myvm --storagectl "sata controller" --port 1 --device 0 --type dvddrive --medium /path/to/myvirtualcd.iso vboxmanage startvm myvm また、前述のemptydriveメディアを使用するように設定してvmを起動すると、空の仮想cdドライブを使用して同じstorageattachコマンドを使用できます。vmは、いつでも仮想cdの1つをスワップインするために実行されています。 出典: freebsdハンドブック 、 vboxmanage docs 、 thomas-krenn wiki 、 「phoibos」でubuntuの回答を求める