Bạn có đang sử dụng máy tính cài đặt song song hai hệ điều hành (dual-boot), ví dụ như Linux và Windows, hoặc thậm chí là hai phiên bản Linux khác nhau? Đã bao giờ bạn mất quyền truy cập vào một trong các hệ điều hành của mình, hay bạn muốn chuẩn bị sẵn sàng cho tình huống đó? Nếu câu trả lời là có, việc nắm vững GRUB và khả năng của nó là điều cần thiết để bạn kiểm soát tốt hơn quá trình khởi động máy tính.
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 sử dụng. Hiểu rõ về GRUB không chỉ giúp bạn khắc phục sự cố mà còn tối ưu hóa trải nghiệm sử dụng máy tính đa hệ điều hành, khẳng định vị thế của bạn như một người dùng công nghệ có kiến thức chuyên sâu.
GRUB Quan Trọng Thế Nào Với Người Dùng Dual-Boot Linux?
GRUB, viết tắt của Grand Unified Bootloader, là trình khởi động tiêu chuẩn được sử dụng bởi hầu hết các bản phân phối Linux phổ biến. Đây là một chương trình có nhiệm vụ tải và chuyển quyền điều khiển cho 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 muốn vào (cùng với các tùy chọn khác sẽ được thảo luận sau) khi bật nguồn một máy tính dual-boot. 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—chỉ là nó thường bị ẩn đi hoặc được đặt thời gian chờ rất ngắn, nên bạn có thể không nhận thấy.
Menu khởi động GRUB trên Ubuntu hiển thị các tùy chọn hệ điều hành.
Giả sử bạn đang cài đặt 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 trình 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. Bạn sẽ cần phải vào BIOS/UEFI để thay đổi thứ tự khởi động hoặc điều chỉnh bằng BCDEdit để khởi động vào hệ thống Linux của mình—điều này có thể gây ra không ít 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 một trong hai hệ điều hành để 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 kiến thức bạn nên nắm vững khi là người dùng Linux dual-boot. Ví dụ, trên máy tính dual-boot 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ả hai hệ điều hành một cách dễ dàng.
Hệ thống máy tính dual-boot hiển thị lựa chọn khởi động giữa Garuda Linux và Windows.
Cần lưu ý rằng GRUB không phải là trình khởi động Linux duy nhất—cũng có các lựa chọn khác tồn tại. Ví dụ, Pop!_OS, một bản phân phối Linux khá phổ biến, đã loại bỏ GRUB để chuyển sang sử dụng systemd-boot, một trình khởi động nhanh hơn và đơn giản hơn. Tuy nhiên, systemd-boot không thể phát hiện đáng tin cậy các hệ điều hành khác mà không cần can thiệp thủ công, điều này khiến nó trở thành lựa chọn kém tối ưu cho các máy tính dual-boot.
Đây chính xác là lý do tại sao GRUB lại phổ biến và trở thành trình khởi động tiêu chuẩn của Linux. Nó không chỉ hỗ trợ phát hiện hệ điều hành tự động, mà còn tải các trình 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 vững chắc 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 dual-boot, thứ tự mà bạn cài đặt các hệ điều hành là rất quan trọng. Hệ điều hành nào bạn cài đặt sau cùng gần như chắc chắn sẽ đặt trình khởi động của riêng nó làm mặc định. Do đó, nếu bạn đang thiết lập một máy tính dual-boot Windows-Linux, hãy luôn cài đặt Windows trước và Linux sau cùng để đảm bảo GRUB trở thành trình khởi động mặc định.
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 trình 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 dual-boot, bạn có thể không gặp menu GRUB và khởi động thẳng vào một trong các hệ điều hành đã cài đặt. Điều này xảy ra chủ yếu vì hai lý do.
Thứ nhất, nếu bạn đang dual-boot hai hệ thống Linux, GRUB của một hệ thống Linux 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 để ở chế độ ẩn, bạn sẽ không thấy menu lựa chọn hệ điều hành. Để khắc phục điều này, khi đang ở trong 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
. Có khả năng nó được đặt thành “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ó thành 5 hoặc 10—điều này cho biết số giây mà menu GRUB sẽ hiển thị 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 đó nhấn Ctrl+x
để thoát trình chỉnh sửa tệp.
Giao diện nano chỉnh sửa tập tin cấu hình GRUB hiển thị các tùy chọn GRUB_TIMEOUT_STYLE và GRUB_TIMEOUT.
Sau khi lưu tệp, 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 dual-boot 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) đã được bật. Hãy làm theo hướng dẫn của chúng tôi về cách tắt Fast Boot cho Windows 10 (hướng dẫn này cũng có thể áp dụng cho 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 Linux Live, 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. Quá trình khôi phục GRUB sẽ khác nhau tùy thuộc vào bản phân phối cụ thể, vì vậy tôi sẽ giới thiệu cho bạn các hướng dẫn hữu ích mà bạn có thể tham khảo:
Sau 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 GRUB được bật trong quá trình khởi động là vì nếu hệ thống không tải được, 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 Linux bạn muốn khắc phục sự cố và nhấn phím 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 đó. 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ố.
Giao diện chỉnh sửa tham số khởi động GRUB trên Ubuntu để khắc phục sự cố hệ thống.
Ví dụ, giả sử driver đồ họa của bạn bị hỏng 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 driver đồ họa của mình. Tương tự, bạn có thể thêm single làm tham số khởi động. Điều này sẽ khởi động hệ thống vào chế độ khôi phục (recovery mode), nơi chỉ có một người dùng duy nhất: root đang hoạt động và các dịch vụ mạng bị tắt. Bạn sẽ lý tưởng 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 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 xác định nguyên nhân sự cố 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 (CLI) của GRUB, dùng để khắc phục lỗi khởi động Linux.
Hướng Dẫn Tùy Chỉnh GRUB Theo Phong Cách Riêng
Bạn hoàn toàn có thể tùy chỉnh tệp cấu hình GRUB để thêm các mục khởi động tùy chỉnh, đặt hệ điều hành mặc định, và thậm chí là thay đổi giao diện để nó trông đẹp mắt hơn. Ví dụ, đôi khi GRUB sẽ không tự động phát hiện một hệ điều hành cụ thể được cài đặt trên hệ thống của bạn, vì vậy bạn muốn thêm nó theo cách thủ công. Hoặc bạn có thể muốn thêm một ảnh ISO cứu hộ (rescue ISO) hoặc memtest—một công cụ hữu ích kiểm tra RAM máy tính của bạn để tìm lỗi, giúp khắc phục các sự cố và 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.
Để làm điều này, bạn chỉ cần gõ:
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 menu. Để làm điều đó, bạn chỉ cần thêm dòng mã này:
menuentry "Memtest86+" { linux16 /boot/memtest86+.bin }
Thêm mục khởi động Memtest86+ tùy chỉnh vào cấu hình GRUB thông qua tập tin 40_custom.
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 thành số 0, tương ứng với mục đầ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 tin cấu hình GRUB xác định hệ điều hành mặc định khi khởi động.
Cuối cùng, bạn cũng có thể thay đổi giao diện menu GRUB của mình bằng cách sử dụng các chủ đề GRUB (GRUB themes). Bạn có thể tìm thấy các chủ đề GRUB trên GNOME-Looks. Mỗi chủ đề có thể có quy trình cài đặt cụ thể, nhưng điều đó thường được nêu chi tiết trên trang thông tin 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ể cài đặt 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 tin cấu hình GRUB, dùng để á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 đơn thuần—nó là công cụ quan trọng nhất hỗ trợ trải nghiệm dual-boot của bạn và là một cách đáng tin cậy để khắc phục các vấn đề máy tính phổ biến. Dù bạn đang khôi phục một cài đặt Linux bị mất, tùy chỉnh thứ tự khởi động, hay chỉ đơn giản là thay đổi giao diện theo ý muốn, việc học những kiến thức cơ bản về GRUB này sẽ phục vụ bạn rất tốt trong tương lai. Hãy tận dụng sức mạnh của GRUB để làm chủ hệ thống dual-boot của mình và nâng cao trải nghiệm công nghệ cá nhân!