Virtualbox Red Hat/Centos VM'leri Hyper-V'ye Taşıma
Virtualbox üzerinde çalışan Red Hat ve Centos sanal makinelerinizi Hyper-V sanal makine yöneticisine taşıdığınızda hata alır ve sanal makineleri direkt çalıştıramazsınız. Uzun uğraşlar ve denemeler sonucunda bulduğumuz yöntem ile artık problemsiz bir taşıma işlemi gerçekleştirebilirsiniz.
Hyper-V, yönetimsel, performans açısından ve Windows entegrasyonu gibi sebeplerle birçok sistem yöneticisinin kullandığı başarılı ve profesyonel bir sana makine yöneticisidir. Aynı şekilde Virtualbox’ta birçoklarının işini fazlasıyla görmekte. Fakat bir gün sanal makinelerinizi Virtualbox ortamından hyper-V ortamına taşımayı planlarsanız ve işletim sistemi olarak Red Hat veya Centos kullanıyorsanız bir takım sorunlar sizi bekliyor.
Virtualbox sanal makine yöneticisindeki VM’leri Hyper-V’ye taşıyıp VM’i açtığınızda aşağıdaki resimde gördüğünüz hatayı almış olma ihtimaliniz çok yüksektir. Boot edemem sorununu aşmak için bir çok yöntem denedik, farklı disk export programlarını kulandık vs. Fakat sorun daha karmaşık çıktı. Yine de güzel haber, çözümü hemen aşağıda.
Aldığımız hata metni şu şekilde;
Warning: /dev/cl/root does not exist
Warning: /dev/cl/swap does not exist
Warning: /dev/mapper/cl-root does not exist
Virtualbox’ta kullandığınız VM’in vdi
disk dosyasını vhd
‘ye çevirip Hyper-V’de import ettikten sonra boot edememe sorunu yaşıyoruz. Ve bu diskler recovery modda girdiğinizde de dev
dizini altında gözükmüyor. Öyleyse gelelim çözüme.
✅ Çözüm
Virtualbox üzerindeki Red Hat ve Centos VM’lerinin vdi dosyalarını vhd’ye çevirmeden önce hyperv-tools
paketini kuracağız ve ardından aşağıdaki komutla kerneli yeniden derleyeceğiz. Önce paketi kuralım.
dnf install -y hyperv-tools
Ardından kerneli derleyecek kodumuzu çalıştıralım. Bu aşamada işletim sistemi major sürümünüze göre birkaç çeşit komut bloku mevcut. Yazıyı yazdığım bu tarihte yüksek ihtimalle Centos 7 veya 8 kullanıyor olmanıza rağmen yine de diğer sürümler için gereken komutu da ekleyelim.
- Centos 7 ve 8 için:
mkinitrd -f -v --with=hid-hyperv --with=hv_utils --with=hv_vmbus --with=hv_storvsc --with=hv_netvsc /boot/initramfs-$(uname -r).img $(uname -r)
- Centos 6 için:
mkinitrd -f -v --with=hid-base-hv --with=hid-hyperv --with=hv_utils --with=hv_vmbus --with=hv_storvsc --with=hv_netvsc /boot/initramfs-$(uname -r).img $(uname -r)
- çok eskide kaldı fakat yinede Centos 5 için:
mkinitrd -f -v --with=hid-base-hv --with=hid-hyperv --with=hv_utils --with=hv_vmbus --with=hv_storvsc --with=hv_netvsc /boot/initrd-$(uname -r).img $(uname -r)
Şimdi VirtualBox programında File -> Virtual Media Manager‘a girelim.
Red Hat / Centos imajınızı seçerek Kopyala butonuna tıklayınız.
Disk tipini vhd
ve depolama türünü değişken
seçtikten sonra disk dosyasını istediğiniz bir dizine kopyalayınız.
Sıra Hyper-V’ye geldi. Yeni bir Hyper-V VM oluşturunuz ve Disk ekleme aşamasında yukarıda export aldığımız vhd
diski ekleyiniz.
Şimdi sanal makinemizi çalıştıralım.
Tebrikler! Artık eskiden virtualbox üzerinde olan sanal makinelerimizi Hyper-V’ye taşıdık ve başarıyla çalıştırdık.