web-dev-qa-db-ja.com

Win7ホスト上のvirtualboxでrawディスク(ext4)のゲストOS(Linux)で書き込みアクセスを取得するにはどうすればよいですか?

第9章高度なトピック で説明されているようにvmdkファイルを作成し、ゲストvmに追加しました。その後、LinuxゲストVMにrawディスク全体をマウントできました。これで、ext4ファイルシステムを読み取ることはできますが、書き込むことはできません。ファイルシステムをNTFSに変更せずに書き込みアクセスを取得するにはどうすればよいですか? Win7では、ファイルシステムが不明なrawハードディスクであるため、そのハードディスクにアクセス許可を設定できません。

5
Marc

さて、私は自分で解決策を見つけました。それでは、それを機能させるために私が行った手順について詳しく説明したいと思います。

私のセットアップ

VirtualBox 4.2.0 r80737
ホスト:Windows 7(64ビット)
ゲスト:Ubuntu 12.04 LTS(64ビット)

Win7(ホスト)でのディスク構成

  1. パススルーするには、ディスク上の任意のパーティションで開いているすべてのプログラムまたはドキュメントを閉じます。
  2. 管理者としてDISKPART(コマンドラインユーティリティ)を実行します。
  3. LIST DISKと入力して、使用可能なすべてのディスクとそれに関連するIDのリストを取得します。 (ディスク全体の一部のみを使用する場合はLIST PARTITIONS
  4. SELECT DISKを使用してハードドライブを慎重に選択します。
  5. OFFLINE DISKを使用してディスクをオフラインにします。すべてのディスクボリュームがWindowsエクスプローラから消えます。
  6. ATTRIBUTES DISK CLEAR READONLYimportant!)と入力して、ディスクが書き込み可能であることを確認します。
  7. ATTRIBUTES DISKで確認します。

Win7(ホスト)でのVMDKファイルの作成

  1. 管理者としてcmd(コマンドラインユーティリティ)を実行します。
  2. タイプcd "C:\Program Files\Oracle\VirtualBox"
    (パスはVirtualBoxの場所によって異なる場合があります)。
  3. タイプVBoxManage internalcommands createrawvmdk -filename /path/RawDisk.vmdk -rawdisk \\.\PhysicalDrive1
    PhysicalDrive1は2番目のドライブを意味します)

(出典: VirtualBoxマニュアル:高度なストレージ構成

LinuxにVMDKファイルを追加するVM(ゲスト)

  1. VirtualBoxManagerを開く
  2. Linuxを選択VM>設定>ストレージ>IDEコントローラー>添付ファイルの追加>ハードディスクの追加>既存のディスクを選択>VMDKファイルを選択します
  3. LinuxVMを起動します

権限を設定し、rawディスクをマウントします

Ubuntuを使用している場合は、ファイルエクスプローラーのナビゲーションペインにドライブが表示されているはずです。今すぐクリックすると、ドライブを読み取り専用で/media/drivenameにマウントするだけです。これを防ぐには、ターミナルを開いて次のものを入れます。

cd /media
Sudo mkdir DRIVENAME
Sudo chown USERNAME DRIVENAME
Sudo chgrp USERNAME DRIVENAME

(DRIVENAMEとUSERNAMEを適切な値に置き換えます)

ファイルエクスプローラーを再度開き、ナビゲーションペインで名前をクリックしてドライブをマウントします。これで、rawハードディスクにファイルとフォルダを作成できるようになります。

さらに詳しい情報

もちろん、/etc/fstabを介してディスクを永続的にマウントすることは可能ですが、デバイスをSudo mountする必要があり、ナビゲーションペインを介したグラフィカルマウントは機能しなくなります。

VMDKファイルを作成した後、そこに次の行があることに気付きました。

ddb.adapterType="ide"

このオプションはデフォルトで設定されています。それでも問題が発生し、rawディスクがIDEディスクではなくSATAである場合は、次の行を変更してください。

ddb.adapterType="sata"

もちろん、VMDKファイルをSATAコントローラーとしてVMコントローラーの代わりにIDE)に追加する必要があります。

3
Marc

ディスクはゲストに/ 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 ...]を探してください。