Sự khác biệt giữa GRUB và SYSLINUX là gì?


13

Câu hỏi này liên quan đến phát hiện của tôi rằng Ubuntu và công cụ phái sinh của nó sử dụng cả bộ tải khởi động SYSLINUXGRUB trên các hình ảnh ISO cho các bản phát hành Máy tính để bàn .

Khi khởi động từ hình ảnh ISO 32 bit , người ta nói rằng SYSLINUX xử lý quá trình khởi động (khởi động hiển thị màn hình giật gân đẹp mắt, với hình ảnh động tiến trình).

Nhưng khi khởi động từ hình ảnh ISO 64 bit , GRUB được sử dụng thay thế (màn hình đen trắng, hiển thị rõ GNU GRUB version...trên đỉnh màn hình).

Do đó, để viết lại câu hỏi của tôi, sự khác biệt nào đã khiến Ubuntu sử dụng GRUB và SYSLINUX trên các hình ảnh ISO của nó? Tại sao không chỉ sử dụng một trong hai thay thế?

Để làm rõ

Câu hỏi này đã gây nhầm lẫn bằng cách nào đó do tôi không làm rõ và có sẵn phần cứng. Tôi đã thêm câu trả lời này (hoặc cuộn xuống) để giải thích rõ hơn về hình ảnh ISO 64 bit.

Câu trả lời là gì

Các chủ đề bình luận dưới đây đã đưa ra một số ý tưởng, nhưng tôi phải làm rõ ở đây. Câu trả lời không phải là vì một trong hai hỗ trợ EFI đúng cách. Câu hỏi này nhằm tìm hiểu thêm về các lý do cơ bản, thay vì chỉ hỗ trợ EFI.

Nói, nếu điều này được hỏi theo cách khác, tức là "Tại sao cả GRUB và SYSLINUX đều được sử dụng trong ảnh ISO?" sau đó, điều này có thể đưa ra câu trả lời như: "GRUB được bao gồm để hỗ trợ các hệ thống có khả năng EFI và SYSLINUX luôn được đưa vào và hoạt động trên các hệ thống chỉ có BIOS" - đó không phải là ý định của tôi.

Tôi phải thừa nhận rằng hỗ trợ EFI có thể là một phần của câu trả lời.

Tuy nhiên, tôi cảm thấy rằng đó không phải là điều duy nhất trong câu trả lời. Phải có nhiều hơn chỉ là hỗ trợ EFI, điều này khiến Ubuntu phải bao gồm hai bộ tải khởi động trong ảnh ISO của họ, đúng không? Hoặc, nó thực sự là hỗ trợ EFI là sự khác biệt duy nhất? Giúp tôi trả lời điều này, nếu có.


Hoạt hình chấm tiến triển sẽ xuất hiện trong cả hai trường hợp, giả sử không có gì sai với đồ họa. Và tại sao bạn lại nói Live CD và Live USB in đậm, khi sự khác biệt là giữa hình ảnh UEFI 64 bit và các hình ảnh khác? Bạn đã thử hình ảnh UEFI trong CD và nhận Syslinux chưa?
muru

Điều đó sẽ làm tăng sự nhầm lẫn, vì GRUB chỉ được sử dụng bởi hình ảnh hỗ trợ UEFI 64 bit, chứ không phải bởi những hình ảnh khác. Tôi sẽ đề xuất một cách khác: bỏ từ ngữ "CD / USB trực tiếp" và chỉ gắn bó với những hình ảnh bạn đã sử dụng, bởi vì đó là nơi khác biệt.
muru

1
Được rồi, thay thế các từ khóa tương ứng: CD trực tiếp -> hình ảnh ISO 32 bit; USB trực tiếp -> hình ảnh ISO 64 bit.
Clearkimura

Syslinux là một bộ tải khởi động BIOS. Được sử dụng cho cả phiên bản 32 & 64 bit trên các phân vùng được định dạng FAT32. Nó là một bộ tải khởi động kiểu Windows chỉ dành cho BIOS. Grub2 chỉ được sử dụng với khởi động UEFI. Họ có thể có thể sử dụng grub2 với BIOS nhưng nó luôn lớn hơn và trong lịch sử họ đã sử dụng syslinux. Không chắc chắn cụ thể tại sao. Một số lợi thế nhỏ cho các bộ tải khởi động khác nhau để bạn biết cách khởi động, UEFI hoặc BIOS.
oldfred

