Bir VM kurulumu, bir de bulmaca
Bugün epeydir ertelediğim bir işi hallettim: KVM/libvirt üzerinde bir Kali Linux sanal makinesi kurmak. Docker'ı, virt-manager'ı falan zaten kurmuştum; sıra Kali'yi ayağa kaldırmaya gelmişti. Kurulum kendi başına dert değildi; asıl macera VM'i ilk açtığım anda başladı.
Siyah ekran ve gizemli bir "disk yok" mesajı
virt-manager üzerinden Kali VM'ini başlattım ve ekran karardı. Kaldı. Bir süre sonra ortaya çıkan mesaj aşağı yukarı şunu diyordu: kullanılabilir bir disk/boot medyası bulunamıyor.
İlk tepkim klasikti: "Kurulumu bir yerde yanlış yaptım herhalde." ISO'yu yeniden mi indirsem, VM'i sıfırdan mı oluştursam diye düşünmeye başladım. Ama panikle silip yeniden kurmak yerine önce VM'in gerçekte nasıl yapılandırıldığına bakmaya karar verdim.
VM'in tanımına baktığımda iş netleşti
virsh dumpxml kali-linux ile VM'in libvirt tanımını çıkarınca durum netleşti. Üç şey aynı anda eksikti:
- Sanal disk (
kali-linux.qcow2) tanımlıydı ama içi muhtemelen bomboştu — Kali hiç kurulmamıştı. - CD-ROM sürücüsüne (
hdb) hiçbir ISO dosyası takılı değildi; disk sanki boş bir tepsiydi. - Boot sırası sadece
hdolarak ayarlanmıştı — CD-ROM'dan boot etme seçeneği tanımda bile yoktu.
Yani VM her açılışta doğrudan boş diskten boot etmeye çalışıyordu. Üzerinde işletim sistemi olmayan bir diskten boot etmeye çalışınca da ekran kararıp "disk yok" mesajı veriyordu. Aslında kurulumu hiç başlatmamıştım, sadece boş bir kutuyu açmayı deniyordum.
Çözüm: ISO'yu tak, boot sırasını düzelt
Neyse ki elimde zaten indirilmiş bir Kali kurulum ISO'su vardı, sadece yanlış yerdeydi (buna aşağıda ayrıca değiniyorum). İki komutla düzeldi:
# ISO'yu CD-ROM sürücüsüne takvirsh --connect qemu:///system change-media kali-linux hdb \/var/lib/libvirt/images/kali-linux-2026.2-installer-amd64.iso --insert --config# Boot sırasını önce CD-ROM, sonra sabit disk yapvirt-xml kali-linux --edit --boot cdrom,hd --update
change-media boş CD-ROM tepsisine ISO'yu yerleştirdi, virt-xml --boot cdrom,hd da VM'e önce CD-ROM'dan, olmazsa diskten boot etmesini söyledi. VM'i tekrar başlattığımda siyah ekran yerine Kali'nin kurulum menüsü karşıladı.
Önemli not: Kurulum bitince boot sırasını tekrar hd,cdrom şeklinde çevirmek gerekiyor; yoksa VM her açılışta kurulum menüsüne düşmeye devam eder.
Bonus bulmaca: ISO neden yanlış klasördeydi?
Bu işin ortasında kendimi başka bir soruyu çözerken buldum: ISO'ları düzenli tutmak için /home/panel/isos diye ayrı bir klasör (libvirt dilinde "storage pool") oluşturmuştum, ama gerçek ISO dosyası orada değil, libvirt'in varsayılan havuzu olan /var/lib/libvirt/images içindeydi. Kendi klasörümde sadece bir SHA256SUMS dosyası duruyordu.
Dosya sahiplikleri ipucuydu: ISO, libvirt-qemu:kvm kullanıcısına aitti — yani benim panel hesabımla değil, libvirtd servisi tarafından indirilip kaydedilmişti. Muhtemel açıklama şu: VM oluşturma sihirbazında kurulum medyasını seçerken/indirirken hedef havuzu elle isos olarak değiştirmedim, sihirbaz da varsayılan olarak seçili gelen default havuzuna (/var/lib/libvirt/images) kaydetti. Kendi klasörümü oluşturmuş olmam, sihirbazın onu otomatik kullanacağı anlamına gelmiyormuş.
Çıkarımlar
- "Disk yok" veya siyah ekran hatası genelde gerçekten disk eksik demek değil; çoğu zaman boot medyası bağlı değildir ya da boot sırası yanlıştır.
- Panikleyip VM'i silip yeniden kurmak yerine önce
virsh dumpxmlile gerçek yapılandırmaya bakmak, sorunu dakikalar içinde teşhis etmemi sağladı. - Storage pool oluşturmak tek başına yetmiyor; VM sihirbazında medyayı seçerken hedef havuzu bilerek seçmek gerekiyor, yoksa dosyalar varsayılan havuza düşebiliyor.
virshvevirt-xmlgibi komut satırı araçları, virt-manager arayüzünde tıklamaktan daha hızlı ve daha açıklayıcı — özellikle sorun teşhisinde.
Sonuçta bugün hem Kali VM'i ayağa kaldırdım hem de kendi depolama düzenimdeki küçük bir tutarsızlığı fark ettim. Küçük ama öğretici bir gündü.
Hiç yorum yok:
Yorum Gönder