Trong một hệ thống khởi động kép, BIOS chọn bộ tải khởi động nào để chạy?


24

Tôi có một khởi động kép của Windows và Ubuntu. Khi tôi bật máy, BIOS sẽ POST và sau đó bộ nạp khởi động bắt đầu.

Tôi muốn hiểu cách BIOS chọn bộ tải khởi động nào để chạy. Tôi muốn biết quá trình diễn ra giữa BIOS và bộ nạp khởi động trong máy tính khởi động kép.


Câu trả lời:


40

BIOS firmware không thực sự chọn bộ tải khởi động. Nó tải mã từ sector 0 của một ổ đĩa và thực thi nó. Bất cứ điều gì ở đó, nó sẽ thực thi. Hy vọng rằng nó là một bộ tải khởi động (hoặc một cái gì đó tải một bộ tải khởi động) nhưng nó không phải như vậy. Trong những ngày đầu của PC, bạn có các trò chơi trên các đĩa mềm chỉ đơn giản là khởi động và chạy mà không cần HĐH - giờ đây chúng được gọi là "booters".

Phần sụn UEFI thực sự hiểu các phân vùng và hệ thống tệp và quét các ổ đĩa cho loại phân vùng Hệ thống UEFI. Vì đây là một hệ thống tập tin, nhiều bộ tải khởi động có thể được đặt ở đây. Phần sụn UEFI có nhiệm vụ cung cấp một menu hoặc cách khác để bạn chọn bộ tải khởi động nào được sử dụng.

Nhiều hệ thống UEFI đang khởi động trong "Chế độ kế thừa" - trong đó UEFI tải "Mô-đun dịch vụ tương thích" - thứ gì đó trông giống như BIOS - và thực sự hoạt động giống như BIOS.

GRUB là một bộ tải khởi động nguồn mở phổ biến có thể khởi động Linux hoặc "chainload" (trao quyền kiểm soát) bộ tải khởi động Windows (thường là winload.exe trong thư mục Khởi động của phân vùng Windows). GRUB là những gì mang lại cho bạn khả năng đưa ra quyết định. GRUB có thể đọc các tệp cấu hình và lấy lựa chọn mặc định từ chúng.

Đọc này nếu bạn muốn nhiều chi tiết, đẫm máu.


Đây là một trong những lý do mà trên Ubuntu, bạn cần sudohoặc root để ghi bất cứ thứ gì vào một đĩa chưa được đếm; nếu một chương trình hoặc người dùng độc hại ghi phần mềm độc hại vào phân vùng khởi động ...
wizzwizz4

Cảm ơn LawrenceC lời giải thích của bạn làm cho sự hiểu biết của tôi rõ ràng hơn. Cảm ơn một lần nữa
Prashant Singh

13

Sơ đồ này cho thấy cách điều khiển chuyển từ phần sụn (BIOS hoặc UEFI) sang bộ tải khởi động và từ bộ nạp khởi động đến hệ điều hành trong Ubuntu.

nhập mô tả hình ảnh ở đây
          BIOS so với UEFI

Nếu các HĐH được cài đặt ở các chế độ khác nhau (BIOS và UEFI), thì việc khởi động kép Windows và Ubuntu không thể hoạt động.


Chuyển đổi Ubuntu sang chế độ UEFI

  1. Bắt đầu Boot-Repair và chọn Tùy chọn nâng cao -> tab vị trí GRUB .
  2. Nếu bạn không thấy tùy chọn phân vùng riêng biệt / boot / efi , điều này có nghĩa là PC của bạn không có bất kỳ phân vùng UEFI nào.
  3. Nếu bạn thấy tùy chọn phân vùng / boot / efi riêng biệt , hãy đánh dấu vào hộp kiểm bên trái của nó, sau đó nhấp vào nút Áp dụng ở góc dưới bên phải.

    Chuyển đổi Ubuntu sang chế độ UEFI

  4. Thiết lập BIOS của bạn để nó khởi động ổ cứng ở chế độ UEFI. Cách điều chỉnh cài đặt này tùy thuộc vào kiểu máy tính cụ thể, nhưng nhìn chung cài đặt này nằm trong cài đặt ưu tiên khởi động trong tab Khởi động của tiện ích thiết lập BIOS / UEFI.


7

Trong chế độ cũ (BIOS boot chứ không phải UEFI) BIOS điều khiển thứ tự ổ đĩa. Ngày xửa ngày xưa, điều này từng được kiểm soát bởi các dây cáp; nhưng thay đổi cài đặt BIOS sẽ mở hộp và thay đổi cáp.

BIOS tải (vào bộ nhớ) khu vực đầu tiên (512 byte đĩa được gọi là MBR hoặc bản ghi khởi động chính) của đĩa đầu tiên (hoặc thứ tự ổ đĩa được điều khiển bởi BIOS) và sau đó chuyển điều khiển (CPU) cho 'bộ tải khởi động' này. Do đó, BIOS đã hoàn thành công việc của mình và mã trong khu vực đầu tiên chạy.


SORRY thưa ông, nhưng tôi hơi bối rối vì bios cung cấp quyền kiểm soát cho trình tải khởi động và cửa sổ và linux có trình tải khởi động khác nhau để trình tải khởi động mà nó cung cấp quyền kiểm soát. Quá trình bios đi qua để chọn trình tải khởi động
Prashant Singh

2
Hệ thống của bạn chỉ có thể có một bộ tải khởi động duy nhất cho mỗi đĩa (và chỉ có một bộ đang hoạt động). Nói chung, nếu bạn có hai hệ điều hành trên hệ thống của mình, thì hệ thống thứ hai được cài đặt sẽ sở hữu bộ tải khởi động khi nó viết mã riêng vào MBR. Đây là lý do tại sao GNU / Linux (Ubuntu) sử dụng GRUB; đó là hệ thống gồm nhiều bước (bước 1 là MBR, các bước 1.5 & 2 được tìm thấy trong / boot) sẽ hiển thị menu hỏi bạn muốn tải / chạy hệ điều hành nào (dù sao cũng biết về hệ điều hành nào thêm vào nó). Nếu bạn có hai ổ đĩa; bạn có thể có bộ tải khởi động trên mỗi ổ đĩa, nhưng BIOS sẽ xác định cái nào sẽ chạy.
guiverc

Vì vậy, nếu tôi có 2 hệ điều hành trong máy tính thì GRUB sẽ đưa menu lên để hỏi tôi muốn tải os tại sao không phải trình tải khởi động của cửa sổ đặt menu đó vì tôi có cả os trong máy tính.
Prashant Singh

windows cũng có bộ tải khởi động (dù sao cũng lên đến vista); nhưng nó không thông minh như grub. phiên bản Windoze không tìm kiếm các sản phẩm không phải msft (và không thể đọc ext / reiserfs / xfs / zfs / btrfs / ...) do đó bạn phải tự thêm * nix; và bản cập nhật tiếp theo ..... phiên bản Windoze không đáng để sử dụng vì grub tốt hơn nhiều. Nếu Windoze ở trên một ổ đĩa, Ubuntu trên ổ đĩa khác bạn có thể thay đổi khởi động bằng BIOS; nhưng grub nhanh hơn / dễ dàng hơn. (nếu hài lòng với câu trả lời của tôi; chấp nhận để đóng câu hỏi)
guiverc

3
@Prashant Singh: Lý do cơ bản nhất khiến bộ tải khởi động Windows không làm điều này (hoặc không, trở lại khi tôi biết một chút về Windows) là MicroSoft không kiếm tiền bằng cách cho phép bạn chạy các hệ điều hành khác.
jamesqf
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.