@oldfred Hệ thống tập tin của hình ảnh ISO là ISO9660 và không phải là FAT32. Syslinux rõ ràng cũng hoạt động trên máy được hỗ trợ EFI, vậy tại sao vẫn sử dụng cả Syslinux và Grub?
Clearkimura 24/07/2015

Câu trả lời:


14

Đây là câu trả lời cuối cùng của tôi, dựa trên thông tin được tìm thấy bằng cách kết hợp từ khóa trong hơn 2000 trang trong danh sách này trên Ubuntu Wiki . Những gì tôi tìm thấy là ghi chú ngày phát triển và thông số kỹ thuật của Ubuntu (đọc: từ, từ, từ), vì vậy tôi phải mất một thời gian để đạt được câu trả lời này.

Ops, đặt tên sai

Để bắt đầu, việc đặt tên cho bộ tải khởi động phải được làm rõ:

  • Tên có tất cả các chữ cái viết hoa đề cập đến bộ tải khởi động (ví dụ GRUB, SYSLINUX)

  • Tên với chữ cái đầu được viết hoa đề cập đến tên dự án hoặc, một số hoặc tất cả các biến thể của họ bộ tải khởi động (ví dụ: Syslinux)

  • Cụ thể, 'Syslinux' là tập hợp các bộ tải khởi động bao gồm 'SYSLINUX', 'ISOLINUX', 'EXTLINEUX' và 'PXELINUX'

Theo quy ước đặt tên , câu hỏi thực sự đề cập đến "ISOLINUX" cho bộ tải khởi động "El Torito không giả lập", không phải là "SYSLINUX". Có lẽ cái sau được sử dụng thay thế cho cái trước trong ngày xưa. Đừng bận tâm.

Tóm tắt lịch sử

2005: ISOLINUX được chọn cho bộ tải khởi động Ubuntu CD, thay vì GRUB.

GRUB đã được đề xuất trước đây như là một bộ tải khởi động thay thế có thể, nhưng phương pháp này đã được thử trong CD trực tiếp Warty nơi chúng tôi quan sát thấy sự hồi quy đáng kể về khả năng khởi động so với CD cài đặt sử dụng ISOLINUX. Chúng tôi cảm thấy rằng gắn bó với các giải pháp dựa trên ISOLINUX là cách tiếp cận phù hợp nhất để phát hành được hỗ trợ lâu dài.

- từ CdBootloader - Ubuntu Wiki

2006: gfxboot đã được thêm vào; Điều này hỗ trợ thông tin trích dẫn trong năm 2010.

Trong Dapper, chúng tôi đã thêm gfxboot vào hình ảnh CD amd64 và i386 của chúng tôi, cung cấp menu khởi động đồ họa thân thiện như điều đầu tiên người dùng nhìn thấy khi khởi động hình ảnh CD Ubuntu trên các kiến ​​trúc đó [...]

- từ PortableGfxboot - Ubuntu Wiki

2009: ISOLINUX (được ghi chú là SYSLINUX) vẫn được sử dụng để khởi động Ubuntu CD.

Các đĩa CD trực tiếp Ubuntu vẫn khởi động bằng SYSLINUX, không bao gồm hỗ trợ khởi động kernel trong chế độ đồ họa. Điều này có nghĩa là các đĩa CD trực tiếp hiển thị menu khởi động đồ họa, sau đó chuyển về chế độ văn bản để khởi động kernel và sau đó sẽ thường quay lại chế độ đồ họa sau đó. Do đó, các đĩa CD trực tiếp hiện sẽ nhấp nháy nhiều hơn các hệ thống được cài đặt bình thường vào thời điểm khởi động.

- từ BootGraphicsArch architecture - Ubuntu Wiki

2010: ISOLINUX đã được sử dụng, nhưng GRUB 2 là cần thiết cho hỗ trợ UEFI.

Các đĩa CD Ubuntu hiện tại sử dụng ISOLINUX, với các phần mở rộng gfxboot từ SuSE thực hiện các menu đồ họa.

