Sanal Makine Görüntü Formatları Nasıl Dönüştürülür
Uzak bir bulut sunucusuyla çalışırken, genellikle bir sanal makineyle çalışırsınız: daha büyük bir sunucu kümesi içinde çalışan tüm işletim sisteminin korumalı, yalıtılmış bir örneği. QEMU veya VirtualBox gibi yazılımları kullanarak masaüstünüzde yerel olarak sanal makinelerle de çalışabilirsiniz. Sanal makineler, tüm bir masaüstü arabirimini içerebilir veya yalnızca terminal bağlantılarına izin vermek için bir SSH sunucusu çalıştırabilir. Her iki durumda da teknik olarak benzerler ve benzer varsayımlarda bulunuyorlar. Herhangi bir büyük ölçekli bulut optimizasyonu dışında, sanallaştırma ortamları arasındaki tek önemli fark, sanal makine sabit diskleri ve yapılandırma seçenekleridir. Bunlara sanal makine görüntüleri denir ve sağlayıcılar arasında farklı biçimlendirilir.
Bu öğreticide, sanal ortamlarınızı masaüstünüzden buluta ve gerektiğinde tekrar geri alabilmeniz için sanal makine görüntü biçimleri ( , , ve ) qcow2
arasında vdi
nasıl vhd
dönüştürme yapacağınızı öğreneceksiniz .vmdk
Önkoşullar
Bu öğreticideki komutlar, komut satırı araçlarıyla birlikte QEMU ve VirtualBox’ı kurabildiğiniz sürece Windows, macOS veya Linux’ta çalıştırılabilir. Bu öğretici, Homebrew paket yöneticisini kullanarak kurulum talimatları sağlar . Homebrew’i macOS’ta , Linux’ta veya WSL2 altında Windows’ta kurabilirsiniz .
En az 2 CPU’nuz ve 2 GB belleğiniz olmalıdır.
Ayrıca bu öğreticideki komutları çalıştırmak için en az 10 GB boş alana ihtiyacınız olacak.
Not: Apple Silicon CPU’lu (2020 ve sonrasında üretilmiş) macOS kullanıyorsanız, VirtualBox’ı değil yalnızca QEMU’yu kullanabileceksiniz.
QEMU
QEMU , en güçlü ve yaygın olarak desteklenen açık kaynaklı sanallaştırma yazılımıdır. Tüm büyük platformlarda (Windows, macOS, Linux ve Android gibi diğer işletim sistemleri dahil) çalışır ve gerektiğinde hem sanallaştırma hem de öykünme yeteneğine sahiptir . Örneğin, bir Windows masaüstünde bir Linux sunucu görüntüsü çalıştırıyorsanız (ortak bir kullanım durumu), bu platformların her ikisi de ortak bir temel mimariyi (Intel/AMD x86 ) paylaşır, böylece QEMU sanallaştırma yoluyla tam performans elde edebilir. Mimarileri karıştırmak ve eşleştirmek için QEMU kullanıyorsanız, örneğin ARM ile x86 Linux veya Windows (“host” veya “misafir” işletim sistemi olarak) çalıştırarak macOS veya Android mimarileri için QEMU, mimarileri çevirmek için otomatik olarak öykünmeyi kullanır.
Sanallaştırma ile karşılaştırıldığında, önemli bir performans cezası eklediğinden öykünme genellikle üretim ortamlarında kullanılmaz. Bununla birlikte, sanallaştırma ve öykünmeyi neredeyse eşdeğer olarak ele alan QEMU, her senaryoda aynı görüntü biçimlerinin ve aynı araçların kullanılabileceği anlamına geldiğinden önemli uyumluluk avantajları sağlar.
QEMU bir komut satırı yazılımıdır ve sanal makinelerin yapılandırılabileceği çok sayıda seçenek nedeniyle VMware veya VirtualBox gibi masaüstü sanallaştırma yazılımlarına kıyasla yüksek bir öğrenme eğrisine sahiptir. İsteğe bağlı olarak Windows veya Linux’ta QtEmu ve macOS’ta UTM gibi GUI ön yüzleriyle kullanılabilir . Bu öğretici, QEMU ile çalışmak için komut satırı talimatları sağlayacaktır.
QEMU’yu yükleme
QEMU’yu kurmak için Homebrew’s kullanın brew install
:
brew install qemu
qemu-img
Bu , komut satırında sanal makine görüntülerini dönüştürmek için kullanılan da dahil olmak üzere tüm QEMU araçları ve komutları paketini sağlayacaktır . qemu-img
Çalıştırarak komuta erişiminiz olduğunu doğrulayın which qemu-img
:
which qemu-img
Output/usr/local/bin/qemu-img
Not: Windows üzerinde WSL2 olmadan çalışmayı tercih ederseniz, QEMU’yu yerel yükleyicisini kullanarak Windows’a da yükleyebilirsiniz.
QEMU, bu eğitimde ihtiyaç duyacağınız işlevlerin çoğunu sağlar. Başka bir popüler sanallaştırma paketi olan VirtualBox’ı da yükleyebilirsiniz.
VirtualBox
VirtualBox , Oracle tarafından sağlanan açık kaynaklı sanallaştırma yazılımıdır. Tüm x86 işletim sistemlerini destekler (2020’den önce üretilmiş Windows, Linux ve macOS bilgisayarlar). Öykünmeyi veya x86 olmayan mimarileri desteklemez, bu da onu öncelikle Linux’u Windows altında çalıştırmak için yararlı kılar ve bunun tersi de geçerlidir. Bununla birlikte, kullanımı QEMU’dan daha basittir, geniş çapta uyumlu varsayılan ayarlar sağlar ve varsayılan olarak bir masaüstü arayüzü içerir.
QEMU kadar komut satırı işlevi sağlamaz, bu nedenle sanal makine yapılandırmalarını otomatikleştirmek ve yeniden oluşturmak için genellikle Vagrant gibi özel düzenleme yazılımlarıyla eşleştirilir. Ancak, VBoxManage
bazı sanal makine görüntülerini işlemek için kullanılabilecek komut satırı aracını içerir.
VirtualBox’ı Yükleme
VirtualBox’ı macOS’a yüklemek brew install
için bayrakla birlikte kullanın, çünkü VirtualBox, Homebrew’un cask–cask
dediği tam bir uygulama paketi olarak dağıtılır :
brew install --cask virtualbox
VirtualBox’ı Ubuntu veya Debian’dan türetilmiş Linux dağıtımlarına (WSL2 altında dahil) kurmak için, önce apt update
paket kaynaklarınızı yenilemek için kullanın, ardından apt install
:
sudo apt update
sudo apt install virtualbox
VirtualBox’ı Windows’a WSL2 olmadan kurmak için indirme sayfasına bakın .
VirtualBox’ı kurduktan sonra, aşağıdaki vboxmanage
komutu çalıştırarak komuta erişiminiz olduğunu doğrulayın which vboxmanage
:
which vboxmanage
Output/usr/local/bin/vboxmanage
Sanallaştırma için QEMU ve VirtualBox’a alternatifler mevcuttur. Ancak bunların çoğu platforma özeldir ( Windows’ta Hyper-V gibi ) veya büyük ölçekli kurumsal kullanım için tasarlanmıştır ( VMware gibi ). Bu eğitimde doğrudan ele alınmayacaklar, ancak aşağıdaki adımlarda görüntü biçimlerini dönüştüreceksiniz.
QEMU kullanarak Sanal Makine Görüntüsü Oluşturma
Sanal makine görüntülerini dönüştürmeyi göstermek için QEMU ile bir görüntü oluşturarak başlayabilirsiniz. Halihazırda dönüştürülecek bir resminiz varsa bu bölümü atlayabilirsiniz.
QEMU’nun varsayılan biçiminde bir görüntü oluşturmak qemu-img create
için bayrağı olan komutu kullanın :-f qcow2
qcow2
qemu-img create -f qcow2 ubuntu-desktop-22.04.qcow2 10G
Bu noktada boş bir sanal makine imajı oluşturmuş olacaksınız. ubuntu-desktop-22.04.qcow2
Adını vermiş ve kapasite vermiş olsanız bile 10G
, bu noktada ne Ubuntu 22.04 kurulu olacak ne de 10GB büyüklüğünde olacaktır.
OutputFormatting 'ubuntu-desktop-22.04.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=10737418240 lazy_refcounts=off refcount_bits=16
QEMU görüntüleri, sanal makinede çalışan herhangi bir yazılıma beyan edilen maksimum kapasitelerini yansıtırken, diskinizde her zaman mümkün olduğunca az yer kaplar. Bu durumda, 10 GB, sanal makinenizin kullanılabilir olduğunu düşündüğü kapasite ve sanal makine görüntüsünün otomatik olarak ölçekleneceği maksimum boyut olacaktır.
Tipik bir sonraki adım, Ubuntu 22.04 ISO kullanarak sanal makineye Ubuntu 22.04 yüklemek olacaktır . Ancak, aslında bu sanal makineyle doğrudan çalışmayacağınız için bu öğretici için bu adımı atlayabilirsiniz. ISO, genellikle salt okunur olan ve yazılabilir bir sabit diskin görüntüsü yerine geçmişte CD ve DVD yükleme ortamına yazılmış olan başka bir disk görüntüsü türüdür. ISO görüntülerini işlemek için mkisofs ve dd gibi başka yazılımlar da mevcuttur . QEMU kullanarak Linux kurulumu hakkında daha fazla bilgi için QEMU belgelerine bakın .
Bir QEMU Görüntüsünü Başka Bir Biçime Dönüştürme
Bir VM görüntüsü oluşturduktan sonra, qemu-img convert
onu diğer biçimlere dönüştürmek için kullanabilirsiniz. vdi
VirtualBox’ın varsayılan görüntü formatıdır. Varsayılan olarak, bu orijinal VM görüntüsünü silmez, yalnızca yeni bir tane oluşturur:
qemu-img convert -f qcow2 ubuntu-desktop-22.04.qcow2 -O vdi ubuntu-desktop-22.04.vdi
-f
, girdi biçimini ve girdi dosya adını belirtmek için kullanılır. Bayrak -O
, çıktı biçimini ve çıktı dosya adını belirtmek için kullanılır. -p
Çok büyük görüntüleri dönüştürürken yardımcı olan bir ilerleme çubuğu göstermek için bayrağı da ekleyebilirsiniz . Son adımda oluşturduğunuz görsel, henüz içeriği olmadığı için anında dönüşecektir. ubuntu-desktop-22.04.vdi
Aşağıdakileri kullanarak oluşturduğunuzu onaylayabilirsiniz ls
:
ls ubuntu-desktop-22.04.vdi
Outputubuntu-desktop-22.04.vdi
Diğer yaygın biçimler arasında vmdk
, öncelikli olarak VMware tarafından vhd
kullanılan ve öncelikli olarak Microsoft’un Hyper-V’si tarafından kullanılan . Yazılımınız gerektiriyorsa, bir sonraki adımı izleyerek “ham” bir görüntü de oluşturabilirsiniz.
Diğer Sanal Makine Formatlarını QEMU’ya Dönüştürme
Biçimde bir görüntünüz varsa , dönüştürmek için VirtualBox tarafından sağlanan komutu vdi
kullanabilirsiniz : vboxmanage
vboxmanage clonemedium ubuntu-desktop-22.04.vdi ubuntu-desktop-22.04.img --format raw
Output0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'raw'. UUID: 0501e707-c94e-4103-9069-d7b64a933d78
Bunun, oluşturulan görüntüyü yerel VirtualBox yapılandırmanızla otomatik olarak kaydedeceğini unutmayın; bu, geçici kopyalar oluşturmaya çalışıyorsanız elverişsiz olabilir. Yanlışlıkla kopyaları kaydederseniz, yeni girişleri VirtualBox arayüzünden manuel olarak kaldırmanız gerekebilir.
Ham sanal makine görüntüleri hiç sıkıştırılmaz, bu nedenle bu komut aslında öncekinden farklı olarak tam bir 10GB dosya oluşturacaktır. qcow2
Son adımdaki sözdizimini tersine çevirerek onu QEMU ile kullanmak üzere biçime dönüştürebilirsiniz :
qemu-img convert -f raw ubuntu-desktop-22.04.img -O qcow2 ubuntu-desktop-22.04-new.qcow2
Artık disk alanını geri kazanmak için ham görüntüyü silebilirsiniz:
rm ubuntu-desktop-22.04.img
Son olarak, sanal makine görüntülerinizden bazı meta verilerin çıktısını almak için qemu-img check
ve komutlarını kullanabilirsiniz : qemu-img info
qemu-img check ubuntu-desktop-22.04.qcow2
OutputNo errors were found on the image.
Image end offset: 262144
qemu-img info ubuntu-desktop-22.04.qcow2
Outputimage: ubuntu-desktop-22.04.qcow2
file format: qcow2
virtual size: 10 GiB (10737418240 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
ile görüntüleri dönüştürme hakkında daha fazla bilgi qemu-img
için, qemu-img kılavuz sayfasına veya resmi belgelerine bakın .