GRUB2'den Chainload syslinux - syslinux.cfg menüsünü göster


9

Sistemleri yeniden canlandırmak için bir Clonezilla canlı USB disk kullanıyorum. Http://clonezilla.org/fine-print-live-doc.php?path=clonezilla-live/doc/99_Misc/00_live-boot-parameters.doc ' da açıklananlara göre disklerim menüyü içeriyor içinde syslinux.cfgUEFI makinelerdir en son dışındaki tüm sistemler için ben isteniyor (ve BIOS UEFI cihazlar birinciden boot yapılandırmış) grub.cfgmenüsünden. Menümü

yoğun bir şekilde özelleştirdiğim syslinux.cfgiçin, grub.cfgdosyayı syslinux.cfgher zaman menüyü göstermek için sadece otomatik olarak syslinux'a chainload olarak değiştirmek istiyorum .

Bu hiç mümkün mü? Nasıl?

Diskte GRUB2 var ve benim anlayışım (internete bakmaktan) mümkün olacak, ama henüz nasıl olduğunu anlamadım. Herhangi bir yardım takdir.

Düzenleme:
Sistem grub.cfgConezilla indirme tarafından sağlanan varsayılan olarak menüdeki seçeneklerden herhangi birini seçmeden sorunsuz bir şekilde grub kullanarak önyükleme yapmak istiyorum, ama ne yapmak istiyorum syslinux (in syslinux.cfg) menüsünü göstermek grub.cfg

İkinci düzenlemede varsayılan menü yerine , nasıl yaptım:
Sonunda önerilen çözümler benim için çalışmadı, bu yüzden 'EFI \ boot' klasörünü "kullanılamaz" (yeniden adlandırdım) yaptım; bu şekilde UEFI önyüklemesi başarısız olur ve sistem eski sistemde olduğu gibi syslinux'dan önyüklenir: BIOS'ta değişiklik yok, yeni menü yok, zincir yükü yok ...


Sanırım, configfilesyslinux.cfg zincirini yüklemek için grub.conf içindeki parametreyi kullanabilirsiniz
SHW

Yanıtlar:


1

Bu, bununla ilgili bazı hatalar olduğunu ve bazı yamalar olduğunu gösteriyor, bu yüzden kesin olarak bilmek zor: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/469568

İlk olarak, OS güncellemeleriniz grub ise grub.cfg dosyasını yeniden oluşturur ve yapılandırmanızı siler, bu nedenle /boc/grub.cfg dosyasını manuel olarak değiştirmeyin, bunun yerine /etc/grub.d (40_custom gibi bir dosya veya bunun gibi bir dosya) üzerinde değişiklik yapmayın. ve arayın grub-mkconfig -o /boot/grub/grub.cfg.

Bunun gibi basit bir şey deneyebilirsiniz:

menuentry "Syslinux kök sürücüsü" {

kök ayarla = (hd1,3)

zincir yükleyici +1

}

(hd1,3) sdb3 disk bölümüdür, grub uuid ile tanımlamayı destekler, böylece bölümünüzün tüm PC'ler tarafından algılanacağı kurulum oluşturmak mümkündür. Ancak tecrübelerime göre bazen bu yeterli değil.

Ayrıca şöyle bir şey deneyebilirsiniz chainloader (hd1,3)/path/to/syslinux/isofile.bin

Her şey başarısız olursa, içinde syslinux ile iso'dan önyükleme yapmak mümkündür, ancak sizin durumunuzda bu bir seçenek değildir.


Önce grub komut satırından denedim (gruba bir kez basın), syslinux.cfg bölümümü tanımladım ve 'chainloader (hd0, msdos2) +1' 'yi doğrudan denedim, ancak' geçersiz EFI dosya yolu 'hatasını aldım. Lütfen yukarıdaki bölümün içeriğinin herhangi bir .bin dosyası içermediğini unutmayın. (Ek açıklık için soruyu da düzenledim)
rodedo

Muhtemelen hayır, adı ve ikili format uzantısı (.bin) distroya bağlıdır (canlı cd'ler genellikle syslinux ve isolinux ile önyükleme yapabilmek için bin'e sahiptir, ancak büyük olasılıkla .bs dosyasıdır, burada komutları izleyin syslinux.org/wiki/index.php/SYSLINUX#LABEL_command ). Ancak şimdi bir şey araştırıyorum: doğrudan casper modülü (aka canlı cd / canlı usb modu) ile çekirdek önyükleme değil onun bootloader menü çalışmıyor. Birkaç dakika sonra sonuçları yazacağım.
IBr

Tamam, adayların o klasördeki .c32 dosyaları olduğunu görüyorum. Daha doğrusu şu klasörün içeriği: 'chain.c32', 'menu.c32', 'reboot.c32', 'vesamenu.c32', 'memdisk', 'syslinux.cfg' <br> cfg dosyası hariç , diğerini tek tek deneyeyim mi? Etrafa baktığımda chain32'nin diğer yöne (yani ihtiyacım olan şey değil) chailoiding için kullanılması gerektiğini anladım, yanılıyor muyum?
rodedo

İyi arama casper önyükleyici menüsünü çağırmaz. Bunu nasıl elde edeceğimi bilmiyorum. Eğer gruba yüklemek için kendi grub chainloading örneğim var, ama syslinux ile herhangi bir kullanımı olduğundan şüphe ediyorum:menuentry 'Archlinux The Latest' { insmod ext2 set root=(hd0,6) multiboot /boot/grub/i386-pc/core.img }
IBr

0

4 yıl sonra ... :)

Bunu dene:

menuentry 'menuentry' {
    set root=(hd0,1)
    syslinux_source /path/isolinux/isolinux.bin
    syslinux_configfile /path/isolinux/isolinux.cfg
}

1
Lütfen biraz ayrıntı verin ve bunun neden sorunu çözdüğünü açıklayın.
countermode

-1

önyükleme sektörü yüklemesi yerine bir dizin yüklemesi yapmanız gerekir. bir önyükleme sektörü yüklemesi yaparsanız, bölümün ilk 512 baytını bir dosyaya ve bu dosyaya zincir yükünü dd. benim için çalıştı.


Bu doğru olabilir, ancak açıklanan adımların nasıl atılacağı (ve uygun büyük harf kullanımı) hakkında biraz açıklamadan yararlanabilir.
Caleb
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.