Apa perbedaan antara GRUB dan SYSLINUX?

13

Pertanyaan ini terkait dengan temuan saya bahwa Ubuntu dan turunannya menggunakan bootloader SYSLINUX dan GRUB pada gambar ISO untuk rilis Desktop .

Saat mem-boot dari image ISO 32-bit , dikatakan bahwa SYSLINUX menangani proses booting (boot yang menunjukkan splash screen yang indah, dengan animasi progress dot).

Tapi ketika booting dari 64-bit ISO image , GRUB digunakan sebagai pengganti (layar hitam dan putih, jelas menunjukkan GNU GRUB version...di atas layar).

Oleh karena itu, untuk mengulangi pertanyaan saya, apa perbedaan yang membuat Ubuntu menggunakan GRUB dan SYSLINUX pada gambar ISO-nya? Mengapa tidak menggunakan salah satu saja saja?

Untuk klarifikasi

Pertanyaan ini entah bagaimana membingungkan karena kurangnya klarifikasi dan ketersediaan perangkat keras saya. Saya telah menambahkan jawaban ini (atau gulir ke bawah) untuk menjelaskan lebih baik tentang citra ISO 64-bit.

Jawabannya bukan apa

Utas komentar di bawah ini sudah memberikan beberapa gagasan, tetapi saya harus menjelaskan di sini. Jawabannya bukan karena salah satu mendukung EFI dengan benar. Pertanyaan ini bertujuan untuk mencari tahu lebih banyak tentang alasan mendasar, bukan hanya dukungan EFI.

Katakanlah, jika ini harus ditanyakan dengan cara lain yaitu "Mengapa GRUB dan SYSLINUX digunakan dalam gambar ISO?" maka ini mungkin memberikan jawaban seperti, "GRUB disertakan untuk mendukung sistem yang mampu EFI dan SYSLINUX selalu disertakan dan bekerja pada sistem khusus BIOS" - yang bukan maksud saya.

Saya harus mengakui bahwa dukungan EFI kemungkinan merupakan bagian dari jawabannya.

Namun, saya merasa bahwa itu bukan satu-satunya jawaban. Pasti ada lebih dari sekadar dukungan EFI, yang membuat Ubuntu memasukkan dua bootloader ke gambar ISO mereka, ya? Atau, apakah benar-benar dukungan EFI menjadi satu-satunya perbedaan? Bantu saya menjawab ini, jika ada.

clearkimura
sumber
Animasi progres titik harus datang dalam kedua kasus, dengan asumsi tidak ada yang salah dengan grafik. Dan mengapa Anda mengatakan Live CD dan Live USB dalam huruf tebal, ketika perbedaannya adalah antara gambar UEFI 64-bit dan gambar lainnya? Apakah Anda mencoba gambar UEFI dalam CD dan mendapatkan Syslinux?
muru
Itu akan meningkatkan kebingungan, karena GRUB hanya digunakan oleh 64-bit image pendukung UEFI, dan bukan oleh yang lain. Saya akan menyarankan cara lain: jatuhkan kata-kata "live CD / USB" dan tetap dengan gambar yang Anda gunakan, karena di situlah letak perbedaannya.
muru
1
Oke, ganti kata kunci yang sesuai: Live CD -> ISO image 32-bit; Live USB -> image ISO 64-bit.
clearkimura
Syslinux adalah boot loader BIOS. Digunakan untuk versi 32 & 64 bit pada partisi yang diformat FAT32. Ini adalah boot loader tipe Windows untuk BIOS saja. Grub2 hanya digunakan dengan boot UEFI. Mereka mungkin bisa menggunakan grub2 dengan BIOS tetapi selalu lebih besar sekarang, dan secara historis mereka telah menggunakan syslinux. Tidak yakin secara spesifik mengapa. Beberapa keuntungan kecil untuk boot loader yang berbeda sehingga Anda tahu ke mana Anda boot, UEFI atau BIOS.
oldfred
@oldfred Filesystem ISO image adalah ISO9660 dan bukan FAT32. Syslinux tampaknya bekerja pada mesin yang didukung EFI juga, jadi mengapa masih menggunakan Syslinux dan Grub?
clearkimura

Jawaban:

14

Ini adalah jawaban terakhir saya, yang didasarkan pada informasi yang ditemukan dengan mencocokkan kata kunci dalam 2000+ halaman dalam daftar ini di Wiki Ubuntu . Apa yang saya temukan adalah catatan tanggal pengembangan dan spesifikasi Ubuntu (baca: kata, kata, kata), sehingga saya butuh waktu untuk mencapai jawaban ini.

Ops, penamaan yang salah

Untuk mulai dengan, penamaan boot loader harus diklarifikasi:

  • Nama dengan huruf besar semua merujuk ke boot loader (mis. GRUB, SYSLINUX)

  • Nama dengan huruf kapital ditulis mengacu pada nama proyek atau, beberapa atau semua varian keluarga pemuat boot (mis. Syslinux)

  • Secara khusus, 'Syslinux' adalah kumpulan boot loader yang mencakup 'SYSLINUX', 'ISOLINUX', 'EXTLINUX' dan 'PXELINUX'

