Khác biệt giữa bản sửa đổi của “GRUB”

Bách khoa toàn thư mở Wikipedia
Nội dung được xóa Nội dung được thêm vào
Không có tóm lược sửa đổi
Không có tóm lược sửa đổi
Dòng 41: Dòng 41:
'''GNU GRUB''' (viết tắt của '''GNU GRand Unified Bootloader''' được gọi phổ biến là '''GRUB''') là một [[boot loader]] được phát triển bởi dự án [[GNU]]. GRUB là một [[Cài đặt tham khảo|cài đặt mẫu]] của [[Multiboot Specification]] của [[Quỹ Phần mềm Tự do]] (FSF), cung cấp cho người dùng một lựa chọn  cho phép khởi động một trong nhiều [[hệ điều hành]] được cài trên một máy tính hoặc lựa chọn một cấu hình [[hạt nhân máy tính|hạt nhân]] cụ thể có sẵn trên các phân vùng của một hệ điều hành cụ thể.
'''GNU GRUB''' (viết tắt của '''GNU GRand Unified Bootloader''' được gọi phổ biến là '''GRUB''') là một [[boot loader]] được phát triển bởi dự án [[GNU]]. GRUB là một [[Cài đặt tham khảo|cài đặt mẫu]] của [[Multiboot Specification]] của [[Quỹ Phần mềm Tự do]] (FSF), cung cấp cho người dùng một lựa chọn  cho phép khởi động một trong nhiều [[hệ điều hành]] được cài trên một máy tính hoặc lựa chọn một cấu hình [[hạt nhân máy tính|hạt nhân]] cụ thể có sẵn trên các phân vùng của một hệ điều hành cụ thể.


