Windows Boot Manager
Tên khác | BOOTMGR |
---|---|
Phát triển bởi | Microsoft |
Hệ điều hành | Windows |
Thay thế cho | NTLDR |
Thể loại | Trình tải khởi động |
Giấy phép | Độc quyền |
Windows Boot Manager (BOOTMGR
) là trình tải khởi động được Microsoft cung cấp cho các phiên bản Windows NT bắt đầu từ Windows Vista và Windows Server 2008. Đây là chương trình đầu tiên được khởi động bởi BIOS hoặc UEFI của máy tính và chịu trách nhiệm tải phần còn lại của Windows.[1] Nó đã thay thế cho NTLDR tồn tại trong các phiên bản Windows cũ hơn.
Boot sector hoặc UEFI sẽ tải Windows Boot Manager (một tập tin có tên BOOTMGR
trên phân vùng hệ thống hoặc phân vùng khởi động), truy cập vào kho Boot Configuration Data và sử dụng thông tin để tải hệ điều hành thông qua winload.exe
hoặc winresume.exe
.[2]
Khởi động
[sửa | sửa mã nguồn]Trên hệ thống sử dụng firmware BIOS, BIOS sẽ kích hoạt mã khởi động MBR từ một ổ đĩa cứng khi máy tính được khởi động. Mã khởi động MBR và mã khởi động VBR được viết riêng cho từng hệ điều hành. Trong Microsoft Windows, mã khởi động MBR tiến hành tìm một phân vùng hoạt động (MBR chỉ có kích cỡ 512 byte), sau đó chạy đoạn mã khởi động VBR của phân vùng hoạt động đó. Mã khởi động VBR sau đó tiến hành tìm và chạy tập tin bootmgr
từ phân vùng hoạt động.[3]
Trên hệ thống sử dụng firmware UEFI, UEFI kích hoạt bootmgfw.efi
từ một phân vùng hệ thống EFI khi hệ thống khởi động, bắt đầu Windows Boot Manager.
Hoạt động
[sửa | sửa mã nguồn]Khi đã được khởi động, Windows Boot Manager đọc Boot Configuration Data để xác định các hệ điều hành đang có trên hệ thống và quyết định có hiện menu cho phép người dùng chọn hệ điều hành để khởi động không. Trước Windows Vista, dữ liệu này được lưu trong boot.ini.
Các tùy chọn menu này có thể bao gồm:
- Tùy chọn khởi động Windows Vista hoặc các phiên bản mới hơn bằng cách gọi winload.exe.
- Tùy chọn quay trở lại Windows Vista hoặc các phiên bản mới hơn từ trạng thái ngủ đông bằng cách gọi winresume.exe.
- Tùy chọn khởi động một phiên bản cũ hơn của dòng Windows NT bằng cách gọi NTLDR của nó.
- Tùy chọn tải và chạy một volume boot record.
Tải hệ điều hành
[sửa | sửa mã nguồn]Hệ điều hành được tải bởi các trình tải khởi động riêng biệt cho mỗi phiên bản Windows được cài đặt trên hệ thống, được gọi là Windows Boot Loader.
winload.exe
[sửa | sửa mã nguồn]Windows Boot Manager kích hoạt winload.exe
—trình tải khởi động—để tải nhân hệ điều hành (ntoskrnl.exe) và các trình điều khiển thiết bị cốt lõi. Theo cách hoạt động này, winload.exe có chức năng tương đường với chức năng trình tải hệ điều hành của NTLDR trong các phiên bản Windows NT trước. Trên hệ thống UEFI, tập tin này được gọi là winload.efi
và luôn nằm tại đường dẫn \windows\system32
hoặc \windows\system32\boot
.
winresume.exe
[sửa | sửa mã nguồn]Nếu máy tính vừa được ngủ đông, bootmgr
thay vào đó sẽ gọi winresume.exe
. Trên hệ thống UEFI, tập tin này có tên winresume.efi
và luôn nằm tại \windows\system32
hoặc \windows\system32\boot
.[4]
Boot Configuration Data
[sửa | sửa mã nguồn]Boot Configuration Data (BCD - Dữ liệu cấu hình khởi động) là một cơ sở dữ liệu không phụ thuộc firmware để lưu trữ dữ liệu cấu hình tại thời điểm khởi động máy.[5] Nó được sử dụng bởi Windows Boot Manager và thay thế cho boot.ini từng được NTLDR sử dụng.
Boot Configuration Data được lưu trong một tập tin dữ liệu có cùng định dạng như các hive Windows Registry và sau cùng sẽ được gắn vào khóa registry HKEY_LOCAL_MACHINE\BCD00000[6] (với quyền hạn chế[7]). Với hệ thống UEFI, tập tin này nằm tại /EFI/Microsoft/Boot/BCD
trên phân vùng hệ thống EFI. Với hệ thống BIOS truyền thống, tập tin này nằm tại /boot/BCD
trên phân vùng hoạt động.[8]
bcdedit
[sửa | sửa mã nguồn]Boot Configuration Data có thể được sửa đổi bằng một công cụ dòng lệnh (bcdedit.exe), Registry Editor[6] (regedit.exe), Windows Management Instrumentation, hoặc các công cụ bên thứ ba như EasyBCD, BOOTICE,[9] hoặc Visual BCD Editor.[10]
Boot Configuration Data cho phép tích hợp bên thứ ba để bất cứ ai có thể triển khai các công cụ như chẩn đoán hay tùy chọn khôi phục
Xem thêm
[sửa | sửa mã nguồn]Tham khảo
[sửa | sửa mã nguồn]- ^ barrygolden. “Boot and UEFI - Windows drivers”. learn.microsoft.com (bằng tiếng Anh). Truy cập ngày 20 tháng 3 năm 2023.
- ^ de Boyne Pollard, Jonathan. “The Windows NT 6 boot process”. Frequently Given Answers. Bản gốc lưu trữ ngày 26 tháng 8 năm 2016.
- ^ “Boot Sequence of Windows Multi-Boot - Multibooters.com”. www.multibooters.com. Bản gốc lưu trữ ngày 2 tháng 6 năm 2022. Truy cập ngày 19 tháng 11 năm 2020.
- ^ Hudek, Ted; Marshall, Don; Graf, Eliot (23 tháng 4 năm 2019). “Overview of Boot Options in Windows”. Microsoft Docs Hardware Dev Center (bằng tiếng Anh). Microsoft. Lưu trữ bản gốc ngày 21 tháng 4 năm 2020. Truy cập ngày 21 tháng 4 năm 2020.
- ^ Marshall, Don. “Overview of Boot Options in Windows - Windows drivers”. learn.microsoft.com (bằng tiếng Anh). Truy cập ngày 20 tháng 3 năm 2023.
- ^ a b Russinovich, Mark (8 tháng 11 năm 2011). “Fixing Disk Signature Collisions”. Mark's Blog. Microsoft Corporation. Microsoft TechNet. Truy cập ngày 5 tháng 2 năm 2021.
- ^ “Why can't I edit the system BCD store via regedit?”.
- ^ Microsoft. “Knowledge Base Article ID: 2004518”. Bản gốc lưu trữ ngày 16 tháng 1 năm 2010.
- ^ Pauly. “BOOTICE board index”. Bản gốc lưu trữ ngày 28 tháng 12 năm 2013. Truy cập ngày 27 tháng 12 năm 2013.
- ^ Bo Yans. “Visual BCD Editor”.
Đọc thêm
[sửa | sửa mã nguồn]- de Boyne Pollard, Jonathan. “The Windows NT 6 boot process”. Frequently Given Answers. Bản gốc lưu trữ ngày 26 tháng 8 năm 2016. Truy cập ngày 24 tháng 7 năm 2024.