Grub2'yi Xen ile nasıl kurarım?


4

Yeni bir Xen çekirdeği açıyorum ve makine uyarı olmadan yeniden başlatıldığında önyükleme işlemi sırasında bir noktaya kadar her şey yolunda gider. Ne yazık ki, bu gerçekleşmeden hemen önce hataların yanıp söndüğünü görmüyorum.

Makineyi çalışan bir çekirdekli önyüklemenin ve önceki önyüklemenin kütüğüne bakmanın bir yolu var mı?

DÜZENLEME: Fark etmedim aslında ekranda bir hata olduğu. Yeniden başlatmadan önce sadece çok hızlı bir şekilde yanıp sönüyor. Hata, kök dosya sistemini bağlayamama ile ilgili çünkü grub yapılandırmamda bir sorun var.

Grub.cfg içindeki normal bir giriş şöyle görünür:

menuentry 'Ubuntu, with Linux 2.6.32-33-server' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 75475e50-82e2-4f74-b860-6cf92c91b42e
        linux   /vmlinuz-2.6.32-33-server root=/dev/mapper/xenserver-root ro   crashkernel=384M-2G:64M,2G-:128M 
        initrd  /initrd.img-2.6.32-33-server
}

Aşağıdakileri /etc/grub.d/40_default içine ekledim

menuentry 'Xen 4 with Linux 2.6.32.45-xen' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set=root 75475e50-82e2-4f74-b860-6cf92c91b42e
        echo 'Loading Xen 4 ...'
        multiboot /xen.gz placeholder
        echo 'Loading Linux 2.6.32.45-xen ...'
        module  /vmlinuz-2.6.32.45-xen placeholder root=/dev/mapper/xenserver-root ro iommu=1
        echo 'Loading initial ramdisk ...'
        module  /initrd.img-2.6.32.45-xen
}

Ama nedense çalışmıyor. Herhangi bir fikir?

EDIT: 20_linux_xen betiğini de denedim. Maalesef bu çalışmıyor. Bu hataları görün:

Found linux image: /boot/vmlinuz-2.6.32.45-xen
Found initrd image: /boot/initrd.img-2.6.32.45-xen
Found linux image: /boot/vmlinuz-2.6.32-33-server
Found initrd image: /boot/initrd.img-2.6.32-33-server
/etc/grub.d/20_linux_xen: 57: uses_abstraction: not found
Found linux image: /boot/vmlinuz-2.6.32.45-xen
Found initrd image: /boot/initrd.img-2.6.32.45-xen
/etc/grub.d/20_linux_xen: 156: gettext_printf: not found

gettext yüklü.
Ben 10.04 LTS'de yaşıyorum.

Açılışta yanıp sönen hata "lütfen doğru bir kök ekleyin = boot çekirdek seçeneği ..."

Bu neden bu kadar zor ve neden bu kadar farklı grub2 xen örnekleri var? Bazıları önyükleme / önyükleme. Öne / önyükleme koyarak denedim ama bu yardımcı olmadı. Ayrıca bazılarında - set = root uuid ve diğer tüm çalışma girişlerimde - set uuid var. Bu farklı bir grub2 versiyonu ile ilgisi var mı?


Karşılaştığım bu belirti nedenlerinden biri 32 bit donanım üzerinde 64 bit Xen çalışıyor.
Randolf Richardson

Aslında grub2 config ile yapmak çıkıyor. Bu tamamen 64bit donanım
Matt H

Bu bir çözüm bulduğun anlamına mı geliyor? Eğer öyleyse, lütfen bunu bir cevap olarak yayınlayın (böylece başkalarının yararına). =)
Randolf Richardson

Hayır, hala önyükleme yapamıyorum.
Matt H

XBS'yi NetBSD'ye kurduğumda, ana bilgisayar işletim sistemimi Xen olmadan önyükleme seçeneğim var (NetBSD 5, GRUB veya GRUB2 olmadan yerel olarak Xen'e önyüklenebilir). GRUB2 başka önyükleme seçenekleri sunmuyor mu? Hangi parametreleri Xen ile başlatıyorsunuz?
Randolf Richardson

Yanıtlar:


7

Kendi soruma cevap vermek için. Bu grub2 girişi işe yaradı.

menuentry 'Xen 4 with Linux 2.6.32.45-xen' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 75475e50-82e2-4f74-b860-6cf92c91b42e
        multiboot /xen.gz placeholder
        module  /vmlinuz-2.6.32.45-xen placeholder root=/dev/mapper/xenserver-root ro 
        module  /initrd.img-2.6.32.45-xen
}

Ancak, çekirdekte de bir sorunum vardı. Bu yüzden yeniden inşa etmek zorunda kaldım. Bir kere yaptım hepsi gitmişti.


2
Bu problemin çözümünü teknik detaylarla paylaşmak için +1, başkalarına yardımcı olabilir.
Randolf Richardson

0

İçin Amacıyla grub2-mkconfigLinux çekirdeği (ler) tespit etmek, bunlar adlandırılmalıdır vmlinuz-*veya kernel-*. Bazı komut dosyalarında da görebilirsiniz vmlinux-*. Örneğin (... - sonunda xen sadece notum):

/boot/kernel-3.6.2-xen

İçin Amacıyla 20_linux_xensenin Xen çekirdek içerecek şekilde komut, /boottam adı ile çekirdek yapılandırma dosyası içermelidir config-*sizin çekirdek dosyasına karşılık gelir. Örneğin:

/boot/config-3.6.2-xen

Bu dosyayı basitçe zcat /proc/config.gz > /boot/config-[your_version]çalıştırmak için grub2-mkconfigtekrar çalıştırmalısınız . Şu anda komut dosyası, muhtemelen Xen çekirdeği için yinelenen kayıtlar üretecektir, çünkü (muhtemelen), xen çekirdeği için birkaç sembolik bağlantıya sahipsiniz. Bu yüzden onları kaldırın ve sadece orijinal dosyayı ( xen-4.2.0.gz) bırakın . (Umarım bu güvenlidir, bu sembolik bağların kaldırılması yanlışsa, lütfen yorumunuzu aşağıda tutun.)

Aynı durum initrd / initramfs dosyalarında, ancak çok fazla varyasyonla ilgilidir.

Burada çekirdek parametreleri eklenmiştir .

kaynaklar: Çekirdek adlandırma , 20_linux_xen:147,10_linux:194-201

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.