コンテンツをNautilusなどで表示できるように、VirtualBoxドライブイメージ(.vdi)をマウントすることはできますか?
VirtualBox 2.xから3.1.6にアップグレードした後に起動しないWindows 2000 .vdi(「アクセスできない起動デバイス」)があります。IDEドライブの詳細が変更されたため、内部ドライブイメージにアクセスboot.ini
し、新しい場所を指すようにWindows を編集するだけでよいと思います。
コンテンツをNautilusなどで表示できるように、VirtualBoxドライブイメージ(.vdi)をマウントすることはできますか?
VirtualBox 2.xから3.1.6にアップグレードした後に起動しないWindows 2000 .vdi(「アクセスできない起動デバイス」)があります。IDEドライブの詳細が変更されたため、内部ドライブイメージにアクセスboot.ini
し、新しい場所を指すようにWindows を編集するだけでよいと思います。
回答:
標準イメージに変換してからマウントできます。
VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img
それから
mount -t ext3 -o loop,rw ./ubuntu.img /mnt
ext3
この場合、ファイルシステムのタイプを知る必要があります。マウントしたら、選択したエディターを使用して編集します。/mnt
ロケーション内のファイルを実行中のホストと混同しないでください。混同しないでください。
VDIファイルに関する詳細を確認するには、次を実行しますVBoxManage showhdinfo ubuntu.vdi
。
VBoxManage showhdinfo [your vdi file]
よくわからない場合の出力を見てください。
使用qemu-nbd
、プロセスはserverfaultとこのブログで説明されています。
基本的に、qemu
必要に応じてインストールする必要があります。
sudo apt-get install qemu
次に、ネットワークブロックデバイスモジュールをロードする必要があります。
sudo rmmod nbd
sudo modprobe nbd max_part=16
作成したnbdの1つに.vdiイメージを添付します。
sudo qemu-nbd -c /dev/nbd0 drive.vdi
これで、/ dev / nbd0ブロックデバイスと、いくつかの/ dev / nbd0p *パーティションデバイスノードが取得されます。
sudo mount /dev/nbd0p1 /mnt
完了したら、すべてをアンマウントしてデバイスを切断します。
sudo qemu-nbd -d /dev/nbd0
max_part=16
が重要な部分であると思われることに注意したいと思います。/dev/nbd0pX
メインデバイスが正常に動作するにもかかわらず、それなしではファイルは表示されません。Gentooフォーラムで次の議論をチェックして、この問題に遭遇した人々を確認してください。
qemu-kvm
代わりにインストールすることでqemu
も同様に機能することに注意してください。私のUbubtu 16.04でそれを行い、230MBの代わりに23MBと13個の依存関係のみをインストールし、完全なqemuインストールの多くの依存関係をインストールしました。
sudo partprobe
されるように、明らかに新しいカーネルで実行する必要があることを追加したいと思います。/dev/nbd0p*
vdfuseが探しているツールのようです。Ubuntuリポジトリにあります。自分でコンパイルしたい場合(2010年のソース)、それもできます。
しかし、私たちのほとんどにとって、それは簡単に要約されます:
sudo apt-get install virtualbox-fuse
現在、動的vdiもサポートしているようです。
また、.vdi
ファイルを/mnt
dir にマウントするには、次のコマンドを使用します。
sudo vdfuse -a -f /path-to-vdi-file /mnt
ディスク全体がパーティションPartition1
、Partition2
命名形式でマウントされます。その後、これらのファイルをループマウントできます。例えば、
sudo mount -o loop /mnt/Parition1 /mountpoint
ディスクを別の仮想OSのセカンダリマスターとして設定し、この(仮想)OSを起動してマウントできます。
ステップ1:仮想ボックス(たとえばUbuntu 16.04)が既に仮想ボックスにインストールされていると仮定して、その仮想OSの設定から新しいストレージを追加します。
手順2:アクセスするVdiファイルを参照して選択します。
ステップ3:仮想OSにログオンします。
ステップ4:仮想ディスクはおそらくOS内で使用可能になります。そうでない場合は、手順5に従ってください
ステップ5:仮想OS内で、Gpartedを使用してディスクを確認します。また、ディスクが仮想OSからアクセス可能なタイプであることを確認してください。そうでない場合は、ディスクを編集する必要がありますが、既存の内容は失われます。
自分でテストしたことはありませんが、それらをマウントするヒューズモジュールがあります(vdfuse
)。次のページを確認してください。
書き込みアクセスに使用するのは危険です。
使用法:
$ ./vdfuse-v<version> -h
USAGE: ./vdfuse [options] -f image-file mountpoint
-h help
-r readonly
-t specify type (VDI, VMDK, VHD, or raw; default: auto)
-f VDimage file
-a allow all users to read disk
-w allow all users to read and write to disk
-g run in foreground
-v verbose
-d debug
ファイル名を使用してイメージを直接マウントするには:
$ ./vdfuse-v<version> -f image.vdi /mnt/vdi
$ mount -o loop /mnt/vdi/Partition1 /mnt/WindowsXP
マシンディスク(スナップショットを含む)をマウントするには:
$ ./vdautomount-<version> -p /path/to/vdfuse WinXP /mnt/vdi
$ mount -o loop /mnt/vdi/Partition1 /mnt/WindowsXP
あなたが要求したものではありませんが、vdiからファイルを取得するだけの問題であり、非常に迅速な解決策が必要な場合:
apt-get install openssh-server && service ssh restart
)sftp hostuser@hostip
)put
必要な数のファイルをホストに送信します。上記のVojtech Trefnyが述べたように、
1)最初にVDIを変換する-> IMG
VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img
2)次に、IMGをマウントします
mount -t ext3 -o loop,rw ./ubuntu.img /mnt
3)ただし、このエラーメッセージが表示された場合:
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
とdmesgは言った:
[3105578.013671] EXT4-fs (loop0): VFS: Can't find ext3 filesystem
.imgのパーティション構造を確認する必要があります。
fdisk -l ubuntu.img
Disk ubuntu.img: 21.0 GB, 20971520000 bytes
255 heads, 63 sectors/track, 2549 cylinders, total 40960000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf45bc910
Device Boot Start End Blocks Id System
ubuntu.img1 * 2048 12582911 6290432 83 Linux
ubuntu.img2 12584958 16775167 2095105 5 Extended
ubuntu.img3 16775168 40959999 12092416 83 Linux
ubuntu.img5 12584960 16775167 2095104 82 Linux swap / Solaris
4)ご覧のとおり、メインパーティションはバイト16775168から始まっています。ただし、セクターサイズは512バイトであるため、結果を16775168 x 512 = 8588886016で乗算する必要があるため、マウントを次のようにオフセットする必要があります。
mount -t ext3 -o loop,rw,offset=8588886016 ./ubuntu.img /mnt
5)サイズ変更後にファイルシステムが汚れていた場合、実際にはこれは機能しませんでした。この場合、私はこれをさらに行いました:
dd if=ubuntu.img of=ubuntu.disk bs=512 skip=16775168 count=12092416
e2fsck ubuntu.disk
mount ubuntu.disk /mnt