Chainload syslinux dari GRUB2 - tampilkan menu syslinux.cfg


9

Saya menggunakan disk USB langsung Clonezilla untuk sistem reimage. Sesuai dengan apa yang dijelaskan di http://clonezilla.org/fine-print-live-doc.php?path=clonezilla-live/doc/99_Misc/00_lisc-boot-parameters.doc disk saya meminta saya dengan menu yang terkandung di syslinux.cfguntuk semua sistem kecuali yang terbaru yang merupakan mesin UEFI (dan BIOS telah dikonfigurasi untuk boot dari perangkat UEFI pertama) di mana saya diminta dengan grub.cfgmenu.

Mengingat bahwa saya sangat menyesuaikan syslinux.cfgmenu saya, saya ingin memodifikasi grub.cfgfile hanya secara otomatis chainload ke syslinux sehingga untuk menunjukkan syslinux.cfgmenu dalam semua kasus.

Apakah ini mungkin? Bagaimana?

Pada disk ada GRUB2 dan pemahaman saya (dari melihat-lihat di Internet) adalah yang mungkin, tapi saya belum mengerti bagaimana. Bantuan apa pun dihargai.

Sunting:
Saya ingin mengklarifikasi bahwa sistem melakukan booting menggunakan grub tanpa masalah memilih salah satu opsi yang ada di grub.cfgmenu secara default seperti yang disediakan oleh unduhan Conezilla, tetapi apa yang ingin saya lakukan adalah menampilkan menu syslinux (in syslinux.cfg) alih-alih menu default di grub.cfg

edit Kedua, bagaimana saya melakukannya:
Pada akhirnya solusi yang diusulkan tidak bekerja untuk saya, jadi saya hanya membuat folder 'EFI \ boot' "tidak tersedia" (diganti namanya); dengan cara ini boot UEFI gagal dan sistem melakukan booting dari syslinux seperti pada sistem yang lebih lama: tidak ada modifikasi pada BIOS, tidak ada menu baru, tidak ada rantai ...


Saya kira, Anda dapat menggunakan configfileparameter di dalam grub.conf untuk chainload syslinux.cfg
SHW

Jawaban:


1

Ini menunjukkan bahwa itu adalah beberapa bug yang terkait dengan itu dan merupakan beberapa tambalan, jadi sulit untuk mengetahui pasti: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/469568

Pertama, jika OS Anda memperbarui grub, itu akan membuat ulang grub.cfg dan menghapus konfigurasi Anda, jadi jangan memodifikasi / boot / grub.cfg secara manual, ganti file dalam /etc/grub.d (file dengan nama 40_custom atau sesuatu seperti itu) dan telepon grub-mkconfig -o /boot/grub/grub.cfg.

Anda dapat mencoba sesuatu yang sederhana seperti ini:

menuentry "Syslinux root drive" {

set root = (hd1,3)

chainloader +1

}

(hd1,3) adalah partisi disk sdb3, grub mendukung identifikasi oleh uuid, sehingga memungkinkan untuk membuat pengaturan di mana partisi Anda akan terdeteksi oleh semua PC. Namun dalam pengalaman saya kadang-kadang ini tidak cukup.

Anda juga dapat mencoba sesuatu seperti chainloader (hd1,3)/path/to/syslinux/isofile.bin

Jika semuanya gagal, dimungkinkan untuk boot dari iso dengan syslinux di dalamnya, tetapi tampaknya dalam kasus Anda ini bukan pilihan.


Saya pertama kali mencoba ini dari baris perintah grub (tekan c sekali di grub), saya mengidentifikasi partisi syslinux.cfg saya dan mencoba 'chainloader (hd0, msdos2) +1' secara langsung tetapi saya mendapatkan kesalahan 'jalur file EFI tidak valid'. Harap dicatat bahwa konten partisi di atas tidak mengandung file .bin. (Saya juga mengedit pertanyaan untuk kejelasan tambahan)
rodedo

Mungkin tidak, namanya dan ekstensi format biner (.bin) tergantung pada distro (live cd biasanya memiliki bin untuk dapat boot dengan syslinux dan isolinux, tetapi dalam kasus Anda itu mungkin file .bs, tonton di sini untuk perintah syslinux.org/wiki/index.php/SYSLINUX#LABEL_command ). Namun saya sekarang sedang meneliti satu hal: tidak mem-boot kernel secara langsung dengan modul casper (alias live cd / live usb mode) tidak menjalankan menu bootloadernya. Setelah beberapa menit, saya akan menulis hasilnya.
IBr

OK, saya melihat bahwa kandidat adalah file .c32 yang saya miliki di folder itu. Lebih tepatnya ini adalah isi folder: 'chain.c32', 'menu.c32', 'reboot.c32', 'vesamenu.c32', 'memdisk', 'syslinux.cfg' <br> tidak termasuk file cfg , akankah saya mencoba yang lain satu per satu? Melihat sekeliling saya mengerti bahwa chain32 seharusnya digunakan untuk chailoid ke arah lain (jadi bukan yang saya butuhkan), apakah saya salah?
rodedo

Casper yang menelepon dengan baik tidak memunculkan menu bootloader. Saya tidak tahu bagaimana cara mengarsipkan ini. Jika itu akan membantu saya punya contoh grub chainloading saya sendiri untuk grub, tapi saya ragu itu ada gunanya dengan syslinux:menuentry 'Archlinux The Latest' { insmod ext2 set root=(hd0,6) multiboot /boot/grub/i386-pc/core.img }
IBr

0

Setelah 4 tahun ... :)

Coba ini:

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

1
Tolong jelaskan sedikit dan jelaskan mengapa ini menyelesaikan masalah.
countermode

-1

Anda harus melakukan instalasi direktori daripada instalasi sektor boot. jika Anda melakukan boot sector install maka dd partisi pertama 512 byte ke file dan chainload ke file itu. bekerja untukku.


Ini mungkin benar, tetapi bisa mendapat manfaat dari sedikit penjelasan tentang cara mengambil langkah-langkah yang dijelaskan (dan dari kapitalisasi yang tepat).
Caleb
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.