web-dev-qa-db-ja.com

VirtualBoxドライブイメージ(vdi)をマウントしますか?

コンテンツをNautilusなどで表示できるように、VirtualBoxドライブイメージ(.vdi)をマウントすることはできますか?

VirtualBox 2.xから3.1.6にアップグレードした後に起動しないWindows 2000 .vdi(「アクセスできない起動デバイス」)があります。 IDEドライブの詳細が変更されたため、内部ドライブイメージにアクセスし、新しい場所を指すようにWindows boot.iniを編集するだけです。

87
matt wilkie

標準イメージに変換してからマウントできます。

VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img

それから

mount -t ext3 -o loop,rw ./ubuntu.img /mnt

ファイルシステムのタイプ、この場合はext3を知る必要があります。マウントしたら、選択したエディターを使用して編集します。 /mntロケーション内のファイルを実行中のホストと混同しないでください。混同しないでください。

VDIファイルに関する詳細を確認するには、VBoxManage showhdinfo ubuntu.vdiを実行します。

ソース: [解決しよう] .vdiをアーカイブマネージャーで開きますか?-ubuntuforums.org

55
Vojtech Trefny

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
83
Maxime R.

vdfuse が探しているツールのように見えます。 Ubuntuリポジトリにあります。自分でコンパイルしたい場合(2010ソース) それも行う

しかし、私たちのほとんどにとって、それは簡単に要約されます:

Sudo apt-get install virtualbox-Fuse

現在、動的vdiもサポートしているようです。

.vdiファイルを/mnt dirにマウントするには、次のコマンドを使用します。

Sudo vdfuse -a -f /path-to-vdi-file /mnt

ディスク全体がパーティションPartition1Partition2命名形式でマウントされます。その後、これらのファイルをループマウントできます。例えば、

Sudo mount -o loop /mnt/Parition1 /mountpoint
35
stwissel

ディスクを別の仮想OSのセカンダリマスターとして設定し、この(仮想)OSを起動してマウントできます。

ステップ1:Virtual os(Ubuntu 16.04など)がVirtualボックスに既にインストールされていると仮定して、その仮想osの設定から新しいストレージを追加します。 enter image description here

ステップ2:アクセスするVdiファイルを参照して選択します。

ステップ3:仮想OSにログオンします。

ステップ4:仮想ディスクはおそらくOS内で利用可能です。そうでない場合は、手順5に従ってください

ステップ5:仮想OS内で、Gpartedを使用してディスクを確認します。また、ディスクが仮想OSからアクセス可能なタイプであることを確認してください。そうでない場合は、ディスクを編集する必要がありますが、既存の内容は失われます。

14
josef

自分でテストしたことはありませんが、それらをマウントするためのヒューズモジュールがあります(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
7
João Pinto

あなたが要求したものではありませんが、それが単にvdiからファイルを取得するの問題であり、あなたが望む場合非常に迅速な解決策

  1. ホストでsshサーバーを実行します(apt-get install openssh-server && service ssh restart
  2. VirtualBoxを使用して、既存のvdiファイルから仮想マシンを構築し、その仮想マシンを起動します。 (VMを構築するとき、デフォルトのネットワークアダプター(NAT)を保持しました。)
  3. 仮想マシン内で、ホストにsftpします。 (sftp hostuser@hostip
  4. Sftpセッションでは、put必要な数のファイルをホストに送信します。
3
JellicleCat

上記の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
2
PHZ.fi-Pharazon