Điều này đã được chứng minh là khá khó để duy trì, chỉ có một người trong Ubuntu hiểu được mã chủ đề liên quan [...]

[Kể từ khi] GRUB 2 gần đây có hỗ trợ menu đồ họa được thêm vào nó, việc chuyển sang đó có khả năng giảm tải bảo trì của chúng tôi. Dường như chúng ta sẽ cần sử dụng GRUB 2 để hỗ trợ EFI và việc phải cấu hình hai bộ tải khởi động khác nhau trên đĩa CD của chúng tôi là điều không mong muốn.

- từ FoundationsTeam / Thông số kỹ thuật / MaverickCDBoot - Ubuntu Wiki

Căn cứ vào nền tảng-m-grub2-boot-framebuffer, chúng ta sẽ cần xem xét khả năng hỗ trợ các menu khởi động đồ họa trong EFI. GRUB có một số mức hỗ trợ cho đồ họa UGA và GOP.

Điều này yêu cầu sử dụng GRUB để khởi động CD hoặc ít nhất là có cấu hình tối thiểu để hỗ trợ nó [...]

- từ FoundationsTeam / Specs / MaverickUefiSupport - Ubuntu Wiki

Sự khác biệt được tìm thấy hay không

Theo lịch sử ngắn gọn, bây giờ chúng tôi hiểu rằng:

  • ISOLINUX được ưa thích do GRUB có hồi quy hồi đó (2005)

  • ISOLINUX vẫn được ưa thích mặc dù thiếu hỗ trợ để khởi động kernel trong chế độ đồ họa gây ra hiện tượng nhấp nháy trong quá trình chuyển đổi khởi động (2009)

  • ISOLINUX đã được sử dụng với gfxboot để cung cấp menu đồ họa, điều này không được triển khai hoặc không thể thực hiện được với GRUB trước đó (2010)

  • GRUB đã được thêm vào sau để khởi động với sự hỗ trợ của UEFI kể từ Maverick (sau năm 2010)

Sau đó, tôi nhận ra rằng đó không phải là sự khác biệt giữa GRUB và SYSLINUX đã tạo ra đĩa CD trực tiếp Ubuntu bao gồm hai bộ tải khởi động.

Lý do cơ bản

Từ đọc của tôi, những sự thật hỗ trợ này thực sự gợi ý rằng:

  1. Ubuntu live CD đã và đang sử dụng trình tải khởi động cụ thể có hỗ trợ tốt hơn để cung cấp menu và chủ đề đồ họa và chuyển tiếp mượt mà để hiển thị giật gân khởi động. Trong trường hợp này, SYSLINUX (chính xác là ISOLINUX).

  2. Khi các hệ thống UEFI ngày càng trở nên phổ biến, thì chỉ Ubuntu đã bao gồm GRUB (chính xác là GRUB 2) trong CD trực tiếp Ubuntu để khởi động với sự hỗ trợ của UEFI.

Trên tất cả, tôi tin rằng câu trả lời này cho câu hỏi mà tôi đã có hơn một năm và câu trả lời này cuối cùng đã khiến tôi tò mò muốn nghỉ ngơi.

TL; DR GRUB và ISOLINUX đều được sử dụng trong Ubuntu live CD vì những lý do độc quyền; Cả hai đều được bao gồm trong CD trực tiếp để có trải nghiệm khởi động tốt hơn và hỗ trợ phần cứng.


Nghiên cứu tốt. Thông tin về grub trước khoảng 2009/10 với Ubuntu là di sản grub. Ubuntu sau đó chuyển sang grub2 làm mặc định. Tôi không nghĩ rằng di sản grub sau đó đã làm việc với UEFI, mặc dù nhiều tính năng để có được di sản grub hoạt động với các hệ thống mới hơn thường được thực hiện bởi một bản phân phối.
oldfred

6

Đây là câu trả lời sơ bộ của tôi, điều đó làm cho một phần câu hỏi của tôi được hiểu rõ hơn nhưng vẫn không trả lời được câu hỏi.