Setelah konvensi penamaan , pertanyaannya sebenarnya mengacu pada "ISOLINUX" untuk "bootloader" tanpa Torsi El Torito, bukan "SYSLINUX". Mungkin yang terakhir digunakan secara bergantian dengan yang lama di masa lalu. Lupakan saja.

Sejarah Singkat

2005: ISOLINUX dipilih untuk boot loader CD Ubuntu, bukan GRUB.

GRUB telah diusulkan sebelumnya sebagai bootloader pengganti yang mungkin, tetapi pendekatan ini dicoba dalam CD live Warty di mana kami mengamati regresi signifikan dalam kemampuan boot versus CD instal yang menggunakan ISOLINUX. Kami merasa bahwa berpegang pada solusi berdasarkan ISOLINUX adalah pendekatan yang paling tepat untuk rilis jangka panjang yang didukung.

- dari CdBootloader - Wiki Ubuntu

2006: gfxboot telah ditambahkan; Ini mendukung informasi yang dikutip pada 2010.

Di Dapper, kami menambahkan gfxboot ke gambar amd64 dan i386 CD kami, menyediakan menu boot grafis yang ramah sebagai hal pertama yang dilihat pengguna saat mem-boot gambar CD Ubuntu pada arsitektur tersebut [...]

- dari PortableGfxboot - Wiki Ubuntu

2009: ISOLINUX (dicatat sebagai SYSLINUX) masih digunakan untuk mem-boot CD Ubuntu.

CD live Ubuntu masih bisa boot menggunakan SYSLINUX, yang tidak termasuk dukungan untuk memulai kernel dalam mode grafis. Ini berarti bahwa live CDs menampilkan menu boot grafis, kemudian beralih kembali ke mode teks untuk memulai kernel, dan kemudian biasanya akan kembali ke mode grafis nanti. Akibatnya, CD live saat ini akan berkedip lebih dari sistem yang diinstal normal pada saat boot.

- dari BootGraphicsArchitecture - Ubuntu Wiki

2010: ISOLINUX telah digunakan, tetapi GRUB 2 diperlukan untuk dukungan UEFI.

CD Ubuntu saat ini menggunakan ISOLINUX, dengan ekstensi gfxboot dari SuSE yang mengimplementasikan menu grafis.

Ini terbukti agak sulit dipertahankan, dengan hanya satu orang di Ubuntu yang memahami kode tema yang terlibat [...]

[Sejak] GRUB 2 baru-baru ini menambahkan dukungan menu grafis ke hulu, pindah ke yang berpotensi mengurangi beban pemeliharaan kami. Tampaknya kita tetap harus menggunakan GRUB 2 untuk mendukung EFI, dan harus mengkonfigurasi dua bootloader yang berbeda pada CD kami tidak diinginkan.

- dari FoundationsTeam / Specs / MaverickCDBoot - Wiki Ubuntu

Berdasarkan yayasan-m-grub2-boot-framebuffer, kita perlu melihat kemampuan kita untuk mendukung menu boot grafis di EFI. GRUB memiliki beberapa tingkat dukungan untuk grafis UGA dan GOP.

Ini memerlukan penggunaan GRUB untuk boot CD, atau setidaknya memiliki konfigurasi minimum untuk mendukungnya [...]

- dari FoundationsTeam / Specs / MaverickUefiSupport - Wiki Ubuntu

Perbedaan ditemukan atau tidak

Mengikuti sejarah singkat, kami sekarang memahami bahwa:

  • ISOLINUX lebih disukai karena GRUB memiliki regresi saat itu (2005)

  • ISOLINUX masih disukai meskipun kurangnya dukungan untuk memulai kernel dalam mode grafis yang menyebabkan kedipan selama transisi boot (2009)

  • ISOLINUX telah digunakan dengan gfxboot untuk menyediakan menu grafis, yang tidak diimplementasikan atau tidak dimungkinkan dengan GRUB saat itu (2010)

  • GRUB telah ditambahkan kemudian untuk boot dengan dukungan UEFI sejak Maverick (pasca-2010)

Kemudian, saya menyadari bahwa bukan perbedaan antara GRUB dan SYSLINUX yang membuat CD live Ubuntu menyertakan dua boot loader.

Alasan mendasar

Dari bacaan saya, fakta-fakta pendukung ini sebenarnya mengisyaratkan bahwa:

  1. Ubuntu live CD telah menggunakan boot loader tertentu yang memiliki dukungan lebih baik untuk menyediakan menu dan tema grafis, dan transisi yang lancar untuk menampilkan boot splash. Dalam hal ini, SYSLINUX (tepatnya ISOLINUX).

  2. Ketika sistem UEFI menjadi semakin umum, maka hanya Ubuntu yang menyertakan GRUB (tepatnya GRUB 2) di live CD Ubuntu untuk boot dengan dukungan UEFI.

