web-dev-qa-db-ja.com

Linux上で動的に割り当てられたファイルベースのハードディスク

既存のファイルシステム(たとえば、ext4)で通常のファイルを作成し、それをブロックデバイス(losetup経由)にして、独自のext4ファイルシステムでフォーマットすることができます。

ただし、上記のハードディスクは固定サイズです。

質問:

  1. VirtualBoxを使用すると、固定サイズまたは動的サイズのいずれかであるVDI、VMDK、およびVHDタイプのハードディスクを作成できます。 方法はありますか LinuxホストOSで使用するためにファイルベースの動的サイズのハードディスクを作成しますか?

  2. 可能ですか LinuxホストOSで、VirtualBoxの外部にあるこれら3種類のファイルベースの動的サイズのハードディスクのいずれかを使用しますか?

私はUbuntu16.04を使用しています。

2
Harry
  1. はい、ファイルシステムがスパースファイルをサポートしている場合は可能です。 (ext4はスパースファイルをサポートします。)

    最初はほとんどスペースをとらない64GiB生画像disk.imgを作成する方法は次のとおりです。

    truncate -s 64G disk.img
    
  2. これで、disk.imgをループバックブロックデバイスとして使用でき、書き込むと拡張されます。


ボーナス機能

ディスクイメージdisk.imgを、物理ディスク/dev/sdbなどの別の形式に変換する場合は、qemu-imgを使用します。

qemu-img convert -O raw disk.img /dev/sdb

これは、VDI、VMDK、VHD、またはその他のコンテナ形式をRAWに変換して、losetup/kpartxなどの組み込みツールを使用して出力イメージを操作できるようにする場合に役立ちます。

ソース画像の形式は関係ありません。 qemu-imgは、VDI、VMDK、VHD、およびRAW画像以外でも機能します。サポートされているイメージのリストを表示するには、次のコマンドを実行します。

    root@node51 [~]# qemu-img --help | grep 'Supported formats:'
    Supported formats: bochs vvfat rbd vpc parallels tftp ftp ftps raw https qcow http dmg qcow2 quorum null-aio cloop vdi null-co vhdx blkverify file vmdk Host_cdrom blkdebug Host_device sheepdog iscsi qed nbd
5
Deltik