Bạn đang sử dụng hệ thống khởi động kép (dual-boot) với Linux và Windows, hoặc thậm chí là hai bản phân phối Linux khác nhau? Bạn đã từng gặp phải tình huống mất quyền truy cập vào một trong các hệ điều hành của mình, hay đơn giản là muốn chuẩn bị sẵn sàng cho những trường hợp đó? Nếu vậy, việc nắm vững GRUB và các khả năng của nó là vô cùng cần thiết để bạn có thể kiểm soát quá trình khởi động máy tính của mình một cách hiệu quả nhất.
Khi nhắc đến GRUB trong bài viết này, chúng ta đang đề cập đến GRUB2, phiên bản GRUB hiện tại mà hầu hết các bản phân phối Linux đều đang sử dụng.
Tại Sao GRUB Lại Quan Trọng Đối Với Người Dùng Linux Khởi Động Kép?
GRUB, viết tắt của GRand Unified Bootloader, là một bộ tải khởi động (bootloader) tiêu chuẩn được sử dụng bởi đa số các bản phân phối Linux phổ biến. Đây là một chương trình thiết yếu có nhiệm vụ tải và chuyển quyền kiểm soát sang nhân (kernel) của hệ điều hành trong quá trình khởi động hệ thống. GRUB thường xuất hiện dưới dạng một menu lựa chọn khởi động, cho phép bạn chọn hệ điều hành mà bạn muốn truy cập (cùng với các tùy chọn khác sẽ được thảo luận sau) khi bật máy tính khởi động kép. Ngay cả trên các thiết lập chỉ có một hệ điều hành, GRUB vẫn hiện diện – nó thường được ẩn đi hoặc đặt thời gian chờ rất ngắn, nên bạn có thể không nhận thấy sự xuất hiện của nó.
Giao diện menu khởi động GRUB của Ubuntu
Giả sử bạn đang chạy song song Windows 11 với một bản phân phối Linux. Trong trường hợp này, bạn đang làm việc với hai bộ tải khởi động: GRUB cho Linux và Windows Boot Manager cho Windows 11. Windows Boot Manager được thiết kế để khởi động Windows và sẽ không tự động phát hiện bản phân phối Linux của bạn. Để khởi động vào hệ thống Linux, bạn sẽ phải vào BIOS/UEFI để thay đổi thứ tự khởi động hoặc điều chỉnh bằng BCDEdit – điều này có thể gây nhiều phiền toái.
May mắn thay, GRUB có khả năng tự động phát hiện Windows 11 và sẽ cho phép bạn chọn hệ điều hành mong muốn để khởi động. Khả năng tương thích nâng cao này chính là điều khiến GRUB trở nên mạnh mẽ, phổ biến và là một công cụ mà mọi người dùng Linux khởi động kép đều nên tìm hiểu. Ví dụ, trên máy tính khởi động kép Linux-Windows của tôi, Windows Boot Manager không phát hiện phân vùng Garuda Linux, nhưng GRUB lại nhận diện được cả hai hệ điều hành.
Màn hình lựa chọn hệ điều hành khi khởi động kép Linux Garuda và Windows
Cần lưu ý rằng GRUB không phải là bộ tải khởi động duy nhất cho Linux – một số lựa chọn khác cũng tồn tại. Ví dụ, Pop!_OS, một bản phân phối Linux khá phổ biến, không sử dụng GRUB mà thay vào đó chọn systemd-boot, vốn nhanh và đơn giản hơn. Tuy nhiên, systemd-boot không thể phát hiện các hệ điều hành khác một cách đáng tin cậy nếu không có sự can thiệp thủ công, điều này khiến nó trở thành lựa chọn kém lý tưởng cho các máy tính khởi động kép.
Đây chính là lý do tại sao GRUB lại phổ biến và trở thành bộ tải khởi động tiêu chuẩn của Linux. Nó không chỉ hỗ trợ tự động phát hiện hệ điều hành mà còn có khả năng tải các bộ tải khởi động khác một cách liền mạch (thông qua chain-loading), đồng thời cung cấp một hệ thống dự phòng mạnh mẽ nếu có sự cố xảy ra – chúng ta sẽ tìm hiểu thêm về điều này sau.
Thứ Tự Cài Đặt Hệ Điều Hành Và Ảnh Hưởng Đến GRUB
Trên một máy tính khởi động kép, thứ tự cài đặt các hệ điều hành đóng vai trò quan trọng. Hệ điều hành nào được cài đặt cuối cùng gần như sẽ luôn thiết lập bộ tải khởi động của chính nó làm mặc định. Do đó, nếu bạn đang thiết lập một máy tính khởi động kép Windows-Linux, hãy luôn cài đặt Windows trước và Linux sau cùng để GRUB trở thành bộ tải khởi động mặc định của bạn.
Nếu bạn vô tình cài đặt Windows sau cùng, không chỉ Windows Boot Manager sẽ kiểm soát quá trình khởi động, mà nó còn có thể xóa GRUB khỏi phân vùng EFI – một phân vùng đặc biệt lưu trữ các bộ tải khởi động và các tệp khởi động khác cho các hệ thống dựa trên UEFI. Trong phần tiếp theo, tôi sẽ thảo luận về cách khắc phục vấn đề này!
Khắc Phục Lỗi Không Hiển Thị Menu GRUB
Đôi khi, ngay cả trong một hệ thống khởi động kép, bạn có thể không thấy menu GRUB và hệ thống tự động khởi động thẳng vào một trong các hệ điều hành đã cài đặt. Điều này chủ yếu xảy ra vì hai lý do.
Thứ nhất, nếu bạn đang khởi động kép hai hệ thống Linux, một GRUB của hệ thống Linux này phải đang kiểm soát quá trình khởi động – có lẽ là hệ thống Linux mà bạn đang khởi động vào. Nếu nó được cấu hình để ẩn đi, bạn sẽ không nhận được menu lựa chọn hệ điều hành. Để khắc phục điều này, khi đang ở trên hệ thống Linux của bạn, hãy mở terminal và nhập lệnh sau:
sudo nano /etc/default/grub
Tìm dòng có nội dung GRUB_TIMEOUT_STYLE
. Khả năng cao nó đang được đặt là “hidden”. Hãy thay đổi nó thành menu. Tiếp theo, tìm dòng có nội dung GRUB_TIMEOUT
và đặt giá trị của nó là 5 hoặc 10 – điều này cho biết menu GRUB sẽ hiển thị trong bao nhiêu giây trước khi khởi động vào hệ điều hành mặc định. Sau khi thực hiện các thay đổi, nhấn Ctrl+o và Enter để lưu thay đổi, sau đó Ctrl+x để thoát trình soạn thảo tệp.
Tệp cấu hình GRUB hiển thị các tùy chọn cài đặt thời gian chờ và kiểu menu
Sau khi lưu tệp, hãy chạy lệnh này trong terminal của bạn:
sudo update-grub
Bây giờ hãy khởi động lại hệ thống của bạn, và bạn sẽ thấy menu GRUB, cho phép bạn lựa chọn giữa các cài đặt Linux của mình.
Ngoài ra, nếu bạn đang khởi động kép Windows với Linux và chỉ có thể khởi động vào Windows, có thể là do tính năng khởi động nhanh (Fast Boot) đang được bật. Hãy làm theo hướng dẫn về cách tắt Fast Boot cho Windows 10 (hướng dẫn này cũng sẽ hoạt động trên Windows 11) và điều đó sẽ giải quyết vấn đề của bạn.
Tuy nhiên, nếu bạn vẫn không thấy GRUB, có thể Windows đã xóa nó khỏi phân vùng EFI. Để khắc phục điều này, hãy chuẩn bị một USB Live Linux, lý tưởng nhất là với cùng bản phân phối mà bạn đang cố gắng khôi phục. Quy trình khôi phục GRUB sẽ khác nhau tùy thuộc vào từng bản phân phối cụ thể, vì vậy tôi sẽ chỉ cho bạn các hướng dẫn hữu ích mà bạn có thể làm theo:
- Cách khôi phục GRUB trên Ubuntu và Debian
- Cách khôi phục GRUB trên Arch Linux
- Cách khôi phục GRUB trên Fedora
Khi hoàn tất, tôi khuyến khích bạn truy cập cài đặt BIOS/UEFI của mình và kiểm tra thứ tự khởi động. Đảm bảo rằng bản phân phối Linux mà bạn đã sửa GRUB được chọn làm tùy chọn đầu tiên.
GRUB Hỗ Trợ Khôi Phục Và Khắc Phục Sự Cố Hệ Điều Hành Như Thế Nào?
Một trong những lý do chúng ta muốn bật GRUB trong quá trình khởi động là vì nếu hệ thống không thể tải, chúng ta có thể khắc phục sự cố từ đây. Đơn giản chỉ cần sử dụng các phím mũi tên để chọn mục nhập Linux mà bạn muốn khắc phục sự cố và nhấn e. Thao tác này sẽ mở trình chỉnh sửa mục khởi động GRUB cho hệ điều hành cụ thể đó. Nó sẽ hiển thị script cấu hình GRUB mặc định, nhưng bạn có thể chỉnh sửa nó với các tham số bổ sung để khắc phục sự cố.
Chỉnh sửa các tham số khởi động trong GRUB của Ubuntu để khắc phục sự cố hệ thống
Ví dụ, giả sử trình điều khiển đồ họa của bạn bị lỗi và Linux khởi động vào màn hình đen. Trong trường hợp đó, bạn có thể thêm nomodeset vào cuối dòng Linux. Điều này sẽ buộc hệ thống tải bằng cài đặt hiển thị cơ bản cho đến khi bạn có thể cài đặt hoặc sửa trình điều khiển đồ họa của mình. Tương tự, bạn có thể thêm single làm tham số khởi động. Thao tác này sẽ khởi động hệ thống vào chế độ phục hồi (recovery mode), nơi chỉ có một người dùng: root hoạt động và các dịch vụ mạng bị vô hiệu hóa. Bạn nên sử dụng chế độ này để sửa chữa hệ thống và đặt lại mật khẩu.
Đối với các tùy chọn khắc phục sự cố nâng cao hơn, bạn có GRUB CLI (Command Line Interface) hoặc GRUB rescue shell. Đây là một giao diện terminal mạnh mẽ hỗ trợ nhiều lệnh hữu ích có thể giúp bạn chẩn đoán vấn đề và có khả năng khắc phục nó để bạn có thể khởi động vào hệ thống Linux của mình.
Giao diện dòng lệnh GRUB CLI dùng để chẩn đoán và sửa lỗi khởi động Linux
Cách Tùy Chỉnh GRUB Để Cá Nhân Hóa Trải Nghiệm Khởi Động
Bạn hoàn toàn có thể tùy chỉnh tệp GRUB của mình để thêm các mục nhập tùy chỉnh, đặt hệ điều hành mặc định, và thậm chí là thay đổi giao diện (theme) để trông đẹp mắt hơn. Chẳng hạn, đôi khi GRUB không tự động phát hiện một hệ điều hành cụ thể đã cài đặt trên hệ thống của bạn, và bạn muốn thêm nó thủ công. Hoặc bạn có thể muốn thêm một hình ảnh ISO phục hồi hoặc Memtest – một công cụ hữu ích kiểm tra lỗi RAM của máy tính để khắc phục các sự cố treo máy ngẫu nhiên. GRUB cho phép bạn thêm các tùy chọn này theo cách thủ công bằng cách chỉnh sửa tệp /etc/grub.d/40_custom.
Để thực hiện điều này, bạn chỉ cần nhập:
sudo nano /etc/grub.d/40_custom
Bây giờ, giả sử bạn muốn thêm Memtest86+ làm một mục nhập menu. Để làm vậy, bạn chỉ cần thêm dòng mã này:
menuentry "Memtest86+" { linux16 /boot/memtest86+.bin }
Thêm mục nhập tùy chỉnh cho Memtest86+ vào cấu hình GRUB
Tiếp theo, chạy lệnh update-grub và Memtest86+ sẽ xuất hiện trong menu khởi động của bạn.
Ngoài ra, giả sử bạn muốn thay đổi hệ điều hành mặc định. Để làm điều đó, bạn sẽ cần chỉnh sửa tệp /etc/default/grub. Tương tự như trước, nhập lệnh này:
sudo nano /etc/default/grub
Bây giờ, chỉ cần đặt biến GRUB_DEFAULT thành giá trị mong muốn của bạn. Theo mặc định, nó được đặt là số 0, tương ứng với mục nhập đầu tiên trong menu GRUB. Giả sử bạn muốn đặt hệ điều hành mặc định là Windows, nằm ở vị trí thứ 2 trong menu GRUB. Trong trường hợp đó, bạn có thể đặt GRUB_DEFAULT thành 1.
Biến GRUB_DEFAULT trong tệp cấu hình GRUB để thiết lập hệ điều hành mặc định
Cuối cùng, bạn cũng có thể thay đổi giao diện menu GRUB bằng cách sử dụng các chủ đề (theme) GRUB. Bạn có thể tìm các chủ đề GRUB trên GNOME-Looks. Mỗi chủ đề có thể có một quy trình cài đặt cụ thể, nhưng thông tin chi tiết thường được cung cấp trên trang thông tin của chủ đề và trang GitHub tương ứng (nếu có). Sau khi cài đặt chủ đề, nó sẽ tự động thay đổi cách GRUB của bạn trông như thế nào. Tuy nhiên, nếu chủ đề không có hiệu lực, bạn có thể đặt nó thủ công bằng cách truy cập tệp /etc/default/grub và điều chỉnh biến GRUB_THEME đến đường dẫn của chủ đề – nơi tệp chủ đề được đặt.
Biến GRUB_THEME trong tệp cấu hình GRUB để áp dụng giao diện tùy chỉnh
Luôn nhớ lưu các thay đổi của bạn trong nano bằng cách nhấn Ctrl+o và Enter trước khi thoát (Ctrl+x), nếu không tất cả các chỉnh sửa của bạn sẽ bị mất.
GRUB không chỉ là một menu khởi động đơn thuần – nó là công cụ quan trọng bậc nhất hỗ trợ trải nghiệm khởi động kép của bạn và là một cách đáng tin cậy để khắc phục các sự cố máy tính phổ biến. Dù bạn đang khôi phục một bản cài đặt Linux bị mất, tùy chỉnh thứ tự khởi động hay chỉ đơn giản là muốn mọi thứ trông theo cách bạn muốn, việc nắm vững những kiến thức cơ bản về GRUB này sẽ rất hữu ích cho bạn về lâu dài. Hãy bắt đầu khám phá và làm chủ bộ tải khởi động mạnh mẽ này để có quyền kiểm soát tối ưu hơn với hệ thống của mình.