Một số làm rõ dưới đây:

  • Không giống như hình ảnh ISO 32 bit, hình ảnh ISO 64 bit thực sự bao gồm cả GRUB và SYSLINUX (điều này được xác nhận bởi /boot/grubvà các /isolinuxthư mục đều được tìm thấy trong hình ảnh ISO)
  • GRUB được hiển thị khi hình ảnh ISO được khởi động trên máy có khả năng EFI.
  • SYSLINUX được hiển thị khi hình ảnh ISO được khởi động trên máy chỉ có BIOS.
  • Plymouth xử lý hoạt ảnh chấm tiến trình, bất kể GRUB hay SYSLINUX được hiển thị (điều này đã được @muru gợi ý chính xác trong bình luận đầu tiên)

Trải nghiệm khởi động : Tôi đã viết "Có khả năng EFI" vì ngay cả máy của tôi đã triển khai EFI, tôi đã tắt tính năng "Khởi động an toàn" (1,2) để khởi động Ubuntu (Xubfox 14.04 trong trường hợp của tôi) từ Live USB.

  1. Bản phát hành Xubfox 14.04 64 bit có thể khởi động trong khi Secure Boot được bật, sau khi được cài đặt vào đĩa cục bộ (không phải USB trực tiếp).

  2. Bản phát hành Xubfox 16.04 64 bit có thể khởi động trong khi Secure Boot được bật.

Phương pháp thử : Thay vì thử với phương tiện DVD vật lý và khởi động từ ổ đĩa quang ngoài, tôi đã sử dụng phần mềm ảo hóa (VirtualBox 4.3 trong trường hợp của tôi) thay vì để chứng minh các trường hợp trên.

  • VirtualBox 4.3 đã có tùy chọn để chuyển đổi giữa hệ thống EFI và BIOS, có thể được tìm thấy trong Máy> Cài đặt> Hệ thống> Bo mạch chủ - Tính năng mở rộng: Chỉ bật EFI (chỉ dành cho hệ điều hành) . Theo mặc định, tùy chọn này không được chọn (3).

  • Phải tạo một máy ảo bằng phiên bản VirtualBox 64 bit, chạy trên hệ thống máy chủ 64 bit. Hình ảnh ISO 64 bit Xubfox 14.04 được sử dụng trong các lần thử sau của tôi.

  • Lần thử đầu tiên: Tôi đã chạy hình ảnh ISO với các cài đặt mặc định (điều này giả định là một hệ thống BIOS). Máy ảo sẽ hiển thị nền màu tím với các biểu tượng ở phía dưới. Đây là SYSLINUX .

  • Lần thử thứ hai: Tôi đóng máy và đi đến cài đặt, kiểm tra tùy chọn (3) để bật EFI. Sử dụng cùng một hình ảnh ISO, tôi khởi động lại máy ảo. Lần này, phải mất một thời gian cho đến khi nó hiển thị GNU GRUB version...với văn bản đơn sắc. Đây là GRUB .

  • Trong cả hai lần thử, quá trình khởi động sẽ hiển thị tiến trình chấm hoạt hình trong khi khởi động.

  • Phần này của trang trên Ubuntu Wiki đã bao gồm các ảnh chụp màn hình để mô tả hai trường hợp trên.

Disclaimer : Câu trả lời này có ý định làm rõ trải nghiệm khởi động và phương pháp đã thử. Tuy nhiên, đây không phải là câu trả lời cuối cùng cho câu hỏi của tôi. Câu trả lời cuối cùng sẽ được đăng riêng, nếu tôi có thể tự trả lời câu hỏi.


Cảm ơn thông tin này! Tôi đã quản lý để chỉ khởi động từ usb khi sử dụng rufos hình ảnh .iso đã tạo syslinux khi khởi động, nhưng không phải bằng lệnh "dd <iso>" - mà tôi nhận thấy rằng nó không tạo ra syslinux. Có điều là Ubuntu từ hdd không có grub. Vì vậy, tôi không hiểu, tại sao grub hoạt động với hdd, nhưng không phải với usb.
tiền chuộc

@ransh Bạn có thể muốn hiểu "phương thức nào cài đặt bộ tải khởi động nào" và QA này không giải quyết điều đó. Bạn nên hỏi bạn như câu hỏi mới , vì bình luận không phải để thảo luận.
Clearkimura
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.