Saya memiliki direktori yang diisi dengan data /var/backups/disk1
yang ingin saya konversi menjadi image disk virtual yang kemudian saya bisa boot menggunakan QEMU atau KVM (direktori berisi sistem file untuk mesin virtual, disalin melalui rsync).
Meskipun ada banyak instruksi di luar sana untuk mengubah disk fisik lengkap menjadi disk virtual, mengemas hanya isi direktori tunggal menjadi gambar disk virtual ternyata jauh lebih sulit daripada yang saya harapkan. Ada ide?
Ngomong-ngomong, saya tahu saya bisa menggunakan qemu-img
untuk mengubah perangkat blok menjadi disk virtual (misalnya, qemu-img convert -f /dev/sdc -O qcow2 disk.qcow2
), jadi jika saja saya bisa membuat direktori /var/backups/disk1
tampak sebagai perangkat blok, maka secara teoritis saya harus dapat mencapai tujuan saya menggunakan qemu-img
. Saya sudah memikirkan cara-cara kreatif untuk mengekspos direktori sebagai perangkat blok menggunakan NBD atau perangkat loopback, dan belum berhasil.
qemu-img
danfallocate
sedikit lebih nyaman daripadadd
.Sepertinya libguestf dapat melakukannya, lihat virt-make-fs (1) dan mungkin virt-copy-in (1) .
sumber
virt-make-fs
dariqcow2
contoh libguestfshttps://serverfault.com/a/332114/163884 menyebutkannya, tetapi berikut adalah contoh lengkapnya:
Perhatikan bagaimana
sudo
tidak diperlukan, kecuali untuk instalasi dan solusi bug Ubuntu.Saya kemudian memverifikasi bahwa QEMU benar-benar dapat membacanya dengan:
Saya kemudian dapat memasang gambar di dalam QEMU Linux dan membaca file.
virt-make-fs
contoh extAlat luar biasa ini juga dapat membuat filesystem raw ext, misalnya:
yang dapat kami verifikasi langsung pada host dengan:
Minimalisasi ukuran gambar
Fitur yang sangat bagus
virt-make-fs
adalah ia secara otomatis mencoba memperkecil ukuran gambar jika itu yang kita inginkan:begitu:
memberi tahu saya bahwa gambar diisi 82%:
Kami dapat dengan mudah menambahkan beberapa ruang ekstra di atas minimum dengan
--size-=+
:overhead jurnal ext4
Manual juga menyebutkan bahwa:
dan menarik untuk memverifikasi itu dengan:
yang menghasilkan:
jadi kami melihat bahwa ext4 keluar secara signifikan lebih besar.
bug libguestf Ubuntu
Sekarang untuk sisi negatifnya: saat ini tampaknya tidak ada pengelola Ubuntu dan pustaka pada umumnya bermasalah di Ubuntu.
sudo
secara teori tidak diperlukan, tetapi diperlukan karena bug pengemasan Ubuntu kecuali jika kami melakukan penyelesaian: /ubuntu/1046828/how-to-run-libguestfs-tools-tools-such-as- virt-make-fs-without-sudo / 1046829 # 1046829Setelah itu, tanpa solusi kami, 18,04 (tetapi tidak 16,04) gagal dengan: https://bugzilla.redhat.com/show_bug.cgi?id=1591617
karena bug yang sudah diperbaiki hulu.
Diuji di Ubuntu 18.04, libguestfs-tools 1: 1.36.13-1ubuntu3, QEMU 1: 2.11 + dfsg-1ubuntu7.3.
sumber
Menggunakan strategi Michaels di Fedora 23:
Ini menciptakan sistem file ext2, yang dapat Anda mount ke beberapa direktori:
Sekarang / mnt berisi semua file Anda
sumber
file.fs
adalah file, tidak seharusnyamount
perintah menjadi:mount -o loop file.fs /mnt
?Bagaimana dengan mengakses direktori sebagai jaringan berbagi dari VM yang juga dipasang ke gambar disk virtual target Anda? Anda lebih dari sekadar melakukan salinan sederhana dari share ke disk image yang dipasang.
sumber
Saya lebih suka (dan menggunakan) jawaban oleh Ciro Santilli, tapi di sini ada sesuatu yang bekerja dengan
guestfish
shell:sumber