文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== qemu-img による仮想ディスクの操作 ====== ===== 仮想ディスクの作成 ==== <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> qemu-img create <b class=HIK>-f</b> qcow2 filename.qcow2 256G </pre></html></WRAP> <WRAP color_result><code> Formatting 'filename.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=274877906944 lazy_refcounts=off refcount_bits=16 </code></WRAP> </WRAP> ===== 仮想ディスクの容量表示 ===== <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> qemu-img info filename.qcow2 </pre></html></WRAP> <WRAP color_result><code> image: filename.qcow2 file format: qcow2 virtual size: 256 GiB (274877906944 bytes) disk size: 196 KiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false </code></WRAP> </WRAP> ===== 仮想ディスクの拡張 ===== <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> qemu-img resize filename.qcow2 +256G </pre></html></WRAP> <WRAP color_result><code> Image resized. </code></WRAP> </WRAP> 仮想ディスクの容量確認 <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> qemu-img info filename.qcow2 </pre></html></WRAP> <WRAP color_result><code> image: filename.qcow2 file format: qcow2 virtual size: 512G (549755813888 bytes) disk size: 188G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false </code></WRAP> </WRAP> ===== 仮想ディスクイメージの圧縮 ===== 仮想ディスクイメージの圧縮 (Shrink) とは、仮想ディスクイメージ内の使われなくなった領域を開放し、イメージサイズをコンパクトにして物理ディスク領域も開放する。\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>#</b> <b class=HIY>ls</b> <b class=HIK>-al</b> </pre></html></WRAP> <WRAP color_result><code> 合計 30426336 -rw-------. 1 root root 274920112128 12月 2 16:18 Windows_10_Pro_x64.qcow2 </code></WRAP> <WRAP color_command><html><pre> <b class=GRN>#</b> <b class=HIY>qemu-img</b> info Windows_10_Pro_x64.qcow2 </pre></html></WRAP> <WRAP color_result><code> image: Windows_10_Pro_x64.qcow2 file format: qcow2 virtual size: 256 GiB (274877906944 bytes) disk size: 10.7 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: true refcount bits: 16 corrupt: false extended l2: false </code></WRAP> </WRAP> ==== スパースファイル (sparse file) ==== スパースファイル (英語: sparse file) とはファイルの一種で、部分的に空のファイルを実際のファイルシステム上で少ない消費容量で効率的に保存する仕組みである。実際にディスク上に空の領域を確保せずに、領域が空であることを示すメタデータを書きこむことで実現される。\\ [[wpjp>スパースファイル|スパースファイル - Wikipedia]]\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>#</b> <b class=HIY>pwd</b> </pre></html></WRAP> <WRAP color_result><code> /var/lib/libvirt/images </code></WRAP> <WRAP color_command><html><pre> <b class=GRN>#</b> <b class=HIY>ls</b> <b class=HIK>-l --block-size=g</b> </pre></html></WRAP> <WRAP color_result><code> 合計 13G -rw-------. 1 root root 257G 12月 2 16:18 Windows_10_Pro_x64.qcow2 -rw-------. 1 root root 257G 12月 2 16:18 fedora35_minimal.qcow2 -rw-r--r--. 1 root root 1G 12月 3 00:11 filename.qcow2 </code></WRAP> </WRAP> <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>#</b> <b class=HIY>df</b> <b class=HIK>-BG</b> </pre></html></WRAP> <WRAP color_result><code> ファイルシス 1G-ブロック 使用 使用可 使用% マウント位置 devtmpfs 8G 0G 8G 0% /dev tmpfs 8G 1G 8G 4% /dev/shm tmpfs 4G 1G 4G 1% /run /dev/sda3 476G 48G 428G 10% / /dev/sda3 476G 48G 428G 10% /home /dev/sda2 1G 1G 1G 28% /boot /dev/sda1 1G 1G 1G 3% /boot/efi tmpfs 8G 1G 8G 1% /tmp tmpfs 2G 1G 2G 1% /run/user/1000 </code></WRAP> </WRAP> <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>#</b> <b class=HIY>find</b> . <b class=HIK>-type</b> f <b class=HIK>-printf</b> "%S\t%p\n" | <b class=HIY>gawk</b> '$1 < 1.0 {print}' </pre></html></WRAP> <WRAP color_result><code> 0.0416002 ./Windows_10_Pro_x64.qcow2 0.00872493 ./fedora35_minimal.qcow2 </code></WRAP> <WRAP color_command><html><pre> <b class=GRN>#</b> <b class=HIY>qemu-img</b> info filename.qcow2 </pre></html></WRAP> <WRAP color_result><code> image: filename.qcow2 file format: qcow2 virtual size: 256 GiB (274877906944 bytes) disk size: 196 KiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false </code></WRAP> </WRAP> ==== 圧縮方法 ==== <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>#</b> <b class=HIY>qemu-img</b> convert -O qcow2 Windows_10_Pro_x64.qcow2 Windows_10_Pro_x64.qcow2_shrink <b class=GRN>#</b> <b class=HIY>ls</b> <b class=HIK>-al</b> </pre></html></WRAP> <WRAP color_result><code> 合計 30426336 -rw-------. 1 root root 274920112128 12月 2 16:18 Windows_10_Pro_x64.qcow2 -rw-r--r--. 1 root root 11280121856 12月 3 12:59 Windows_10_Pro_x64.qcow2_shrink </code></WRAP> </WRAP> <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>#</b> <b class=HIY>qemu-img</b> convert <b class=HIK>-O</b> qcow2 <b class=HIK>-c</b> Windows_10_Pro_x64.qcow2 Windows_10_Pro_x64.qcow2_shrink-c </pre></html></WRAP> <WRAP color_command><html><pre> <b class=GRN>#</b> <b class=HIY>ls</b> <b class=HIK>-al</b> </pre></html></WRAP> <WRAP color_result><code> 合計 30426336 -rw-------. 1 root root 274920112128 12月 2 16:18 Windows_10_Pro_x64.qcow2 -rw-r--r--. 1 root root 11280121856 12月 3 12:59 Windows_10_Pro_x64.qcow2_shrink -rw-r--r--. 1 root root 6055723008 12月 3 13:22 Windows_10_Pro_x64.qcow2_shrink-c </code></WRAP> </WRAP> ===== イメージの移行 ===== VMware の vmdk から QEMU の qcow2 形式に変換するには、以下のコマンドを実行する。\\ ※ qcow2 形式は必要に応じて膨らむので、実際に使われている容量のファイルができあがる。\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> qemu-img convert <b class=HIK>-O</b> qcow2 filename.vmdk filename.qcow2 </pre></html></WRAP> </WRAP> vmdk から raw イメージに変換するには、以下のコマンドを実行する。\\ ※ vmdk で定義されているディスク容量(使われていない領域を含む)の raw イメージができあがる。\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> qemu-img convert <b class=HIK>-O</b> raw filename.vmdk filename.img </pre></html></WRAP> </WRAP> ===== Linux で qcow2 ディスクイメージをマウントする方法 ===== 参考: [[https://gist.github.com/shamil/62935d9b456a6f9877b5|How to mount a qcow2 disk image]]\\ ホスト上で NBD を有効にして、QCOW2 を NBD として接続する🤔\\ <WRAP color_term> <WRAP color_command><html><pre> <font color="#0087FF"><b>$</b></font> <font color="#26A269"><u style="text-decoration-style:solid">sudo</u></font> <font color="#26A269">modprobe</font> nbd max_part=8 <font color="#0087FF"><b>$</b></font> <font color="#26A269"><u style="text-decoration-style:solid">sudo</u></font> <font color="#26A269">qemu-nbd</font> <font color="#A347BA">--connect=/dev/nbd0</font> <u style="text-decoration-style:solid">/var/lib/libvirt/images/Windows_10_Pro_x64.qcow2</u> <font color="#0087FF"><b>$</b></font> <font color="#26A269"><u style="text-decoration-style:solid">sudo</u></font> <font color="#26A269">fdisk</font> <u style="text-decoration-style:solid">/dev/nbd0</u> <font color="#A347BA">-l</font> </pre></html></WRAP> <WRAP color_result><html><pre> <b>Disk /dev/nbd0: 256 GiB, 274877906944 bytes, 536870912 sectors</b> Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x4ac41c2f <b>Device </b> <b>Boot</b> <b> Start</b> <b> End</b> <b> Sectors</b> <b> Size</b> <b>Id</b> <b>Type</b> /dev/nbd0p1 * 2048 206847 204800 100M 7 HPFS/NTFS/exFAT /dev/nbd0p2 206848 536868863 536662016 255.9G 7 HPFS/NTFS/exFAT </pre></html></WRAP> </WRAP> NBD を切断する🤔\\ <WRAP color_term> <WRAP color_command><html><pre> <font color="#0087FF"><b>$</b></font> <font color="#26A269"><u style="text-decoration-style:solid">sudo</u></font> <font color="#26A269">qemu-nbd</font> <font color="#A347BA">--disconnect</font> <u style="text-decoration-style:solid">/dev/nbd0</u> </pre></html></WRAP> <WRAP color_result><html><pre> /dev/nbd0 disconnected </pre></html></WRAP> <WRAP color_command><html><pre> <font color="#0087FF"><b>$</b></font> <font color="#26A269"><u style="text-decoration-style:solid">sudo</u></font> <font color="#26A269">rmmod</font> nbd </pre></html></WRAP> </WRAP> ===== 参考文献 ===== [[https://wiki.archlinux.jp/index.php/%E3%82%B9%E3%83%91%E3%83%BC%E3%82%B9%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB|スパースファイル - ArchWiki]]\\ [[https://pve.proxmox.com/wiki/Shrink_Qcow2_Disk_Files|Shrink Qcow2 Disk Files - Proxmox VE]]\\ [[https://unix.stackexchange.com/questions/612888/tell-if-a-file-is-a-sparse-file|There is an existing question for "Finding all sparse files", and I think I could use it, but the scripts were too complex to understand. I don't think the GUI of Ubuntu file manager prov...]]\\ [[https://superuser.com/questions/72152/windows-7-fails-to-install-on-kvm-with-qemu|ubuntu - Windows 7 fails to install on KVM with qemu - Super User]]\\ [[https://askubuntu.com/questions/1310440/using-virtio-win-drivers-with-win7-sp1-x64|virtualization - Using virtio-win drivers with Win7 SP1 x64 - Ask Ubuntu]]\\ ==== 付録 ==== [[tw>tomoyan596/status/1465803218206617605|KVMの中で飼いならします🤤]]\\ [[tw>tomoyan596sp/status/1697355608306209081|スパースファイルの整理はこんなところにしてたのかぁ🤔記憶にはあるけど...どこに行ったかわからなくなってたり...😅]]\\ linux/qemu-kvm/qemu-img.txt 最終更新: 2024/07/07 16:28by ともやん