Di atas semua itu, saya percaya ini menjawab pertanyaan yang saya miliki selama lebih dari satu tahun dan jawaban ini akhirnya mengesampingkan keingintahuan saya.

TL; DR GRUB dan ISOLINUX keduanya digunakan dalam live CD Ubuntu untuk alasan eksklusif; Keduanya dimasukkan dalam live CD untuk pengalaman booting yang lebih baik dan dukungan perangkat keras.

clearkimura
sumber
Penelitian yang bagus. Info tentang grub sebelum sekitar 2009/10 dengan Ubuntu adalah grub legacy. Ubuntu kemudian beralih ke grub2 sebagai default-nya. Saya tidak berpikir grub legacy kemudian bekerja dengan UEFI, walaupun banyak fitur untuk mendapatkan grub legacy untuk bekerja dengan sistem yang lebih baru sering dilakukan oleh distribusi.
oldfred
6

Ini adalah jawaban awal saya, yang membuat sebagian dari pertanyaan saya dipahami lebih baik tetapi masih tidak menjawab pertanyaan itu sendiri.

Beberapa klarifikasi di bawah ini:

  • Tidak seperti gambar ISO 32-bit, gambar ISO 64-bit sebenarnya termasuk GRUB dan SYSLINUX (ini dikonfirmasi oleh /boot/grubdan /isolinuxdirektori keduanya ditemukan dalam gambar ISO)
  • GRUB ditampilkan ketika gambar ISO di-boot pada mesin yang mampu EFI.
  • SYSLINUX ditampilkan ketika image ISO di-boot pada mesin khusus BIOS.
  • Plymouth menangani animasi progres titik, terlepas dari GRUB atau SYSLINUX ditampilkan (ini ditunjukkan dengan benar oleh @muru dalam komentar pertama)

Pengalaman boot : Saya menulis "mampu-EFI" karena bahkan mesin saya telah mengimplementasikan EFI, saya telah mematikan fitur "Boot Aman" (1,2) untuk mem-boot Ubuntu (Xubuntu 14,04 dalam kasus saya) dari Live USB.

  1. Xubuntu 14.04 Rilis 64-bit dapat melakukan booting saat Secure Boot dinyalakan, setelah diinstal ke disk lokal (bukan Live USB).

  2. Xubuntu 16.04 64-bit release dapat melakukan boot ketika Secure Boot dihidupkan.

Mencoba metode : Alih-alih mencoba dengan media DVD fisik dan boot dari drive optik eksternal, saya telah menggunakan perangkat lunak virtualisasi (VirtualBox 4.3 dalam kasus saya) sebagai gantinya untuk membuktikan kasus di atas.

  • VirtualBox 4.3 sudah memiliki opsi untuk beralih antara EFI dan sistem BIOS, dapat ditemukan di bawah Mesin> Pengaturan> Sistem> Motherboard - Fitur lanjutan: Aktifkan EFI (hanya OS khusus) . Secara default, opsi tidak dicentang (3).

  • Mesin virtual harus dibuat menggunakan VirtualBox versi 64-bit, berjalan pada sistem host 64-bit. Gambar ISO Xubuntu 14.04 64-bit digunakan dalam upaya saya berikut ini.

  • Upaya pertama: Saya menjalankan image ISO dengan pengaturan default (ini mengasumsikan sistem BIOS). Mesin virtual akan menampilkan latar belakang ungu dengan ikon di bagian bawah. Ini adalah SYSLINUX .

  • Upaya kedua: Saya menutup mesin dan pergi ke pengaturan, memeriksa opsi (3) untuk mengaktifkan EFI. Menggunakan gambar ISO yang sama, saya memulai mesin virtual lagi. Kali ini, perlu waktu hingga ditampilkan GNU GRUB version...dengan teks monokrom. Ini GRUB .

  • Dalam kedua upaya tersebut, melanjutkan proses booting akan menunjukkan animasi titik kemajuan saat booting.

  • Bagian halaman ini di Wiki Ubuntu telah menyertakan tangkapan layar untuk menjelaskan dua kasus di atas.

Penafian : Jawaban ini bermaksud untuk mengklarifikasi pengalaman booting dan metode yang dicoba. Namun, ini bukan jawaban akhir untuk pertanyaan saya. Jawaban akhir akan diposting secara terpisah, jika saya berhasil menjawab sendiri pertanyaan itu.

clearkimura
sumber
Terima kasih atas informasi ini! Saya telah berhasil memulai boot dari usb hanya ketika menggunakan rufos .iso image yang membuat syslinux di boot, tetapi tidak dengan perintah "dd <iso>" - yang saya perhatikan tidak membuat syslinux. Masalahnya adalah bahwa ubuntu dari hdd memang memiliki grub. Jadi saya tidak mengerti, mengapa grub bekerja dengan hdd, tetapi tidak dengan usb.
ransh
@ transh Anda mungkin ingin memahami "metode mana yang menginstal bootloader" dan QA ini tidak membahasnya. Anda harus mengajukan pertanyaan Anda sebagai pertanyaan baru , karena komentar bukan untuk diskusi.
clearkimura