Nếu như bạn chỉ dùng một hệ điều hành thì có lẽ không cần bận tâm đến khái niệm bootloader lắm. Tuy nhiên, mọi việc sẽ trở nên phức tạp khi bạn sử dụng nhiều hệ điều hành, và nhất là cài song song nhiều hệ điều hành trên cùng một máy tính. Do đó, việc tìm hiểu về bootloader sẽ giúp cho bạn làm chủ chiếc máy tính của mình tốt hơn.
Bài viết này sẽ tóm gọn những khái niệm cơ bản nhất về bootloader. Hãy lưu ý rằng nghiên cứu bootloader thực sự rất đau đầu nên bạn sẽ cần sự kiên nhẫn để hiểu những gì mình sẽ trình bày dưới đây. Rất mong sự ủng hộ từ các bạn.
1. Bootloader là gì:
Bootloader (tiếng Việt: bộ nạp khởi động, cái tên đã nói lên tất cả rồi phải không) là chương trình được khởi động đầu tiên khi máy tính của bạn được bật, công dụng của nó là gọi hệ điều hành chỉ định. Nó giống như một hệ điều hành con, quản lí tất cả các hệ điều hành trong máy của bạn và cho phép bạn khởi động vào hệ điều hành bạn cần.
=> Không có bootloader, hệ điều hành sẽ không thể khởi động được.
2. Vị trí đặt bootloader:
Một máy tính có thể được cài nhiều bootloader. Bootloader được đặt ở một trong các vị trí sau đây:
- Đặt trực tiếp trên một đĩa cứng
- Đặt trên một phân vùng của một đĩa cứng
Lưu ý: Tại mỗi vị trí, chỉ có thể đặt được một bootloader tại một thời điểm. Nếu bạn cài bootloader vào vị trí đã được cài trước một bootloader nào đó thì bootloader mới sẽ thay thế bootloader cũ. Khi bạn format hay xóa một phân vùng thì bootloader đặt trên nó sẽ bị mất đi.
3. Máy tính sẽ được khởi động từ bootloader nào?
- Mặc định, máy tính sẽ được khởi động từ đĩa cứng nằm ở vị trí đầu tiên trong BIOS.
- Nếu trên đĩa cứng có bootloader thì bootloader đó sẽ được nạp, tất cả các bootloader của phân vùng sẽ bị bỏ qua.
- Nếu trên đĩa cứng không có bootloader thì:
+ Nếu máy chuẩn Legacy-MBR: Bootloader của phân vùng đã được Set Active sẽ được nạp. Phân vùng được Set Active tất nhiên phải là Primary thì bootloader của nó mới nạp được. Sử dụng các công cụ như MiniTool Partition Wizard để Set Active cho phân vùng.
+ Nếu máy chuẩn UEFI-GPT: Bootloader của phân vùng FAT32 đầu tiên trên đĩa cứng sẽ được nạp.
4. Cài đặt bootloader như thế nào?
Bootloader sẽ tự động được cài đặt khi bạn cài đặt một hệ điều hành nào đó. Ngoài ra, bootloader cũng có thể được cài thủ công bằng những công cụ thông dụng: EasyBCD, Grub Customizer...
CÁC VẤN ĐỀ THÔNG DỤNG VỀ BOOTLOADER
Mối quan hệ giữa bootloader và hệ điều hành trong máy là gì?
Để hệ điều hành trong máy của bạn khởi động, trước tiên, bạn cần có bootloader hỗ trợ boot vào hệ điều hành đó. Thường thì khi cài đặt hệ điều hành, nó sẽ tự cài bootloader phù hợp cho bạn luôn.
Sự ràng buộc với bootloader khi cài song song nhiều hệ điều hành là gì?
Để cài song song nhiều hệ điều hành thì bootloader bạn sử dụng phải hỗ trợ khởi động vào tất cả các hệ điều hành, hay hỗ trợ chuyển hướng tới một bootloader khác mà bootloader đó hỗ trợ hệ điều hành ta cần.
Ví dụ: Trên máy tui có 3 phân vùng A, B, C. Phân vùng A chứa Windows 8, Phân vùng B chứa Windows 7, Phân vùng C chứa Linux. tui muốn dualboot 3 hệ điều hành này thì sẽ làm như sau:
- Tạo bootloader Windows 8 trên phân vùng A, bootloader này sẽ có nhiệm vụ cho phép khởi động vào Windows 8 hay Windows 7.
- Tạo bootloader Grub trên toàn đĩa cứng, bootloader này có nhiệm vụ khởi động vào Linux, hay chuyển hướng tới bootloader Windows 8 đang nằm trên phân vùng A.
Vậy tui có kết quả như sau:
- Khi khởi động, tui sẽ được chuyển tới bootloader GRUB, trên menu GRUB sẽ có 2 tùy chọn:
+ Vào Linux
+ Vào Windows 8 Loader
- Nếu tui vào Windows 8 Loader thì sẽ có 2 tùy chọn tiếp theo:
+ Vào Windows 8
+ Vào Windows 7
Vì sao khi cài song song nhiều hệ điều hành lại phải cài “từ cũ đến mới”?
Việc cài từ cũ đến mới là hoàn toàn đúng, tuy nhiên có nhiều bạn vẫn không hiểu bản chất lý do vì sao phải làm vậy, chỉ biết là làm vậy thì mới khởi động được vào tất cả các hệ điều hành mà thôi!
Thực ra bản chất vấn đề là do Bootloader được cài sẵn khi bạn cài mỗi một hệ điều hành mà thôi! Khi bạn cài một hệ điều hành, thì hệ điều hành đó sẽ cài bootloader cho bạn, sau đó, hệ điều hành sẽ quét và tìm xem trên máy bạn đã được cài sẵn hệ điều hành hay bootloader nào, sao đó cập nhật vào bootloader mới nhất. Do đó, bootloader của hệ điều hành cài sau phải đáp ứng nhu cầu là nhận diện được hết các bootloader cũ và bootloader của hệ điều hành cài trước. Thế nên mới sinh ra cái nguyên tắc cài từ cũ đến mới!
Tuy nhiên, trên thực tế, không nhất thiết phải cài từ cũ đến mới mới có thể dual-boot được. Ví dụ đơn giản: Ubuntu 12.04 và Windows 8.1 Update 1! Ngay cả khi bạn cài Ubuntu 12.04 sau khi cài Windows 8.1 Update 1, bạn vẫn có thể dual-boot vào cả 2 hệ điều hành! Vì sao? Vì Ubuntu 12.04 mặc định sử dụng Bootloader GRUB 1.99, mà bootloader này thì lại nhận diện thành công bootloader Windows 8.1 Update 1!
Ngay cả khi bootloader ta sử dụng không nhận diện được mọi bootloader và hệ điều hành khác, ta vẫn có thể tự cài một bootloader mới, đáp ứng nhu cầu của chúng ta! Vậy, vấn đề ở đây không phải do hệ điều hành cũ hay mới mà là do bootloader chúng ta sử dụng có hỗ trợ khởi động vào tất cả các hệ điều hành hay không thôi!
=> Vậy ta có thể thấy việc quản lí bootloader có ý nghĩa quan trọng trong việc cài song song 2 hay nhiều hệ điều hành.
Có cần cài bootloader cùng vị trí với phân vùng cài đặt hệ điều hành không?
Câu trả lời là: KHÔNG! Bootloader chỉ có tác dụng nạp hệ điều hành, và hệ điều hành này có thể nằm ở bất kỳ vị trí nào, không phụ thuộc vị trí của bootloader. Ví dụ đơn giản: Cài bootloader lên toàn đĩa cứng. Đó là bootloader Global chứ có thuộc về một phân vùng nào đâu.
Vì sao khi cài Linux xong rồi sau đó cài Windows thì không khởi động được vào Windows?
Mình nghĩ bạn đã đọc từ đầu đến đây rồi thì cũng biết một phần câu trả lời rồi phải không? Không phải do chuyện cũ mới, mà là do bootloader của 2 hệ điều hành mà thôi!
Cụ thể là trong tình huống này, Linux và Windows cài bootloader vào 2 vị trí khác nhau:
- Linux mặc định cài bootloader trên toàn đĩa cứng.
- Windows lại thường cài mặc định bootloader trên một phân vùng gọi là Reserved Partition (hay cài trên chính phân vùng cài đặt), sau đó Set Active cho phân vùng đó.
Và từ đó, chúng ta hiểu ra nguyên nhân vấn đề: Do bạn cài Linux nên Linux đã cài trước một bootloader trên toàn đĩa cứng rồi, như vậy việc tạo boot cho phân vùng và set active phân vùng của Windows không còn ý nghĩa nữa.
Giải pháp: hay là bạn vào Linux cập nhật Bootloader GRUB để nó nhận diện Bootloader Windows mới được cài thêm, hay là nếu bạn thích dùng Windows 8 Loader làm mặc định, thì xóa bootloader trên toàn đĩa cứng đi, tạo một Bootloader GRUB mới trên một phân vùng khác, rồi vào Windows để cập nhật Windows 8 Loader.
Sự tồn tại của Bootloader có liên quan đến sự tồn tại của một hệ điều hành?
Câu trả lời là KHÔNG LIÊN QUAN. Có hệ điều hành ắt phải có bootloader nhưng có bootloader không có nghĩa là có hệ điều hành! Ví dụ rất đơn giản: Bạn cài Linux vào phân vùng A nhưng bootloader lại đặt ở phân vùng B, sau này bạn không thích dùng Linux nữa nên xóa phân vùng A đi thì cái bootloader ở phân vùng B vẫn còn, và lúc này nếu ta boot vào bootloader này thì báo lỗi. Có thể sau này nếu ta cài một bootloader khác thì cái bootloader đó lại nhận diện được bootloader của phân vùng B này, nhiều bạn sẽ lầm tưởng là bản Linux chúng ta xóa đi trước kia vẫn còn, nhưng nó đã bị xóa hoàn toàn, cái bạn nhìn thấy chỉ là bộ nạp khởi động đã được cài vào đó thôi.
Nói chung là chỉ có thực nghiệm mới giúp chúng ta thực sự thấu hiểu về bootloader. Nằm cứng về bootloader sẽ giúp chúng ta quản lí tốt hơn việc khởi động vào các hệ điều hành, và đặc biệt là việc dual-boot trên chuẩn UEFI-GPT mới hiện nay. Thank tất cả đã đọc bài viết này!
Bài viết này sẽ tóm gọn những khái niệm cơ bản nhất về bootloader. Hãy lưu ý rằng nghiên cứu bootloader thực sự rất đau đầu nên bạn sẽ cần sự kiên nhẫn để hiểu những gì mình sẽ trình bày dưới đây. Rất mong sự ủng hộ từ các bạn.
1. Bootloader là gì:
Bootloader (tiếng Việt: bộ nạp khởi động, cái tên đã nói lên tất cả rồi phải không) là chương trình được khởi động đầu tiên khi máy tính của bạn được bật, công dụng của nó là gọi hệ điều hành chỉ định. Nó giống như một hệ điều hành con, quản lí tất cả các hệ điều hành trong máy của bạn và cho phép bạn khởi động vào hệ điều hành bạn cần.
=> Không có bootloader, hệ điều hành sẽ không thể khởi động được.
2. Vị trí đặt bootloader:
Một máy tính có thể được cài nhiều bootloader. Bootloader được đặt ở một trong các vị trí sau đây:
- Đặt trực tiếp trên một đĩa cứng
- Đặt trên một phân vùng của một đĩa cứng
Lưu ý: Tại mỗi vị trí, chỉ có thể đặt được một bootloader tại một thời điểm. Nếu bạn cài bootloader vào vị trí đã được cài trước một bootloader nào đó thì bootloader mới sẽ thay thế bootloader cũ. Khi bạn format hay xóa một phân vùng thì bootloader đặt trên nó sẽ bị mất đi.
3. Máy tính sẽ được khởi động từ bootloader nào?
- Mặc định, máy tính sẽ được khởi động từ đĩa cứng nằm ở vị trí đầu tiên trong BIOS.
- Nếu trên đĩa cứng có bootloader thì bootloader đó sẽ được nạp, tất cả các bootloader của phân vùng sẽ bị bỏ qua.
- Nếu trên đĩa cứng không có bootloader thì:
+ Nếu máy chuẩn Legacy-MBR: Bootloader của phân vùng đã được Set Active sẽ được nạp. Phân vùng được Set Active tất nhiên phải là Primary thì bootloader của nó mới nạp được. Sử dụng các công cụ như MiniTool Partition Wizard để Set Active cho phân vùng.
+ Nếu máy chuẩn UEFI-GPT: Bootloader của phân vùng FAT32 đầu tiên trên đĩa cứng sẽ được nạp.
4. Cài đặt bootloader như thế nào?
Bootloader sẽ tự động được cài đặt khi bạn cài đặt một hệ điều hành nào đó. Ngoài ra, bootloader cũng có thể được cài thủ công bằng những công cụ thông dụng: EasyBCD, Grub Customizer...
CÁC VẤN ĐỀ THÔNG DỤNG VỀ BOOTLOADER
Mối quan hệ giữa bootloader và hệ điều hành trong máy là gì?
Để hệ điều hành trong máy của bạn khởi động, trước tiên, bạn cần có bootloader hỗ trợ boot vào hệ điều hành đó. Thường thì khi cài đặt hệ điều hành, nó sẽ tự cài bootloader phù hợp cho bạn luôn.
Sự ràng buộc với bootloader khi cài song song nhiều hệ điều hành là gì?
Để cài song song nhiều hệ điều hành thì bootloader bạn sử dụng phải hỗ trợ khởi động vào tất cả các hệ điều hành, hay hỗ trợ chuyển hướng tới một bootloader khác mà bootloader đó hỗ trợ hệ điều hành ta cần.
Ví dụ: Trên máy tui có 3 phân vùng A, B, C. Phân vùng A chứa Windows 8, Phân vùng B chứa Windows 7, Phân vùng C chứa Linux. tui muốn dualboot 3 hệ điều hành này thì sẽ làm như sau:
- Tạo bootloader Windows 8 trên phân vùng A, bootloader này sẽ có nhiệm vụ cho phép khởi động vào Windows 8 hay Windows 7.
- Tạo bootloader Grub trên toàn đĩa cứng, bootloader này có nhiệm vụ khởi động vào Linux, hay chuyển hướng tới bootloader Windows 8 đang nằm trên phân vùng A.
Vậy tui có kết quả như sau:
- Khi khởi động, tui sẽ được chuyển tới bootloader GRUB, trên menu GRUB sẽ có 2 tùy chọn:
+ Vào Linux
+ Vào Windows 8 Loader
- Nếu tui vào Windows 8 Loader thì sẽ có 2 tùy chọn tiếp theo:
+ Vào Windows 8
+ Vào Windows 7
Vì sao khi cài song song nhiều hệ điều hành lại phải cài “từ cũ đến mới”?
Việc cài từ cũ đến mới là hoàn toàn đúng, tuy nhiên có nhiều bạn vẫn không hiểu bản chất lý do vì sao phải làm vậy, chỉ biết là làm vậy thì mới khởi động được vào tất cả các hệ điều hành mà thôi!
Thực ra bản chất vấn đề là do Bootloader được cài sẵn khi bạn cài mỗi một hệ điều hành mà thôi! Khi bạn cài một hệ điều hành, thì hệ điều hành đó sẽ cài bootloader cho bạn, sau đó, hệ điều hành sẽ quét và tìm xem trên máy bạn đã được cài sẵn hệ điều hành hay bootloader nào, sao đó cập nhật vào bootloader mới nhất. Do đó, bootloader của hệ điều hành cài sau phải đáp ứng nhu cầu là nhận diện được hết các bootloader cũ và bootloader của hệ điều hành cài trước. Thế nên mới sinh ra cái nguyên tắc cài từ cũ đến mới!
Tuy nhiên, trên thực tế, không nhất thiết phải cài từ cũ đến mới mới có thể dual-boot được. Ví dụ đơn giản: Ubuntu 12.04 và Windows 8.1 Update 1! Ngay cả khi bạn cài Ubuntu 12.04 sau khi cài Windows 8.1 Update 1, bạn vẫn có thể dual-boot vào cả 2 hệ điều hành! Vì sao? Vì Ubuntu 12.04 mặc định sử dụng Bootloader GRUB 1.99, mà bootloader này thì lại nhận diện thành công bootloader Windows 8.1 Update 1!
Ngay cả khi bootloader ta sử dụng không nhận diện được mọi bootloader và hệ điều hành khác, ta vẫn có thể tự cài một bootloader mới, đáp ứng nhu cầu của chúng ta! Vậy, vấn đề ở đây không phải do hệ điều hành cũ hay mới mà là do bootloader chúng ta sử dụng có hỗ trợ khởi động vào tất cả các hệ điều hành hay không thôi!
=> Vậy ta có thể thấy việc quản lí bootloader có ý nghĩa quan trọng trong việc cài song song 2 hay nhiều hệ điều hành.
Có cần cài bootloader cùng vị trí với phân vùng cài đặt hệ điều hành không?
Câu trả lời là: KHÔNG! Bootloader chỉ có tác dụng nạp hệ điều hành, và hệ điều hành này có thể nằm ở bất kỳ vị trí nào, không phụ thuộc vị trí của bootloader. Ví dụ đơn giản: Cài bootloader lên toàn đĩa cứng. Đó là bootloader Global chứ có thuộc về một phân vùng nào đâu.
Vì sao khi cài Linux xong rồi sau đó cài Windows thì không khởi động được vào Windows?
Mình nghĩ bạn đã đọc từ đầu đến đây rồi thì cũng biết một phần câu trả lời rồi phải không? Không phải do chuyện cũ mới, mà là do bootloader của 2 hệ điều hành mà thôi!
Cụ thể là trong tình huống này, Linux và Windows cài bootloader vào 2 vị trí khác nhau:
- Linux mặc định cài bootloader trên toàn đĩa cứng.
- Windows lại thường cài mặc định bootloader trên một phân vùng gọi là Reserved Partition (hay cài trên chính phân vùng cài đặt), sau đó Set Active cho phân vùng đó.
Và từ đó, chúng ta hiểu ra nguyên nhân vấn đề: Do bạn cài Linux nên Linux đã cài trước một bootloader trên toàn đĩa cứng rồi, như vậy việc tạo boot cho phân vùng và set active phân vùng của Windows không còn ý nghĩa nữa.
Giải pháp: hay là bạn vào Linux cập nhật Bootloader GRUB để nó nhận diện Bootloader Windows mới được cài thêm, hay là nếu bạn thích dùng Windows 8 Loader làm mặc định, thì xóa bootloader trên toàn đĩa cứng đi, tạo một Bootloader GRUB mới trên một phân vùng khác, rồi vào Windows để cập nhật Windows 8 Loader.
Sự tồn tại của Bootloader có liên quan đến sự tồn tại của một hệ điều hành?
Câu trả lời là KHÔNG LIÊN QUAN. Có hệ điều hành ắt phải có bootloader nhưng có bootloader không có nghĩa là có hệ điều hành! Ví dụ rất đơn giản: Bạn cài Linux vào phân vùng A nhưng bootloader lại đặt ở phân vùng B, sau này bạn không thích dùng Linux nữa nên xóa phân vùng A đi thì cái bootloader ở phân vùng B vẫn còn, và lúc này nếu ta boot vào bootloader này thì báo lỗi. Có thể sau này nếu ta cài một bootloader khác thì cái bootloader đó lại nhận diện được bootloader của phân vùng B này, nhiều bạn sẽ lầm tưởng là bản Linux chúng ta xóa đi trước kia vẫn còn, nhưng nó đã bị xóa hoàn toàn, cái bạn nhìn thấy chỉ là bộ nạp khởi động đã được cài vào đó thôi.
Nói chung là chỉ có thực nghiệm mới giúp chúng ta thực sự thấu hiểu về bootloader. Nằm cứng về bootloader sẽ giúp chúng ta quản lí tốt hơn việc khởi động vào các hệ điều hành, và đặc biệt là việc dual-boot trên chuẩn UEFI-GPT mới hiện nay. Thank tất cả đã đọc bài viết này!