GRUB กับ SYSLINUX แตกต่างกันอย่างไร?


13

คำถามนี้เกี่ยวข้องกับการค้นพบของฉันว่า Ubuntu และตราสารอนุพันธ์นั้นใช้ทั้งbootloaders SYSLINUXและGRUBในอิมเมจ ISO สำหรับรุ่นเดสก์ท็อป

เมื่อทำการบูทจากอิมเมจ ISO แบบ 32 บิตได้มีการกล่าวว่าSYSLINUXจัดการกระบวนการบู๊ต (การบู๊ตซึ่งแสดงหน้าจอสแปลชที่สวยงาม

แต่เมื่อบูตจากภาพ ISO 64 บิต , ด้วงใช้แทน (หน้าจอสีดำและสีขาวชัดเจนแสดงGNU GRUB version...อยู่ด้านบนของหน้าจอ)

ดังนั้นเพื่อใช้คำถามของฉันใหม่ความแตกต่างที่ทำให้อูบุนตูใช้ GRUB และ SYSLINUX บนอิมเมจ ISO ของมันคืออะไร ทำไมไม่ใช้เพียงอันเดียวแทนล่ะ

สำหรับการชี้แจง

คำถามนี้ทำให้เกิดความสับสนอย่างใดเนื่องจากการขาดการชี้แจงและความพร้อมใช้งานของฮาร์ดแวร์ ฉันได้เพิ่มคำตอบนี้ (หรือเลื่อนลง) เพื่ออธิบายภาพ ISO 64- บิตได้ดียิ่งขึ้น

คำตอบอะไรไม่ได้

กระทู้ความคิดเห็นด้านล่างได้ให้แนวคิดบางอย่างแล้ว แต่ฉันควรทำให้ชัดเจนที่นี่ คำตอบนั้นไม่ใช่เพราะทั้งคู่รองรับ EFI อย่างถูกต้อง คำถามนี้มีวัตถุประสงค์เพื่อค้นหาเพิ่มเติมเกี่ยวกับเหตุผลพื้นฐานมากกว่าเพียงแค่การสนับสนุน EFI

บอกว่าถ้าเป็นเช่นนี้จะต้องถามด้วยวิธีอื่นเช่น "ทำไมจึงต้องใช้ทั้ง GRUB และ SYSLINUX ในอิมเมจ ISO?" สิ่งนี้อาจให้คำตอบเช่น "GRUB รวมอยู่ในการสนับสนุนระบบที่มีความสามารถของ EFI และ SYSLINUX รวมอยู่เสมอและทำงานบนระบบที่ใช้ BIOS เท่านั้น" - ซึ่งไม่ใช่ความตั้งใจของฉัน

ฉันต้องยอมรับว่าการสนับสนุน EFI น่าจะเป็นส่วนหนึ่งของคำตอบ

อย่างไรก็ตามฉันรู้สึกว่ามันไม่ควรเป็นสิ่งเดียวในคำตอบ ต้องมีมากกว่าการสนับสนุนของ EFI ซึ่งทำให้ Ubuntu รวม bootloaders สองตัวไว้ในอิมเมจ ISO ใช่หรือไม่ หรือว่าจริง ๆ แล้วการสนับสนุน EFI นั้นแตกต่างกันหรือไม่? ช่วยฉันตอบคำถามนี้ถ้ามี


ภาพเคลื่อนไหวความคืบหน้าของจุดควรมาในทั้งสองกรณีสมมติว่าไม่มีอะไรผิดปกติกับกราฟิก และทำไมคุณถึงพูดว่า Live CD และ Live USB เป็นตัวหนาเมื่อความแตกต่างอยู่ระหว่างรูปภาพ UEFI 64 บิตและรูปภาพอื่น คุณลองรูป UEFI ในซีดีและรับ Syslinux หรือไม่
muru

สิ่งนี้จะเพิ่มความสับสนเนื่องจาก GRUB ใช้งานโดยอิมเมจที่สนับสนุน UEFI แบบ 64 บิตเท่านั้นไม่ใช่แบบอื่น ฉันขอแนะนำวิธีอื่น ๆ : วางข้อความ "live CD / USB" และเพียงแค่ยึดภาพที่คุณใช้เพราะนั่นคือสิ่งที่แตกต่าง
muru

1
ตกลงแทนที่คำหลักตามนั้น: Live CD -> อิมเมจ ISO แบบ 32 บิต; Live USB -> อิมเมจ ISO 64 บิต
clearkimura

Syslinux เป็นตัวบูตไบออส ใช้สำหรับทั้งรุ่น 32 และ 64 บิตบนพาร์ติชันที่จัดรูปแบบ FAT32 เป็นบูตโหลดเดอร์ชนิด Windows สำหรับ BIOS เท่านั้น Grub2 ใช้กับการบู๊ต UEFI เท่านั้น พวกเขาอาจจะใช้ grub2 กับไบออส แต่ตอนนี้มันมีขนาดใหญ่กว่าเสมอและในอดีตพวกเขาใช้ syslinux ไม่แน่ใจว่าทำไมเป็นพิเศษ ข้อได้เปรียบเล็กน้อยสำหรับบูตโฮเดอร์ที่แตกต่างกันเพื่อให้คุณทราบว่าคุณกำลังบูทอะไร UEFI หรือ BIOS
oldfred

@oldfred ระบบไฟล์ของอิมเมจ ISO คือ ISO9660 และไม่ใช่ FAT32 Syslinux ใช้งานได้กับเครื่องที่รองรับ EFI ด้วยเหตุใดจึงยังคงใช้ทั้ง Syslinux และ Grub
clearkimura

คำตอบ:


14

นี่คือคำตอบสุดท้ายของฉันซึ่งอยู่บนพื้นฐานของข้อมูลที่พบได้โดยการจับคู่คำหลักภายใน 2000 + หน้าในรายชื่อนี้บน Ubuntu วิกิพีเดีย สิ่งที่ฉันพบคือบันทึกของการพัฒนาและข้อกำหนดของ Ubuntu (อ่าน: คำ, คำ, คำ) ดังนั้นฉันจึงใช้เวลาพอสมควรในการตอบคำถามนี้

Ops การตั้งชื่อผิด

เพื่อเริ่มต้นด้วยการตั้งชื่อของ boot loader จะต้องชี้แจง:

  • ชื่อที่มีตัวอักษรทั้งหมดเป็นตัวอักษรหมายถึงบูตโหลดเดอร์ (เช่น GRUB, SYSLINUX)

  • ชื่อที่มีอักษรตัวพิมพ์ใหญ่อ้างอิงถึงชื่อโปรเจ็กต์หรือหลายรุ่นหรือทั้งหมดของตระกูลบูตเดอร์ (เช่น Syslinux)

  • โดยเฉพาะอย่างยิ่ง 'Syslinux' คือชุดของตัวโหลดบูตซึ่งรวมถึง 'SYSLINUX', 'ISOLINUX', 'EXTLINUX' และ 'PXELINUX'

ต่อไปนี้การประชุมการตั้งชื่อคำถามที่เป็นจริงหมายถึง "ISOLINUX" สำหรับ "เอลโทริโต้ไม่มีการแข่งขัน" bootloader, ไม่ "syslinux" บางทีหลังถูกใช้แทนกันกับอดีตในวันเก่า ไม่เป็นไรแล้ว

ประวัติโดยย่อ

2005: ISOLINUX ได้รับเลือกสำหรับ Ubuntu CD boot loader แทนที่จะเป็น GRUB

GRUB ได้รับการแนะนำก่อนหน้านี้ว่าเป็นบูตโหลดเดอร์ทดแทนที่เป็นไปได้ แต่วิธีนี้ถูกลองใช้ใน Warty live CD ที่เราสังเกตเห็นการถดถอยที่สำคัญในความสามารถในการบูตเมื่อเทียบกับ ISOLINUX ที่ใช้ CD ติดตั้ง เรารู้สึกว่าการผสานกับโซลูชันบนพื้นฐานของ ISOLINUX เป็นแนวทางที่เหมาะสมที่สุดสำหรับการเปิดตัวในระยะยาว

- จากCdBootloader - Ubuntu Wiki

2006: เพิ่ม gfxboot แล้ว สนับสนุนข้อมูลที่ยกมาในปี 2010

ใน Dapper เราได้เพิ่ม gfxboot ลงในอิมเมจ amd64 และ i386 CD ของเรานำเสนอเมนูบูตกราฟิกที่เป็นมิตรซึ่งเป็นสิ่งแรกที่ผู้ใช้เห็นเมื่อทำการบูตอิมเมจซีดี Ubuntu บนสถาปัตยกรรมเหล่านั้น [... ]

- จากPortableGfxboot - Ubuntu Wiki

2009: ISOLINUX (บันทึกเป็น SYSLINUX) ยังคงใช้สำหรับการบูต Ubuntu CD

อูบุนตูไลฟ์ซีดียังคงบูตโดยใช้ SYSLINUX ซึ่งไม่รองรับการเริ่มเคอร์เนลในโหมดกราฟิก ซึ่งหมายความว่าซีดีสดแสดงเมนูการบูตกราฟิกจากนั้นสลับกลับไปที่โหมดข้อความเพื่อเริ่มเคอร์เนลและจากนั้นจะสลับกลับไปที่โหมดกราฟิกในภายหลัง เป็นผลให้ซีดีที่ใช้งานอยู่ในปัจจุบันจะสั่นมากกว่าระบบที่ติดตั้งปกติในเวลาบูต

- จากBootGraphicsAr Architecture - Ubuntu Wiki

2010: ISOLINUX ถูกนำมาใช้ แต่ GRUB 2 เป็นสิ่งจำเป็นสำหรับการสนับสนุน UEFI

ซีดี Ubuntu ปัจจุบันใช้ ISOLINUX พร้อมกับส่วนขยาย gfxboot จาก SuSE ที่ใช้เมนูกราฟิก

สิ่งนี้ได้รับการพิสูจน์แล้วว่าค่อนข้างยากที่จะรักษาด้วยเพียงคนเดียวในอูบุนตูที่เข้าใจรหัสชุดรูปแบบที่เกี่ยวข้อง [... ]

[เนื่องจาก] GRUB 2 เพิ่งเพิ่มการสนับสนุนเมนูกราฟิกลงในทวนน้ำการย้ายไปยังสิ่งนั้นมีโอกาสลดภาระการบำรุงรักษา ดูเหมือนว่าเราจะต้องใช้ GRUB 2 ต่อไปเพื่อสนับสนุน EFI และการกำหนดค่าบูตโหลดเดอร์ที่แตกต่างกันสองตัวบนซีดีของเราจะไม่เป็นที่พึงปรารถนา

- จากมูลนิธิทีม / รายละเอียด / MaverickCDBoot - Ubuntu Wiki

ตามรากฐาน -m-grub2-boot-framebuffer เราจะต้องพิจารณาความสามารถของเราในการสนับสนุนเมนูบูตกราฟิกใน EFI GRUB มีการรองรับกราฟิก UGA และ GOP ในระดับหนึ่ง

จำเป็นต้องใช้ GRUB สำหรับการบูตซีดีหรืออย่างน้อยต้องมีการกำหนดค่าขั้นต่ำเปล่าเพื่อรองรับ [... ]

- จากมูลนิธิทีม / รายละเอียด / MaverickUefiSupport - Ubuntu Wiki

พบความแตกต่างหรือไม่

ตามประวัติโดยย่อตอนนี้เราเข้าใจว่า:

  • ISOLINUX เป็นที่ต้องการเนื่องจาก GRUB มีการถดถอยตั้งแต่นั้นมา (2005)

  • ISOLINUX ยังคงเป็นที่ต้องการแม้จะไม่ได้รับการสนับสนุนสำหรับการเริ่มต้นเคอร์เนลในโหมดกราฟิกที่ทำให้เกิดการกะพริบในระหว่างการเปลี่ยนบูต (2009)

  • ISOLINUX ถูกนำมาใช้กับ gfxboot เพื่อจัดทำเมนูกราฟิกซึ่งไม่สามารถนำมาใช้หรือไม่สามารถทำได้ด้วย GRUB ตั้งแต่นั้นมา (2010)

  • GRUB ได้รับการเพิ่มในภายหลังเพื่อบูตด้วยการสนับสนุน UEFI ตั้งแต่ไม่ฝักใฝ่ฝ่ายใด (โพสต์ -2553)

จากนั้นฉันก็รู้ว่ามันไม่แตกต่างกันระหว่าง GRUB และ SYSLINUX ที่ทำให้อูบุนตูไลฟ์ซีดีมีบูตโหลดเดอร์สองตัว

เหตุผลพื้นฐาน

จากการอ่านของฉันข้อเท็จจริงสนับสนุนเหล่านี้บอกเป็นนัยว่า:

  1. อูบุนตูไลฟ์ซีดีกำลังใช้บูตโหลดเดอร์โดยเฉพาะที่ได้รับการสนับสนุนที่ดีกว่าในการนำเสนอเมนูกราฟิกและชุดรูปแบบและการเปลี่ยนผ่านอย่างราบรื่นเพื่อแสดงบูตสาด ในกรณีนี้ SYSLINUX (ISOLINUX แม่นยำ)

  2. เมื่อระบบของ UEFI เป็นที่แพร่หลายมากขึ้นอูบุนตูจึงได้รวม GRUB (อย่างแม่นยำ GRUB 2) ไว้ใน Ubuntu live CD เพื่อบูตด้วยการรองรับ UEFI

เหนือสิ่งอื่นใดฉันเชื่อว่านี่เป็นคำตอบของคำถามที่ฉันมีมานานกว่าหนึ่งปีและในที่สุดคำตอบนี้ก็ทำให้ความอยากรู้อยากเห็นของฉันหยุดนิ่ง

TL; DR GRUB และ ISOLINUX ถูกใช้ใน Ubuntu live CD ด้วยเหตุผลพิเศษ; ทั้งสองอย่างรวมอยู่ในไลฟ์ซีดีเพื่อประสบการณ์การบู๊ตที่ดีขึ้น


การวิจัยที่ดี ข้อมูลเกี่ยวกับด้วงก่อนประมาณ 2009/10 กับ Ubuntu เป็นด้วงแบบดั้งเดิม Ubuntu จะเปลี่ยนเป็น grub2 เป็นค่าเริ่มต้น ฉันไม่คิดว่ามรดกด้วงนั้นทำงานกับ UEFI แม้ว่าคุณสมบัติหลายอย่างที่จะได้รับมรดกด้วงในการทำงานกับระบบที่ใหม่กว่านั้นมักจะทำโดยการกระจาย
oldfred

6

นี่คือคำตอบเบื้องต้นของฉันที่ทำให้บางส่วนของคำถามของฉันเข้าใจได้ดีขึ้น แต่ก็ยังไม่ตอบคำถามนั้นเอง

คำอธิบายบางอย่างด้านล่าง:

  • ไม่เหมือนอิมเมจ ISO 32 บิตอิมเมจ ISO 64- บิตนั้นรวมทั้ง GRUB และ SYSLINUX (ซึ่งได้รับการยืนยันโดย/boot/grubและ/isolinuxไดเรคทอรี่ทั้งสองจะพบในอิมเมจ ISO)
  • GRUB จะปรากฏขึ้นเมื่ออิมเมจ ISO ถูกบู๊ตบนเครื่องที่ใช้งานกับ EFI ได้
  • SYSLINUX จะปรากฏขึ้นเมื่อบูตอิมเมจ ISO บนเครื่องที่มี BIOS เท่านั้น
  • พลีมั ธ จัดการกับอนิเมชั่นดอทคอมเมิร์ซโดยไม่คำนึงถึง GRUB หรือ SYSLINUX แสดงขึ้นมา (นี่เป็นคำใบ้ที่ถูกต้องโดย @muru ในความคิดเห็นแรก)

ประสบการณ์การบูต : ฉันเขียนว่า "สามารถใช้งาน EFI ได้" เพราะแม้เครื่องของฉันยังใช้งาน EFI ได้ฉันก็ปิดคุณลักษณะ "Secure Boot" (1,2) เพื่อบูต Ubuntu (Xubuntu 14.04 ในกรณีของฉัน) จาก Live USB

  1. Xubuntu 14.04 รุ่น 64 บิตสามารถบูตได้ในขณะที่เปิดใช้งาน Secure Boot หลังจากติดตั้งลงในดิสก์ภายในเครื่อง (ไม่ใช่ Live USB)

  2. Xubuntu 16.04 รุ่น 64 บิตสามารถบู๊ตได้ในขณะที่เปิดใช้งาน Secure Boot

วิธีการที่พยายาม : แทนที่จะลองใช้สื่อบันทึก DVD จริงและบูตจากไดรฟ์ออปติคัลไดรฟ์ภายนอกฉันได้ใช้ซอฟต์แวร์การจำลองเสมือน (VirtualBox 4.3 ในกรณีของฉัน) แทนการพิสูจน์กรณีข้างต้น

  • VirtualBox 4.3 แล้วมีตัวเลือกในการสลับไปมาระหว่าง EFI และ BIOS ระบบที่สามารถพบได้ในเครื่อง> การตั้งค่า> ระบบ> เมนบอร์ด - คุณสมบัติขยาย: เปิดใช้งาน EFI (ระบบปฏิบัติการพิเศษเท่านั้น) โดยค่าเริ่มต้นตัวเลือกจะถูกตรวจสอบ (3)

  • ต้องสร้างเครื่องเสมือนโดยใช้ VirtualBox เวอร์ชัน 64 บิตที่รันบนระบบโฮสต์ 64 บิต มีการใช้อิมเมจ ISO Xubuntu 14.04 64 บิตในความพยายามของฉันต่อไปนี้

  • ความพยายามครั้งแรก: ฉันรันภาพ ISO ด้วยการตั้งค่าเริ่มต้น (ซึ่งถือว่าเป็นระบบ BIOS) เครื่องเสมือนจะแสดงพื้นหลังสีม่วงพร้อมไอคอนที่ด้านล่าง นี่คือsyslinux

  • ความพยายามครั้งที่สอง: ฉันปิดเครื่องและไปที่การตั้งค่าตรวจสอบตัวเลือก (3) เพื่อเปิดใช้งาน EFI ด้วยการใช้อิมเมจ ISO เดียวกันฉันเริ่มเครื่องเสมือนอีกครั้ง เวลานี้ใช้เวลาสักครู่จนกว่าจะแสดงGNU GRUB version...ด้วยข้อความขาวดำ นี่คือด้วง

  • ในความพยายามทั้งสองขั้นตอนการดำเนินการบู๊ตจะแสดงความคืบหน้าของจุดแอนิเมชั่นขณะบู๊ต

  • ส่วนนี้ของหน้าบน Ubuntu Wiki ได้รวมภาพหน้าจอเพื่ออธิบายสองกรณีข้างต้น

คำเตือน : คำตอบนี้มุ่งที่จะชี้แจงประสบการณ์การบูตและวิธีลอง อย่างไรก็ตามนี่ไม่ใช่คำตอบสุดท้ายสำหรับคำถามของฉัน คำตอบสุดท้ายจะโพสต์แยกต่างหากถ้าฉันจัดการเพื่อตอบคำถามด้วยตนเอง


ขอบคุณสำหรับข้อมูลนี้! ฉันมีการจัดการเพื่อเริ่มการบูตจาก usb เฉพาะเมื่อใช้ rufos ภาพ. isis ซึ่งสร้าง syslinux ในการบูต แต่ไม่ใช่ด้วยคำสั่ง "dd <iso>" ซึ่งฉันสังเกตเห็นว่ามันไม่ได้สร้าง syslinux สิ่งนั้นคืออูบุนตูจาก hdd มีด้วง ดังนั้นฉันจึงไม่เข้าใจว่าทำไมด้วงทำงานกับ hdd แต่ไม่ได้กับ usb
ransh

@ransh คุณอาจต้องการเข้าใจ "วิธีการติดตั้งซึ่ง bootloader" และ QA นี้ไม่ได้อยู่ที่ คุณควรถามคำถามใหม่ของคุณเนื่องจากความคิดเห็นไม่ใช่เพื่อการสนทนา
clearkimura
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.