GNU GRUB được phát triển từ một gói phần mềm được gọi là ''Grand Unified Bootloader'' (dựa trên [[Lý thuyết thống nhất lớn]]<ref>[http://searchenterpriselinux.techtarget.com/definition/GRUB-GRand-Unified-Bootloader EnterpriseLinux.com Definitions] Definition of GRand Unified Bootloader</ref>). nó được sử dụng chủ yếu cho các hệ thống [[tương tự Unix]]. [[GNU|Hệ điều hành GNU]] sử dụng GNU GRUB làm trình khởi động mặc định, cũng như hầu hết các [[bản phân phối Linux]]. Hệ điều hành [[Solaris (hệ đièu hành)|Solaris]] cũng đã dùng GRUB làm trình khởi động trên các hệ thống [[x86]], bắt đầu từ phiên bản Solaris 10 1/06.
GNU GRUB được phát triển từ một gói phần mềm được gọi là ''Grand Unified Bootloader'' (dựa trên [[Lý thuyết thống nhất lớn]]<ref>[http://searchenterpriselinux.techtarget.com/definition/GRUB-GRand-Unified-Bootloader EnterpriseLinux.com Definitions] Definition of GRand Unified Bootloader</ref>). nó được sử dụng chủ yếu cho các hệ thống [[tương tự Unix]]. [[GNU|Hệ điều hành GNU]] sử dụng GNU GRUB làm trình khởi động mặc định, cũng như hầu hết các [[bản phân phối Linux]]. Hệ điều hành [[Solaris (hệ điều hành)|Solaris]] đã dùng GRUB làm trình khởi động trên các hệ thống [[x86]], bắt đầu từ phiên bản Solaris 10 1/06.


== Tính năng ==
== Tính năng ==
Dòng 87: Dòng 87:
* '''Stage 2''': file thuộc ''stage 2'' đều được lưu trữ trong thư mục <code>/boot/grub</code>  một thư mục con của thư mục  <code>/boot</code> quy định bởi Filesystem Hierarchy Standard (FHS).
* '''Stage 2''': file thuộc ''stage 2'' đều được lưu trữ trong thư mục <code>/boot/grub</code>  một thư mục con của thư mục  <code>/boot</code> quy định bởi Filesystem Hierarchy Standard (FHS).
==Lịch sử==
==Lịch sử==
GRUB was initially developed by Erich Boleyn as part of work on booting the [[operating system]] [[GNU]]/[[GNU Hurd|Hurd]], developed by the [[Free Software Foundation]].<ref name="history">[https://www.gnu.org/software/grub/manual/html_node/History.html GRUB Manual – 1.2 Grub History]. Gnu.org (2012-06-23). Retrieved on 2012-12-01.</ref> In 1999, Gordon Matzigkeit and Yoshinori K. Okuji made GRUB an official software package of the [[GNU Project]] and opened the [[software development process|development process]] to the public.<ref name="history"/> {{As of|2014}}, the majority of Linux distributions have adopted GNU GRUB&nbsp;2, as well as other systems such as Sony's [[PlayStation&nbsp;4]].<ref>{{cite web
GRUB ban đầu được phát triển bởi Erich Boleyn như một phần của hệ thống khởi động [[hệ điều hành]] [[GNU]]/[[GNU Hurd|Hurd]], phát triển bởi [[Free Software Foundation]].<ref name="history">[https://www.gnu.org/software/grub/manual/html_node/History.html GRUB Manual – 1.2 Grub History]. Gnu.org (2012-06-23). Retrieved on 2012-12-01.</ref> Năm 1999, Gordon Matzigkeit Yoshinori K. Okuji đã đưa GRUB trở thành gói phần mềm chính thức của [[GNU Project]] mở rộng quá trình phát triển cho công chúng.<ref name="history"/> {{As of|2014}}, phần lớn các bản phân phối Linux đã sử dụng GRUB 2, cũng như các hệ thống khác như [[PlayStation&nbsp;4]] của SONY.<ref>{{cite web
| url = http://www.extremetech.com/gaming/159476-ps4-runs-orbis-os-a-modified-version-of-freebsd-thats-similar-to-linux
| url = http://www.extremetech.com/gaming/159476-ps4-runs-orbis-os-a-modified-version-of-freebsd-thats-similar-to-linux
| title = PS4 runs Orbis OS, a modified version of FreeBSD that's similar to Linux
| title = PS4 runs Orbis OS, a modified version of FreeBSD that's similar to Linux
Dòng 95: Dòng 95:


===Phát triển===
===Phát triển===
GRUB version 1 (also known as "GRUB Legacy") is no longer under development and is being phased out.<ref>[https://www.gnu.org/software/grub/grub-legacy.html GNU GRUB – GRUB Legacy]. Gnu.org. Retrieved on 2012-12-01.</ref> The GNU GRUB developers have switched their focus to GRUB&nbsp;2,<ref>{{cite web |url=https://www.gnu.org/software/grub/grub-2.en.html |title=GNU GRUB – GRUB 2 |accessdate=2014-04-18 |url-status=bot: unknown |archiveurl=https://web.archive.org/web/20080607115918/https://www.gnu.org/software/grub/grub-2.en.html |archivedate=June 7, 2008 |df=mdy-all}}.</ref> a [[rewrite (programming)|complete rewrite]] with goals including making GNU GRUB cleaner, more robust, more portable and more powerful. GRUB&nbsp;2 started under the name '''PUPA'''. PUPA was supported by the Information-technology Promotion Agency (IPA) in Japan. PUPA was integrated into GRUB&nbsp;2 development around 2002, when GRUB version 0.9x was renamed GRUB Legacy.
GRUB phiên bản 1 (còn được gọi là "GRUB Legacy") không còn được phát triển đang bị loại bỏ dần.<ref>[https://www.gnu.org/software/grub/grub-legacy.html GNU GRUB – GRUB Legacy]. Gnu.org. Retrieved on 2012-12-01.</ref> Các nhà phát triển GNU GRUB đã chuyển trọng tâm sang GRUB&nbsp;2,<ref>{{cite web |url=https://www.gnu.org/software/grub/grub-2.en.html |title=GNU GRUB – GRUB 2 |accessdate=2014-04-18 |url-status=bot: unknown |archiveurl=https://web.archive.org/web/20080607115918/https://www.gnu.org/software/grub/grub-2.en.html |archivedate=June 7, 2008 |df=mdy-all}}.</ref> một bản viết lại hoàn chỉnh với các mục tiêu bao gồm làm cho GNU GRUB sạch hơn, mạnh mẽ hơn, di động hơn mạnh mẽ hơn. GRUB&nbsp;2 được bắt đầu với tên gọi '''PUPA'''. PUPA được hỗ trợ bởi Information-technology Promotion Agency (IPA) tại Nhật Bản. PUPA được tích hợp vào quá trình phát triển GRUB&nbsp;2 khoảng năm 2002, khi GRUB phiên bản 0.9x được đổi tên thành GRUB Legacy.


Some of the goals of the GRUB&nbsp;2 project include support for non-x86 [[Platform (computing)|platforms]], [[internationalization and localization]], non-ASCII characters, dynamic modules, [[memory management]], a scripting [[mini-language]], migrating platform specific (x86) code to platform specific modules, and an object-oriented framework. GNU GRUB version 2.00 was officially released on June 26, 2012.<ref>{{cite mailing list |url=http://lists.gnu.org/archive/html/grub-devel/2012-06/msg00093.html |title=GRUB 2.00 released |date=June 28, 2012 |accessdate=December 1, 2012 |mailinglist= grub-devel |first=Vladimir |last=Serbinenko}}</ref><ref>{{cite web|last=Larabel|first=Michael|title=GRUB 2.00 Boot-Loader Officially Released|url=https://www.phoronix.com/scan.php?page=news_item&px=MTEyODc|website=Phoronix.com|accessdate=28 June 2012}}</ref>
Một số mục tiêu của dự án GRUB 2 bao gồm hỗ trợ cho các [[Nền tảng máy tính|nền tảng]] không phải x86, [[Toàn cầu hóa|quốc tế hóa]] và [[bản địa hóa]], các ký tự không phải ASCII, mô-đun động, quản lý bộ nhớ, một [[ngôn ngữ script]] mini, [[Porting|Port]] nền tảng cụ thể (x86) sang các mô-đun cụ thể của nền tảng, một khung hướng đối tượng. GNU GRUB v2.00 chính thức được phát hành vào ngày 26 tháng 6 năm 2012.<ref>{{cite mailing list |url=http://lists.gnu.org/archive/html/grub-devel/2012-06/msg00093.html |title=GRUB 2.00 released |date=June 28, 2012 |accessdate=December 1, 2012 |mailinglist= grub-devel |first=Vladimir |last=Serbinenko}}</ref><ref>{{cite web|last=Larabel|first=Michael|title=GRUB 2.00 Boot-Loader Officially Released|url=https://www.phoronix.com/scan.php?page=news_item&px=MTEyODc|website=Phoronix.com|accessdate=28 June 2012}}</ref>


Three of the most widely used [[Linux distributions]] use GRUB&nbsp;2 as their mainstream boot loader.<ref>{{cite web |url=http://www.webjunction.org/documents/webjunction/An_Introduction_to_Ubuntu.html |title=An Introduction to Ubuntu |last=Haddon |first=Tom |date=26 January 2012 |publisher=WebJunction |accessdate=21 September 2012 |url-status=dead |archiveurl=https://web.archive.org/web/20121028160701/http://www.webjunction.org/documents/webjunction/An_Introduction_to_Ubuntu.html |archivedate=October 28, 2012 |df=mdy-all}}</ref><ref>{{cite web |url=http://www.techopedia.com/definition/15777/red-hat-enterprise-linux-rhel |title=What is Red Hat Enterprise Linux (RHEL)? |last=Janssen |first=Cory |publisher=Technopedia |accessdate=21 September 2012}}</ref><ref>{{cite web |url=http://www.itwire.com/business-it-news/open-source/56686-suse-chief-lists-progress-since-privatisation |title=SUSE chief lists progress since privatisation |last=Varghese |first=Sam |date=2012-09-20|accessdate=21 September 2012}}</ref> [[Ubuntu (operating system)|Ubuntu]] adopted it as the default boot loader in its 9.10 version of October 2009.<ref>{{cite web|title=9.10 Karmic GRUB version|url=http://distrowatch.com/table.php?distribution=ubuntu|publisher=Distrowatch.com|accessdate=8 July 2012}}</ref> [[Fedora (operating system)|Fedora]] followed suit with Fedora 16 released in November 2011.<ref>[http://fedoraproject.org/wiki/GRUB_2 GRUB 2]. FedoraProject. Retrieved on 2012-12-01.</ref> [[OpenSUSE]] adopted GRUB&nbsp;2 as the default boot loader with its 12.2 release of September 2012.<ref>[http://en.opensuse.org/openSUSE:Upcoming_features openSUSE:Upcoming features – openSUSE] {{webarchive|url=https://web.archive.org/web/20120920065446/http://en.opensuse.org/openSUSE%3AUpcoming_features |date=September 20, 2012}}. En.opensuse.org. Retrieved on 2012-12-01.</ref> [[Solaris (operating system)|Solaris]] also adopted GRUB 2 on the x86 platform in the Solaris&nbsp;11.1 release.<ref>[http://www.oracle.com/technetwork/server-storage/solaris11/overview/solaris11-1-1845817.html Solaris 11.1]. Oracle Retrieved 2015-03-19.</ref>
Ba trong số các [[bản phân phối Linux]] được sử dụng rộng rãi nhất sử dụng GRUB 2 làm boot loader chính của chúng.<ref>{{cite web |url=http://www.webjunction.org/documents/webjunction/An_Introduction_to_Ubuntu.html |title=An Introduction to Ubuntu |last=Haddon |first=Tom |date=26 January 2012 |publisher=WebJunction |accessdate=21 September 2012 |url-status=dead |archiveurl=https://web.archive.org/web/20121028160701/http://www.webjunction.org/documents/webjunction/An_Introduction_to_Ubuntu.html |archivedate=October 28, 2012 |df=mdy-all}}</ref><ref>{{cite web |url=http://www.techopedia.com/definition/15777/red-hat-enterprise-linux-rhel |title=What is Red Hat Enterprise Linux (RHEL)? |last=Janssen |first=Cory |publisher=Technopedia |accessdate=21 September 2012}}</ref><ref>{{cite web |url=http://www.itwire.com/business-it-news/open-source/56686-suse-chief-lists-progress-since-privatisation |title=SUSE chief lists progress since privatisation |last=Varghese |first=Sam |date=2012-09-20|accessdate=21 September 2012}}</ref> [[Ubuntu]] đã chấp nhận nó làm boot loader mặc định từ phiên bản 9.10 tháng 10 năm 2009.<ref>{{cite web|title=9.10 Karmic GRUB version|url=http://distrowatch.com/table.php?distribution=ubuntu|publisher=Distrowatch.com|accessdate=8 July 2012}}</ref> [[Fedora]] tiếp nối với Fedora 16 được phát hành vào tháng 11 năm 2011.<ref>[http://fedoraproject.org/wiki/GRUB_2 GRUB 2]. FedoraProject. Retrieved on 2012-12-01.</ref> [[OpenSUSE]] đã sử dụng GRUB 2 làm [[boot loader]] mặc định từ phiên bản 12.2 phát hành tháng 9 năm 2012.<ref>[http://en.opensuse.org/openSUSE:Upcoming_features openSUSE:Upcoming features – openSUSE] {{webarchive|url=https://web.archive.org/web/20120920065446/http://en.opensuse.org/openSUSE%3AUpcoming_features |date=September 20, 2012}}. En.opensuse.org. Retrieved on 2012-12-01.</ref> [[Solaris (hệ điều hành)|Solaris]] cũng đã áp dụng GRUB 2 trên nền tảng x86 trong bản phát hành Solaris&nbsp;11.1.<ref>[http://www.oracle.com/technetwork/server-storage/solaris11/overview/solaris11-1-1845817.html Solaris 11.1]. Oracle Retrieved 2015-03-19.</ref>


In late 2015, the exploit of pressing backspace 28 times to bypass the login password was found and quickly fixed.<ref>{{cite web |url=http://thehackernews.com/2015/12/hack-linux-grub-password.html |website=thehackernews.com |title=You can Hack into a Linux Computer just by pressing 'Backspace' 28 times |date=December 16, 2015 |first=Swati |last=Khandelwal}}</ref><ref>{{cite web |url=http://hmarco.org/bugs/CVE-2015-8370-Grub2-authentication-bypass.html#exploit |title=Back to 28: Grub2 Authentication 0-Day |first1=Hector |last1=Marco and |first2=Ismael |last2=Ripoll |date=December 2015}}</ref>
Cuối năm 2015, việc [[Exploit (an ninh mạng)|exploit]] nhấn phím [[backspace]] 28 lần để vượt qua mật khẩu đăng nhập đã được tìm thấy nhanh chóng được sửa.<ref>{{cite web |url=http://thehackernews.com/2015/12/hack-linux-grub-password.html |website=thehackernews.com |title=You can Hack into a Linux Computer just by pressing 'Backspace' 28 times |date=December 16, 2015 |first=Swati |last=Khandelwal}}</ref><ref>{{cite web |url=http://hmarco.org/bugs/CVE-2015-8370-Grub2-authentication-bypass.html#exploit |title=Back to 28: Grub2 Authentication 0-Day |first1=Hector |last1=Marco and |first2=Ismael |last2=Ripoll |date=December 2015}}</ref>


===Biến thể===
===Biến thể===
GNU GRUB là một [[phần mềm tự do nguồn mở]], vì vậy một số biến thể đã được tạo ra. Một số đáng chú ý, chưa được hợp nhất vào dòng chính GRUB:
GNU GRUB is [[free and open-source software]], so several variants have been created. Some notable ones, which have not been merged into GRUB mainline:
* [[OpenSolaris]] includes a modified GRUB Legacy that supports [[BSD disklabel]]s, automatic 64-bit kernel selection, and booting from [[ZFS]] (with [[Data compression|compression]] and multiple boot environments).<ref>[http://dlc.sun.com/osol/docs/content/SYSADV1/getov.html#fwbqs x86: Modifying Boot Behavior by Editing the GRUB Menu at Boot Time] {{webarchive|url=https://web.archive.org/web/20110719115732/http://dlc.sun.com/osol/docs/content/SYSADV1/getov.html |date=July 19, 2011}}, Modifying Solaris Boot Behavior on x86 Based Systems (Task Map) – System Administration Guide: Basic Administration</ref><ref>[http://docs.sun.com/app/docs/doc/819-2379/getnk?a=view x86: Supported GRUB Implementations] {{webarchive|url=https://web.archive.org/web/20091021160244/http://docs.sun.com/app/docs/doc/819-2379/getnk?a=view |date=October 21, 2009}}, (System Administration Guide: Basic Administration) – Sun Microsystems</ref>
* [[OpenSolaris]] bao gồm GRUB Legacy đã được sửa đổi hỗ trợ [[BSD disklabel]]s, lựa chọn hạt nhân 64-bit tự động khởi động từ [[ZFS]].<ref>[http://dlc.sun.com/osol/docs/content/SYSADV1/getov.html#fwbqs x86: Modifying Boot Behavior by Editing the GRUB Menu at Boot Time] {{webarchive|url=https://web.archive.org/web/20110719115732/http://dlc.sun.com/osol/docs/content/SYSADV1/getov.html |date=July 19, 2011}}, Modifying Solaris Boot Behavior on x86 Based Systems (Task Map) – System Administration Guide: Basic Administration</ref><ref>[http://docs.sun.com/app/docs/doc/819-2379/getnk?a=view x86: Supported GRUB Implementations] {{webarchive|url=https://web.archive.org/web/20091021160244/http://docs.sun.com/app/docs/doc/819-2379/getnk?a=view |date=October 21, 2009}}, (System Administration Guide: Basic Administration) – Sun Microsystems</ref>
* [[Google Summer of Code]] 2008 had a project to support GRUB legacy to boot from [[ext4]] formatted partitions.<ref>{{cite web
* [[Google Summer of Code]] 2008có một dự án hỗ trợt GRUB Legacy để khởi động từ các phân vùng có định dạng [[ext4]].<ref>{{cite web
| last = Peng
| last = Peng
| first = Tao
| first = Tao
Dòng 112: Dòng 112:
| url = https://code.google.com/archive/p/grub4ext4/
| url = https://code.google.com/archive/p/grub4ext4/
| accessdate = June 13, 2017}}</ref>
| accessdate = June 13, 2017}}</ref>
* The [[Syllable Desktop|Syllable]] project made a modified version of GRUB to load the system from its [[AtheOS File System]].<ref>[http://web.syllable.org/documentation/FAQ.html#2_3 2.3 Why does Syllable have its own version of GRUB?] {{webarchive|url=https://web.archive.org/web/20110107003333/http://web.syllable.org/documentation/FAQ.html |date=January 7, 2011}}, Syllable Documentation</ref>
* Dự án [[Syllable Desktop|Syllable]] đã tạo một phiên bản GRUB sửa đổi để khởi động hệ thống từ [[AtheOS File System]].<ref>[http://web.syllable.org/documentation/FAQ.html#2_3 2.3 Why does Syllable have its own version of GRUB?] {{webarchive|url=https://web.archive.org/web/20110107003333/http://web.syllable.org/documentation/FAQ.html |date=January 7, 2011}}, Syllable Documentation</ref>
* ''TrustedGRUB'' extends GRUB by implementing verification of the system integrity and boot process security, using the [[Trusted Platform Module]] (TPM).<ref>{{cite web
* ''TrustedGRUB'' mở rộng GRUB bằng cách triển khai xác minh tính toàn vẹn của hệ thống bảo mật quy trình khởi động, sử dụng [[Trusted Platform Module]] (TPM).<ref>{{cite web
| url = http://sourceforge.net/projects/trustedgrub/
| url = http://sourceforge.net/projects/trustedgrub/
| title = TrustedGRUB project
| title = TrustedGRUB project
| accessdate = November 18, 2014
| accessdate = November 18, 2014
| website = sourceforge.net}}</ref>
| website = sourceforge.net}}</ref>
* The Intel BIOS Implementation Test Suite (BITS) provides a GRUB environment for testing BIOSes and in particular their initialization of Intel processors, hardware, and technologies. BITS supports scripting via Python, and includes Python APIs to access various low-level functionality of the hardware platform, including ACPI, CPU and chipset registers, PCI, and PCI Express.<ref>[https://biosbits.org: BIOS Implementation Test Suite], Official BITS website</ref>
* Intel BIOS Implementation Test Suite (BITS) cung cấp môi trường GRUB để kiểm tra BIOS đặc biệt việc khởi tạo bộ xử lý, phần cứng và công nghệ Intel. BITS hỗ trợ tập lệnh qua Python bao gồm các API Python để truy cập các chức năng cấp thấp khác nhau của nền tảng phần cứng, bao gồm ACPI, thanh ghi CPU chipset, PCI PCI Express.<ref>[https://biosbits.org: BIOS Implementation Test Suite], Official BITS website</ref>
* GRUB4DOS was a now-defunct GRUB legacy fork that improves the installation experience on DOS and [[Microsoft Windows]] by putting everything besides the GRLDR config in one image file. It can be loaded by the [[Windows Boot Manager]].<ref>{{cite web |title=grub4dos |url=https://sites.google.com/site/grubdos/ |website=Google Site |accessdate=7 April 2019}}</ref><ref>{{cite web |title=GRUB for DOS Introduction |url=http://grub4dos.sourceforge.net/wiki/index.php/Grub4dos_tutorial |website=grub4dos.sourceforge.net |access-date=7 April 2019 |archive-url=https://web.archive.org/web/20190407042958/http://microsaint.narod.ru/_Info_Grub4Dos/Grub4dos_tutorial.html |archive-date=2 June 2008 |date=2007}}</ref>
* GRUB4DOS bản fork kế thừa của GRUB legacy hiện đã không còn tồn tại giúp cải thiện trải nghiệm cài đặt trên DOS Microsoft Windows bằng cách đặt mọi thứ ngoài cấu hình GRLDR vào một tệp hình ảnh. thể được tải bởi [[Windows Boot Manager]].<ref>{{cite web |title=grub4dos |url=https://sites.google.com/site/grubdos/ |website=Google Site |accessdate=7 April 2019}}</ref><ref>{{cite web |title=GRUB for DOS Introduction |url=http://grub4dos.sourceforge.net/wiki/index.php/Grub4dos_tutorial |website=grub4dos.sourceforge.net |access-date=7 April 2019 |archive-url=https://web.archive.org/web/20190407042958/http://microsaint.narod.ru/_Info_Grub4Dos/Grub4dos_tutorial.html |archive-date=2 June 2008 |date=2007}}</ref>


==Tiện ích==
==Tiện ích==


=== Công cụ cấu hình GRUB ===
===GRUB configuration tools===
[[File:StartUp-Manager.png|thumb|upright=0.9|[[StartUp-Manager]], a program used to configure GRUB]]
[[File:StartUp-Manager.png|thumb|upright=0.9|[[StartUp-Manager]], một chương trình được sử dụng để cấu hình GRUB]]


The setup tools in use by various distributions often include modules to set up GRUB. For example, [[YaST2]] on [[SUSE Linux]] and [[openSUSE]] distributions and [[Anaconda (installer)|Anaconda]] on [[Fedora (operating system)|Fedora]]/[[Red Hat Enterprise Linux|RHEL]] distributions. [[StartUp-Manager]] and GRUB Customizer are graphical configuration editors for Debian-based distributions. The development of StartUp-Manager stopped on 6 May 2011 after the lead developer cited personal reasons for not actively developing the program.<ref>{{Cite web|url=https://launchpad.net/startup-manager/+announcement/8300|title=StartUp-Manager is dead : StartUp-Manager|website=launchpad.net|language=en|access-date=2017-04-09}}</ref> GRUB Customizer is also available for Arch-based distributions.
Các công cụ thiết lập được các bản phân phối khác nhau sử dụng thường bao gồm các mô-đun để thiết lập. dụ, [[YaST2]] trên các bản phân phối [[Các bản phân phối SUSE Linux|SUSE Linux]] [[openSUSE]] [[Anaconda (phần mềm)|Anaconda]] trên trên các bản phân phối [[Fedora]]/[[Red Hat Enterprise Linux|RHEL]].[[StartUp-Manager]] GRUB Customizer các trình soạn thảo cấu hình đồ họa cho các bản phân phối dựa trên Debian. Việc phát triển StartUp-Manager đã dừng lại vào ngày 6 tháng 5 năm 2011 sau khi nhà phát triển chính viện do nhân không tích cực phát triển chương trình.<ref>{{Cite web|url=https://launchpad.net/startup-manager/+announcement/8300|title=StartUp-Manager is dead : StartUp-Manager|website=launchpad.net|language=en|access-date=2017-04-09}}</ref> GRUB Customizer cũng sẵn cho các bản phân phối dựa trên [[Arch Linux|Arch]].


For GRUB&nbsp;2 there are KDE Control Modules.<ref>[http://kde-apps.org/content/show.php/GRUB2+Bootloader+Editor?content=139643 GRUB2 Bootloader Editor]. Kde-apps.org (2012-06-18). Retrieved on 2012-12-01.</ref><ref>{{cite web|url=http://kde-apps.org/content/show.php/Grub2+Kcm?content=137886|title=Grub2 KCM|website=KDE-Apps.org|accessdate=2011-01-27}}</ref>
Đối với GRUB 2 KDE Control Modules.<ref>[http://kde-apps.org/content/show.php/GRUB2+Bootloader+Editor?content=139643 GRUB2 Bootloader Editor]. Kde-apps.org (2012-06-18). Retrieved on 2012-12-01.</ref><ref>{{cite web|url=http://kde-apps.org/content/show.php/Grub2+Kcm?content=137886|title=Grub2 KCM|website=KDE-Apps.org|accessdate=2011-01-27}}</ref>


GRLDR ICE is a tiny tool for modifying the default configuration of grldr file for GRUB4DOS.<ref>{{cite web|url=http://microsaint.narod.ru/_Info_Grub4Dos/Grub4dos_tutorial.html|title=Grub4dos tutorial|website=Narod.ru}}</ref>
GRLDR ICE một công cụ nhỏ để sửa đổi cấu hình mặc định của tệp grldr cho [[GRUB4DOS]].<ref>{{cite web|url=http://microsaint.narod.ru/_Info_Grub4Dos/Grub4dos_tutorial.html|title=Grub4dos tutorial|website=Narod.ru}}</ref>


=== Các tiện ích sửa chữa khởi động ===
===Boot repair utilities===
[[sourceforge:p/boot-repair/home/Home/|Boot-Repair]] is a simple graphical tool for recovering from frequent boot-related problems with GRUB and [[Microsoft Windows]] bootloader. This application is available under [[GNU General Public License|GNU GPL license]]. Boot-Repair can repair GRUB on multiple Linux distributions including, but not limited to, Debian, Ubuntu, [[Linux Mint|Mint]], Fedora, openSUSE, and [[Arch Linux]].[[File:GRUB customizer.png|thumb|212x212px|GRUB Customizer]]
[[sourceforge:p/boot-repair/home/Home/|Boot-Repair]] một công cụ đồ họa đơn giản để khôi phục các sự cố thường xuyên liên quan đến khởi động với GRUB [[Microsoft Windows]] bootloader. Ứng dụng này sẵn theo giấy phép [[Giấy phép Công cộng GNU|GNU GPL license]]. Boot-Repair thể sử lỗi GRUB trên nhiều bản phân phối Linux, bao gồm nhưng không giới hạn ở Debian, Ubuntu, [[Linux Mint|Mint]], Fedora, openSUSE, [[Arch Linux]].[[File:GRUB customizer.png|thumb|212x212px|GRUB Customizer]]


===Trình cài đặt cho Windows===
===Trình cài đặt cho Windows===
[[sourceforge:projects/grub2win|Grub2Win]] is a Windows open-source software package. It allows GNU GRUB to boot from a Windows directory. The setup program installs GNU GRUB version 2.04 to an NTFS partition. A Windows GUI application is then used to customize the GRUB boot menu, themes, UEFI boot order, scripts etc. All GNU GRUB scripts and commands are supported for both UEFI and legacy systems. Grub2Win can configure GRUB for multiboot of Windows, Ubuntu, openSuse, Fedora and many other Linux distributions. It is freely available under [[GNU General Public License|GNU GPL License]] at [[sourceforge:projects/grub2win|SourceForge]].
[[sourceforge:projects/grub2win|Grub2Win]] một gói phần mềm nguồn mở trên Windows. Nó cho phép GNU GRUB khởi động từ một thư mục Windows. Chương trình thiết lập cài đặt GNU GRUB v2.04 vào một phân vùng NTFS. Một ứng dụng Windows GUI sau đó được sử dụng để tùy chỉnh menu khởi động GRUB, chủ đề, thứ tự khởi động UEFI, tập lệnh, v.v. Tất cả các tập lệnh và lệnh GNU GRUB đều được hỗ trợ cho cả UEFI legacy. Grub2Win có thể cấu hình GRUB cho multiboot của Windows, Ubuntu, openSuse, Fedora nhiều bản phân phối Linux khác. được cung cấp miễn phí theo [[Giấy phép Công cộng GNU|GNU GPL License]] tại [[sourceforge:projects/grub2win|SourceForge]].


== Trình quản lý khởi động thay thế ==
==Alternative boot-managers==
Điểm mạnh của GRUB là có nhiều nền tảng, [[Hệ thống tập tin|hệ thống file]] và hệ điều hành được hỗ trợ, khiến nó trở thành lựa chọn mặc định cho các bản phân phối và hệ thống nhúng.
{{See also|Comparison of boot loaders}}


Tuy nhiên, có những trình quản lý khởi động được nhắm mục tiêu vào người dùng cuối mang lại trải nghiệm người dùng thân thiện hơn, bộ chọn hệ điều hành đồ họa và cấu hình đơn giản hơn:
The strength of GRUB is the wide range of supported platforms, file-systems, and operating systems, making it the default choice for distributions and embedded systems.
* [[rEFInd]] – Trình quản lý khởi động đồ họa kiểu [[Macintosh]], chỉ dành cho máy tính dựa trên [[UEFI]] (không hỗ trợ [[BIOS]]).
* [https://clover-wiki.zetam.org/Installation CloverEFI] – Trình quản lý khởi động đồ họa kiểu Macintosh dành cho máy tính chạy BIOS và UEFI. Giả lập UEFI với DUET được sửa đổi nhiều từ dự án TianoCore. Yêu cầu phân vùng được định dạng FAT ngay cả trên hệ thống BIOS. Như một lợi ích, nó có một trình điều khiển hệ thống tệp cơ bản trong khu vực khởi động phân vùng, tránh sự hư hỏng của GRUB 2nd, 3rd và lời nhắc GRUB Rescue nổi tiếng. Giao diện người dùng trông tương tự như rEFInd: cả hai đều kế thừa từ trình quản lý khởi động bị bỏ rơi [http://refit.sourceforge.net/ rEFIt].


Các lựa chọn thay thế không có đồ họa:
However, there are boot-managers targeted at the end user that gives more friendly user experience, graphical OS selector and simpler configuration:
* [[systemd-boot]] – Trình quản lý khởi động nhẹ, chỉ dành cho UEFI với menu bộ chọn hệ điều hành dựa trên văn bản.
* [[rEFInd]] – Macintosh-style graphical boot-manager, only for UEFI-based computers (BIOS not supported).
* [https://clover-wiki.zetam.org/Installation CloverEFI] – Macintosh-style graphical boot-manager for BIOS and UEFI-based computers. Emulates UEFI with a heavily modified [https://github.com/tianocore/tianocore.github.io/wiki/DuetPkg DUET] from the TianoCore project. Requires a FAT formatted partition even on BIOS systems. As a benefit, it has a basic filesystem driver in the partition boot sector, avoiding the brittleness of GRUB 2nd, 3rd stage and the infamous GRUB Rescue prompt. The user interface looks similar to rEFInd: both inherit from the abandoned boot-manager [http://refit.sourceforge.net/ rEFIt].

Non-graphical alternatives:
* [[systemd-boot]] – Light, UEFI-only boot-manager with text-based OS selector menu.


==Liên kết ngoài==
==Liên kết ngoài==
{{Wikibooks|GRUB Installation After Windows Installation}}
{{Wikibooks|GRUB Installation After Windows Installation}}


=== Hướng dẫn triển khai và khắc phục sự cố ===
===How-Tos and troubleshooting===
Wiki của các bản phân phối có nhiều giải pháp cho các vấn đề phổ biến và thiết lập tùy chỉnh có thể giúp bạn:
Distribution wikis have many solutions for common issues and custom setups that might help you:
* [https://wiki.archlinux.org/index.php/GRUB Arch Linux /GRUB]
* [https://wiki.archlinux.org/index.php/GRUB Arch Linux /GRUB]
* [https://help.ubuntu.com/community/Grub2#Links Ubuntu /Grub2] (also see Links at the bottom)
* [https://help.ubuntu.com/community/Grub2#Links Ubuntu /Grub2] (cũng xem Liên kết dưới cùng)
* [[fedora:GRUB 2|Fedora /GRUB_2]]
* [[fedora:GRUB 2|Fedora /GRUB_2]]
* [[gentoo:GRUB2|Gentoo /GRUB2]]
* [[gentoo:GRUB2|Gentoo /GRUB2]]
Dòng 162: Dòng 160:


===Tài liệu===
===Tài liệu===
* [https://www.gnu.org/software/grub/manual/grub/ GRUB manual] – most detailed documentation, including all commands
* [https://www.gnu.org/software/grub/manual/grub/ GRUB manual] – tài liệu chi tiết nhất, bao gồm tất cả các lệnh
* {{Official website}}
* {{Official website}}
* [https://web.archive.org/web/20101005232749/http://grub.enbug.org/ GRUB wiki archived in 2010]
* [https://web.archive.org/web/20101005232749/http://grub.enbug.org/ GRUB wiki archived in 2010]


=== Bài viết giới thiệu ===
===Introductory articles===
* [http://www.linuxjournal.com/article/4622 Boot with GRUB], an April 2001 article in [[Linux Journal]]
* [http://www.linuxjournal.com/article/4622 Boot with GRUB], một bài báo tháng 4 năm 2001 trên [[Linux Journal]]


===Tài liệu kỹ thuật===
===Technicalities===
* [http://moi.vonos.net/linux/Booting_Linux_on_x86_with_Grub2/ Booting Linux on x86 using Grub2] – in-depth article
* [http://moi.vonos.net/linux/Booting_Linux_on_x86_with_Grub2/ Booting Linux on x86 using Grub2] – bài viết chuyên sâu
* [[Unified Extensible Firmware Interface]] (UEFI firmware, common since 2012)
* [[Unified Extensible Firmware Interface]] (UEFI firmware, common since 2012)
* [[GUID Partition Table]] (GPT) – handles hard drives bigger than 2 [[TiB]] and more than 4 partitions
* [[GUID Partition Table]] (GPT) – handles hard drives bigger than 2 [[TiB]] and more than 4 partitions

Phiên bản lúc 14:24, ngày 19 tháng 8 năm 2020

GNU GRUB
Thiết kế bởiErich Boleyn
Phát triển bởiGNU Project
Phát hành lần đầu1995; 29 năm trước (1995)
Phiên bản ổn định
2.04 (GRUB 2) / 4 tháng 7 năm 2019; 4 năm trước (2019-07-04)[2]
Bản xem thử
2.04~rc1 (GRUB 2)[1] / 9 tháng 4 năm 2019; 5 năm trước (2019-04-09)
Kho mã nguồn
Viết bằngAssembly, C[3]
Hệ điều hànhLinux, macOS, BSD, Solaris (x86 port), va Windows (thong qua chainloading)
Nền tảngIA-32, x86-64, IA-64, ARM, PowerPC, s390x, MIPS va SPARC
Ngôn ngữ có sẵnĐa ngôn ngữ
Thể loạiBootloader
Giấy phépGPLv3[4]
Websitewww.gnu.org/software/grub/

GNU GRUB (viết tắt của GNU GRand Unified Bootloader được gọi phổ biến là GRUB) là một boot loader được phát triển bởi dự án GNU. GRUB là một cài đặt mẫu của Multiboot Specification của Quỹ Phần mềm Tự do (FSF), cung cấp cho người dùng một lựa chọn  cho phép khởi động một trong nhiều hệ điều hành được cài trên một máy tính hoặc lựa chọn một cấu hình hạt nhân cụ thể có sẵn trên các phân vùng của một hệ điều hành cụ thể.

GNU GRUB được phát triển từ một gói phần mềm được gọi là Grand Unified Bootloader (dựa trên Lý thuyết thống nhất lớn[5]). nó được sử dụng chủ yếu cho các hệ thống tương tự Unix. Hệ điều hành GNU sử dụng GNU GRUB làm trình khởi động mặc định, cũng như hầu hết các bản phân phối Linux. Hệ điều hành Solaris đã dùng GRUB làm trình khởi động trên các hệ thống x86, bắt đầu từ phiên bản Solaris 10 1/06.

Tính năng

Người dùng có thể tự động cấu hình các hệ thống con GRUB. GRUB nạp cấu hình của nó lúc khởi động, cho phép thay đổi thời gian khởi động, chẳng hạn như việc lựa chọn hạt nhân khác nhau hoặc đĩa RAM ban đầu. Để kết thúc, GRUB cung cấp một giao diện dòng lệnh đơn giản, tương tự bash,cho phép người dùng viết các trình tự khởi động mới một cách nhanh chóng, ngoài các danh sách thực đơn bình thường.

GRUB có tính cơ động cao. Nó hỗ trợ nhiều định dạng thực thi. Nó hỗ trợ tất cả các hệ thống tập tin Unix thường được sử dụng, hệ thống tập tin FATNTFS của Windows, và logical block addressing (LBA, hay dịch theo tiếng Việt là phép gán mác khối dữ liệu). GRUB cho phép người dùng xem nội dung của tập tin trên bất kỳ hệ thống tập tin được hỗ trợ.

GRUB có thể tải ảnh khởi động của hệ điều hành từ mạng, do đó nó hỗ trợ các hệ thống không có ổ cứng. Nó cũng hỗ trợ giải nén tự động của các hình ảnh khởi động trước khi khởi động chúng. GRUB hỗ trợ các hệ điều hành mà không hỗ trợ đa khởi động, bằng cách sử dụng chuỗi tải. Nó sử dụng hai hoặc ba dòng của chuỗi lệnh để khởi động bất kỳ hệ thống DOS, Windows, Linux, BSD hay Solaris, làm cho nó rất dễ dàng để làm việc với nó. Chuỗi tải hỗ trợ các hệ điều hành tương tự Unix cũng đã tích hợp trong GRUB.

GRUB có thể được sử dụng với nhiều giao diện người dùng. Hầu hết các bản phân phối Linux tận dụng sự hỗ trợ của GRUB cho một giao diện đồ họa để cung cấp một trình đơn khởi động tùy chỉnh với một hình ảnh nền. Một sửa đổi giao diện văn bản của GRUB có thể sử dụng một liên kết nối tiếp để một thiết bị đầu cuối từ xa có thể truy cập vào các bộ nạp khởi động.

GRUB dùng một màn hình cuộn để lựa chọn hệ điều hành khởi động. Điều này có nghĩa là 150 hoặc nhiều sự lựa chọn khởi động hơn có thể dễ dàng kiểm soát bởi GRUB bằng cách thêm chúng vào tập tin cấu hình grub.cfg. Các phím mũi tên được sử dụng để chọn hệ điều hành để khởi động. Ngoài giao diện menu bình thường, GRUB cũng cung cấp một giao diện dòng lệnh tương tự bash cung cấp nhiều tập lệnh để người dùng có thể xem hoặc sửa đổi bất kỳ một phần nào của quá trình khởi động. Với công cụ này ai cũng có thể mà không cần nhiều kiến thức về những thành phần được cài trên máy tính, dùng GRUB từ một số thiết bị mở rộng như đĩa mềm, USB hay một đĩa CD-ROM để khởi động và cài đặt hệ điều hành

Hoạt động

GNU GRUB trên một ở cứng phân vùng theo MBR; stage 1 (boot.img) một cách khác có thể được viết thành một trong những VBR.
GNU GRUB trên một ở cứng phân vùng theo GPT

Khởi động

Khi một máy tính được bật, BIOS của máy tính sẽ tìm thiết bị được cấu hình khởi động chính (thường là ổ cứng) tải và thực thi chương trình bootstrap đầu tiên từ master boot record (MBR). MBR là những sector đầu tiên của ổ cứng, với số 0 là offset của nó(các sector bắt đầu đếm từ 0). Trong một thời gian dài, kích thước của sector là 512 byte, nhưng từ năm 2009 có nhiều ổ cứng có kích thước một sector là 4096 byte, được gọi là ổ cứng Advanced Format. Tính đến tháng 10/2013, những ổ cứng như thế vẫn được truy cập những sector 512-byte, bằng cách sử dung mô phỏng 512e.[6]

Boot record MBR legacy hỗ trợ tối đa 4 phân vùng primary và chiếm 64 byte. Cùng với tùy chọn chữ ký đĩa (4 byte) và nhãn đĩa (6 byte), chuỗi dữ liệu này chiếm từ 434 đến 446 byte mã máy của boot loader. Mặc dù một kích thước nhỏ có thể chứa đủ một boot loader đơn giản,[7] nó không đủ lớn để chứa một boot loader hỗ trợ một hệ thống tập tin lớn và phức tạp, menu điều khiển các lựa chọn khởi động hệ thống là ví dụ. Boot loader với footprints lớn hơn do đó được chia thành nhiều phần, nơi những phần nhỏ nhất được tích hợp bên trong MBR, trong khi những phần lớn hơn chứa trong các khu vực khác (ví dụ,trong một sector trống ở giữa MBR phân vùng đầu tiên) và được gọi đến bởi mã MBR của boot loader.

Ảnh nhân hệ điều hành trong phần lớn các trường hợp các tập tin nằm trên hệ thống tập tin thích hợp, nhưng các khái niệm về một hệ thống tập tin là không biết đến BIOS. Vì vậy,trong các hệ thống dựa trên BIOS,nhiệm vụ của boot loader là để truy cập vào nội dung của các tập tin, vì vậy nó có thể đọc từ đĩa cứng, nạp vào bộ nhớ RAM và thực hiện.

Một trong những phương pháp tiếp cận có thể cho boot loader là tải trực tiếp các ảnh của hạt nhân từ các sector ổ cứng đang sử dụng bởi hình ảnh thực tế hạt nhân, mà không có sự hiểu biết cơ bản hệ thống tập tin.  Thông thường, cấp bổ sung gián tiếp là cần thiết, ở dạng bản đồ hoặc các bản đồ tập tin – các file phụ trợ có chứa một danh sách các sector vật lý đang sử dụng bởi ảnh hạt nhân, cung cấp thông tin cho boot loader về nơi có thể tìm thấy những sector cơ sở của nhân hệ thống. Các bản đồ này cần được cập nhật mỗi lần nhân hệ thống bị thay đổi, ví dụ như nâng cấp hạt nhân hệ thống giải phân mảnh hệ thống file. Cũng như vậy, trong các trường hợp bản đồ thay đổi trên ổ đĩa vật lý, vị trí của chúng cũng cần được cập nhật vào mã MBR của boot loader, vì vậy các cơ chế khu vực gián tiếp tiếp tục làm việc. Điều này không phức tạp, nhưng nó yêu cầu phải sửa đổi bằng tay trong trường hợp bị sai trong ki cập nhật hệ thống.[8]

Một cách khác là tạo một boot loader nhận biết được hệ thống file bên dưới, Hạt nhân như vậy được cấu hình và truy cập thông qua đường dẫn thực tế. Điều này yêu cầu boot loader cần chứa một trình điều khiển hệ thống file cho mỗi hệ thống file mà nó hỗ trợ, như vậy trình khởi động sẽ có thể nhận biết và tiếp cận dữ liệu. Cách tiếp cận này cho phép loại bỏ các phần lập trình nhúng không cần thiết vào sector và cả sự cần thiết của việc phân địa chỉ tập tin, và MBR (tức Master Boot Record) sẽ không cần phải cập nhật lại mỗi khi ảnh hạt nhân hệ điều hành được thêm vào trình khởi động hoặc được gỡ ra.

GNU GRUB sử dụng phương pháp thứ hai, bằng cách tìm hiểu các hệ thống tập tin cơ bản. Boot loader tự chia thành nhiều phần, cho phép nó phù hợp với các chương trình khởi động MBR.

Có hai phiên bản của GRUB đang được sử dụng phổ biến. GRUB phiên bản 2, được gọi là GRUB 2, được viết lại từ đầu và có ý định thay thế phiên bản tiền nhiệm của nó GRUB 1, và hiện nay nó được sử dụng bởi đa số các bản phân phối Linux. GRUB phiên bản 1, được gọi là GRUB legacy,chỉ phổ biến ở các phiên bản cũ của các bản phân phối Linux, trong đó một số vẫn còn đang được sử dụng và hỗ trợ, ví dụ như trong CentOS 5.

GRUB Phiên bản 1 (GRUB legacy)

GRUB v1 hoạt động như một phần của Ubuntu 8.04

Master boot record (MBR) thường chứa GRUB giai stage 1, nhưng có thể chứa bootloader khác có thể gọi đến GRUB stage 1 từ một boot sector giống như bản ghi kích thước khởi động của phân vùng. Với kích thước nhỏ của một boot sector (512 Byte), stage 1 có thể làm ít hơn so với tải các giai đoạn tiếp theo của GRUB bằng cách tải một vài sector từ một vùng cố định  gần điểm đầu đĩa cứng (trong 1024 cylinder đầu tiên).

Stage 1 có thể tải stage 2 trực tiếp, nhưng nó thường được thiết lập để tải stage 1.5. GRUB stage 1.5 ở khu vực 30 KiB đầu tiên của ổ cứng ngay sau MBR và trước phân vùng đầu tiên. Trong trường hợp vị trí này không có sẵn(bảng phân vùng bất thường, trình điều khiển đĩa đặc biệt, đĩa GPT hoặc LVM) các cài đặt của stage 1.5 sẽ bị lỗi. Stage 1.5 chứa trình điều khiển hệ thống tập tin. điều này cho phép stage 1.5 tải trực tiếp stage 2 từ bất kỳ vị trí nào trên hệ thống file, ví dụ từ/boot/grub. Stage 2 sẽ tải file cấu hình mặc định và các module cần thiết khác.

GRUB 2 (GRUB)

boot.img có kích thước 446 byte và được ghi vào MBR (sector 0). core.img được ghi vào phần trống giữa MBR và phân vùng đầu tiên. Thư mục /boot/grub có thể được lưu trên một phân vùng riêng biệt, hoặc trên phân vùng root.
  • Stage 1: boot.img được lưu trữ trên master boot record (MBR) hoặc có thể bất kỳ vị trí nào thuộc volume boot records (VBR), và chỉ tới các stage tiếp theo bằng một địa chỉ LBA48 (vì vậy tránh được giới hạn 1024-cylinder của GRUB legacy); lúc cài đặt nó được cấu hình để tải sector đầu tiên của core.img.
  • Stage 1.5: core.img mặc định được ghi vào các sector giữa MBR và phân vùng đầu tiên, khi những sector này trống và có sẵn. Với  các phân vùng legacy, phân vùng đầu tiên của ổ cứng không bắt đầu từ sector 1 (bộ đếm bắt đầu từ 0) mà từ sector 63,để lại một khoảng trống 62 sector. không gian đó không phải là một phần của bất kỳ phân vùng hoặc tập tin hệ thống, và do đó không dễ bị bất kỳ vấn đề liên quan với nó.Mỗi khi thực thi, core.img sẽ tải file cấu hình của nó  và các module cần thiết khác, trình điều khiển hệ thống file riêng biệt; lúc cài đặt, nó được tạo ra từ diskboot.img và được cấu hình để tải stage 2 bằng đường dẫn của nó
  • Stage 2: file thuộc stage 2 đều được lưu trữ trong thư mục /boot/grub  một thư mục con của thư mục  /boot quy định bởi Filesystem Hierarchy Standard (FHS).

Lịch sử

GRUB ban đầu được phát triển bởi Erich Boleyn như là một phần của hệ thống khởi động hệ điều hành GNU/Hurd, phát triển bởi Free Software Foundation.[9] Năm 1999, Gordon Matzigkeit và Yoshinori K. Okuji đã đưa GRUB trở thành gói phần mềm chính thức của GNU Project và mở rộng quá trình phát triển cho công chúng.[9] Tính đến năm 2014, phần lớn các bản phân phối Linux đã sử dụng GRUB 2, cũng như các hệ thống khác như PlayStation 4 của SONY.[10]

Phát triển

GRUB phiên bản 1 (còn được gọi là "GRUB Legacy") không còn được phát triển và đang bị loại bỏ dần.[11] Các nhà phát triển GNU GRUB đã chuyển trọng tâm sang GRUB 2,[12] một bản viết lại hoàn chỉnh với các mục tiêu bao gồm làm cho GNU GRUB sạch hơn, mạnh mẽ hơn, di động hơn và mạnh mẽ hơn. GRUB 2 được bắt đầu với tên gọi PUPA. PUPA được hỗ trợ bởi Information-technology Promotion Agency (IPA) tại Nhật Bản. PUPA được tích hợp vào quá trình phát triển GRUB 2 khoảng năm 2002, khi GRUB phiên bản 0.9x được đổi tên thành GRUB Legacy.

Một số mục tiêu của dự án GRUB 2 bao gồm hỗ trợ cho các nền tảng không phải x86, quốc tế hóabản địa hóa, các ký tự không phải ASCII, mô-đun động, quản lý bộ nhớ, một ngôn ngữ script mini, Port mã nền tảng cụ thể (x86) sang các mô-đun cụ thể của nền tảng, và một khung hướng đối tượng. GNU GRUB v2.00 chính thức được phát hành vào ngày 26 tháng 6 năm 2012.[13][14]

Ba trong số các bản phân phối Linux được sử dụng rộng rãi nhất sử dụng GRUB 2 làm boot loader chính của chúng.[15][16][17] Ubuntu đã chấp nhận nó làm boot loader mặc định từ phiên bản 9.10 tháng 10 năm 2009.[18] Fedora tiếp nối với Fedora 16 được phát hành vào tháng 11 năm 2011.[19] OpenSUSE đã sử dụng GRUB 2 làm boot loader mặc định từ phiên bản 12.2 phát hành tháng 9 năm 2012.[20] Solaris cũng đã áp dụng GRUB 2 trên nền tảng x86 trong bản phát hành Solaris 11.1.[21]

Cuối năm 2015, việc exploit nhấn phím backspace 28 lần để vượt qua mật khẩu đăng nhập đã được tìm thấy và nhanh chóng được sửa.[22][23]

Biến thể

GNU GRUB là một phần mềm tự do nguồn mở, vì vậy một số biến thể đã được tạo ra. Một số đáng chú ý, chưa được hợp nhất vào dòng chính GRUB:

  • OpenSolaris bao gồm GRUB Legacy đã được sửa đổi hỗ trợ BSD disklabels, lựa chọn hạt nhân 64-bit tự động và khởi động từ ZFS.[24][25]
  • Google Summer of Code 2008có một dự án hỗ trợt GRUB Legacy để khởi động từ các phân vùng có định dạng ext4.[26]
  • Dự án Syllable đã tạo một phiên bản GRUB sửa đổi để khởi động hệ thống từ AtheOS File System.[27]
  • TrustedGRUB mở rộng GRUB bằng cách triển khai xác minh tính toàn vẹn của hệ thống và bảo mật quy trình khởi động, sử dụng Trusted Platform Module (TPM).[28]
  • Intel BIOS Implementation Test Suite (BITS) cung cấp môi trường GRUB để kiểm tra BIOS và đặc biệt là việc khởi tạo bộ xử lý, phần cứng và công nghệ Intel. BITS hỗ trợ tập lệnh qua Python và bao gồm các API Python để truy cập các chức năng cấp thấp khác nhau của nền tảng phần cứng, bao gồm ACPI, thanh ghi CPU và chipset, PCI và PCI Express.[29]
  • GRUB4DOS là bản fork kế thừa của GRUB legacy hiện đã không còn tồn tại giúp cải thiện trải nghiệm cài đặt trên DOS và Microsoft Windows bằng cách đặt mọi thứ ngoài cấu hình GRLDR vào một tệp hình ảnh. Nó có thể được tải bởi Windows Boot Manager.[30][31]

Tiện ích

Công cụ cấu hình GRUB

StartUp-Manager, một chương trình được sử dụng để cấu hình GRUB

Các công cụ thiết lập được các bản phân phối khác nhau sử dụng thường bao gồm các mô-đun để thiết lập. Ví dụ, YaST2 trên các bản phân phối SUSE LinuxopenSUSEAnaconda trên trên các bản phân phối Fedora/RHEL.StartUp-Manager và GRUB Customizer là các trình soạn thảo cấu hình đồ họa cho các bản phân phối dựa trên Debian. Việc phát triển StartUp-Manager đã dừng lại vào ngày 6 tháng 5 năm 2011 sau khi nhà phát triển chính viện lý do cá nhân không tích cực phát triển chương trình.[32] GRUB Customizer cũng có sẵn cho các bản phân phối dựa trên Arch.

Đối với GRUB 2 có KDE Control Modules.[33][34]

GRLDR ICE là một công cụ nhỏ để sửa đổi cấu hình mặc định của tệp grldr cho GRUB4DOS.[35]

Các tiện ích sửa chữa khởi động

Boot-Repair là một công cụ đồ họa đơn giản để khôi phục các sự cố thường xuyên liên quan đến khởi động với GRUB và Microsoft Windows bootloader. Ứng dụng này có sẵn theo giấy phép GNU GPL license. Boot-Repair có thể sử lỗi GRUB trên nhiều bản phân phối Linux, bao gồm nhưng không giới hạn ở Debian, Ubuntu, Mint, Fedora, openSUSE, vàArch Linux.

GRUB Customizer

Trình cài đặt cho Windows

Grub2Win là một gói phần mềm nguồn mở trên Windows. Nó cho phép GNU GRUB khởi động từ một thư mục Windows. Chương trình thiết lập cài đặt GNU GRUB v2.04 vào một phân vùng NTFS. Một ứng dụng Windows GUI sau đó được sử dụng để tùy chỉnh menu khởi động GRUB, chủ đề, thứ tự khởi động UEFI, tập lệnh, v.v. Tất cả các tập lệnh và lệnh GNU GRUB đều được hỗ trợ cho cả UEFI và legacy. Grub2Win có thể cấu hình GRUB cho multiboot của Windows, Ubuntu, openSuse, Fedora nhiều bản phân phối Linux khác. Nó được cung cấp miễn phí theo GNU GPL License tại SourceForge.

Trình quản lý khởi động thay thế

Điểm mạnh của GRUB là có nhiều nền tảng, hệ thống file và hệ điều hành được hỗ trợ, khiến nó trở thành lựa chọn mặc định cho các bản phân phối và hệ thống nhúng.

Tuy nhiên, có những trình quản lý khởi động được nhắm mục tiêu vào người dùng cuối mang lại trải nghiệm người dùng thân thiện hơn, bộ chọn hệ điều hành đồ họa và cấu hình đơn giản hơn:

  • rEFInd – Trình quản lý khởi động đồ họa kiểu Macintosh, chỉ dành cho máy tính dựa trên UEFI (không hỗ trợ BIOS).
  • CloverEFI – Trình quản lý khởi động đồ họa kiểu Macintosh dành cho máy tính chạy BIOS và UEFI. Giả lập UEFI với DUET được sửa đổi nhiều từ dự án TianoCore. Yêu cầu phân vùng được định dạng FAT ngay cả trên hệ thống BIOS. Như một lợi ích, nó có một trình điều khiển hệ thống tệp cơ bản trong khu vực khởi động phân vùng, tránh sự hư hỏng của GRUB 2nd, 3rd và lời nhắc GRUB Rescue nổi tiếng. Giao diện người dùng trông tương tự như rEFInd: cả hai đều kế thừa từ trình quản lý khởi động bị bỏ rơi rEFIt.

Các lựa chọn thay thế không có đồ họa:

  • systemd-boot – Trình quản lý khởi động nhẹ, chỉ dành cho UEFI với menu bộ chọn hệ điều hành dựa trên văn bản.

Liên kết ngoài

Hướng dẫn triển khai và khắc phục sự cố

Wiki của các bản phân phối có nhiều giải pháp cho các vấn đề phổ biến và thiết lập tùy chỉnh có thể giúp bạn:

Tài liệu

Bài viết giới thiệu

Tài liệu kỹ thuật

Xem thêm

Chú thích

  1. ^ https://alpha.gnu.org/gnu/grub/
  2. ^ Kiper, Daniel (4 tháng 7 năm 2019). “GRUB 2.04 release” (Danh sách thư). Truy cập ngày 5 tháng 7 năm 2019. Đã bỏ qua tham số không rõ |mailinglist= (trợ giúp)
  3. ^ “Ohloh Analysis Summary – GNU GRUB”. Ohloh. Truy cập ngày 12 tháng 5 năm 2010.
  4. ^ “GNU GRUB license”. Bản gốc lưu trữ ngày 11 tháng 9 năm 2013.
  5. ^ EnterpriseLinux.com Definitions Definition of GRand Unified Bootloader
  6. ^ Smith, Ryan (ngày 18 tháng 12 năm 2009). “Western Digital's Advanced Format: The 4K Sector Transition Begins”. AnandTech. Truy cập ngày 10 tháng 10 năm 2013.
  7. ^ “mbldr (Master Boot LoaDeR)”. sourceforge.net. 2009. Truy cập ngày 10 tháng 10 năm 2013.
  8. ^ “Booting and Boot Managers”. SuSE. Truy cập ngày 10 tháng 10 năm 2013.
  9. ^ a b GRUB Manual – 1.2 Grub History. Gnu.org (2012-06-23). Retrieved on 2012-12-01.
  10. ^ “PS4 runs Orbis OS, a modified version of FreeBSD that's similar to Linux”. extremetech.com. 24 tháng 6 năm 2013. Truy cập ngày 23 tháng 10 năm 2013.
  11. ^ GNU GRUB – GRUB Legacy. Gnu.org. Retrieved on 2012-12-01.
  12. ^ “GNU GRUB – GRUB 2”. Lưu trữ bản gốc 7 Tháng sáu năm 2008. Truy cập 18 Tháng tư năm 2014.Quản lý CS1: bot: trạng thái URL ban đầu không rõ (liên kết).
  13. ^ Serbinenko, Vladimir (28 tháng 6 năm 2012). “GRUB 2.00 released” (Danh sách thư). Truy cập ngày 1 tháng 12 năm 2012. Đã bỏ qua tham số không rõ |mailinglist= (trợ giúp)
  14. ^ Larabel, Michael. “GRUB 2.00 Boot-Loader Officially Released”. Phoronix.com. Truy cập ngày 28 tháng 6 năm 2012.
  15. ^ Haddon, Tom (26 tháng 1 năm 2012). “An Introduction to Ubuntu”. WebJunction. Bản gốc lưu trữ 28 tháng Mười năm 2012. Truy cập 21 tháng Chín năm 2012.
  16. ^ Janssen, Cory. “What is Red Hat Enterprise Linux (RHEL)?”. Technopedia. Truy cập ngày 21 tháng 9 năm 2012.
  17. ^ Varghese, Sam (20 tháng 9 năm 2012). “SUSE chief lists progress since privatisation”. Truy cập ngày 21 tháng 9 năm 2012.
  18. ^ “9.10 Karmic GRUB version”. Distrowatch.com. Truy cập ngày 8 tháng 7 năm 2012.
  19. ^ GRUB 2. FedoraProject. Retrieved on 2012-12-01.
  20. ^ openSUSE:Upcoming features – openSUSE Lưu trữ tháng 9 20, 2012 tại Wayback Machine. En.opensuse.org. Retrieved on 2012-12-01.
  21. ^ Solaris 11.1. Oracle Retrieved 2015-03-19.
  22. ^ Khandelwal, Swati (16 tháng 12 năm 2015). “You can Hack into a Linux Computer just by pressing 'Backspace' 28 times”. thehackernews.com.
  23. ^ Marco and, Hector; Ripoll, Ismael (tháng 12 năm 2015). “Back to 28: Grub2 Authentication 0-Day”.
  24. ^ x86: Modifying Boot Behavior by Editing the GRUB Menu at Boot Time Lưu trữ tháng 7 19, 2011 tại Wayback Machine, Modifying Solaris Boot Behavior on x86 Based Systems (Task Map) – System Administration Guide: Basic Administration
  25. ^ x86: Supported GRUB Implementations Lưu trữ tháng 10 21, 2009 tại Wayback Machine, (System Administration Guide: Basic Administration) – Sun Microsystems
  26. ^ Peng, Tao. “Grub4ext4”. Truy cập ngày 13 tháng 6 năm 2017.
  27. ^ 2.3 Why does Syllable have its own version of GRUB? Lưu trữ tháng 1 7, 2011 tại Wayback Machine, Syllable Documentation
  28. ^ “TrustedGRUB project”. sourceforge.net. Truy cập ngày 18 tháng 11 năm 2014.
  29. ^ BIOS Implementation Test Suite, Official BITS website
  30. ^ “grub4dos”. Google Site. Truy cập ngày 7 tháng 4 năm 2019.
  31. ^ “GRUB for DOS Introduction”. grub4dos.sourceforge.net. 2007. Bản gốc lưu trữ ngày 2 tháng 6 năm 2008. Truy cập ngày 7 tháng 4 năm 2019.
  32. ^ “StartUp-Manager is dead : StartUp-Manager”. launchpad.net (bằng tiếng Anh). Truy cập ngày 9 tháng 4 năm 2017.
  33. ^ GRUB2 Bootloader Editor. Kde-apps.org (2012-06-18). Retrieved on 2012-12-01.
  34. ^ “Grub2 KCM”. KDE-Apps.org. Truy cập ngày 27 tháng 1 năm 2011.
  35. ^ “Grub4dos tutorial”. Narod.ru.