コンテンツをNautilusなどで表示できるように、VirtualBoxドライブイメージ(.vdi)をマウントすることはできますか?
VirtualBox 2.xから3.1.6にアップグレードした後に起動しないWindows 2000 .vdi(「アクセスできない起動デバイス」)があります。 IDEドライブの詳細が変更されたため、内部ドライブイメージにアクセスし、新しい場所を指すようにWindows boot.ini
を編集するだけです。
標準イメージに変換してからマウントできます。
VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img
それから
mount -t ext3 -o loop,rw ./ubuntu.img /mnt
ファイルシステムのタイプ、この場合はext3
を知る必要があります。マウントしたら、選択したエディターを使用して編集します。 /mnt
ロケーション内のファイルを実行中のホストと混同しないでください。混同しないでください。
VDIファイルに関する詳細を確認するには、VBoxManage showhdinfo ubuntu.vdi
を実行します。
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
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:Virtual os(Ubuntu 16.04など)がVirtualボックスに既にインストールされていると仮定して、その仮想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