Volume Boot Code và Disk Parameter Block là 2 phần chính tạo nên Volume Boot Record/Sector. Volume Boot Code được yêu cầu bởi Master Boot Code và được sử dụng để khởi động trình quản lý khởi động (boot manager), bắt đầu quá trình load thực tế của hệ điều hành.
Volume Boot Code tồn tại trên mọi phân vùng có Volume Boot Record (đó là mọi phân vùng được định dạng). Tuy nhiên, nó chỉ được yêu cầu bởi Master Boot Code cho phân vùng chính được đặt là active. Mặt khác, đối với các phân vùng không active, Volume Boot Code vẫn không được sử dụng.
Volume Boot Code dành riêng cho hệ điều hành trên phân vùng cụ thể đó. Ví dụ, Volume Boot Code cho Windows 10 có thể hoạt động khác với code dành cho phiên bản Linux, hoặc thậm chí là một phiên bản Windows khác như Windows XP hoặc Windows 7.
Lưu ý: Volume Boot Code đôi khi được gọi bằng tên viết tắt VBC.
Volume Boot Code làm nhiệm vụ gì?
Master Boot Record tìm kiếm một thiết bị có thể boot trong bất kỳ trình tự/thứ tự khởi động nào được thiết lập bởi BIOS.
Khi tìm thấy một thiết bị có liên quan, như ổ cứng, Volume Boot Code có trách nhiệm load các file thích hợp khởi động hệ điều hành. Đối với Windows 10, Windows 8, Windows 7 và Windows Vista, đó là Windows Boot Manager (BOOTMGR).
Đối với các phiên bản Windows cũ hơn, như Windows XP, đó là NT Loader (NTLDR) mà Volume Boot Code sử dụng để khởi động hệ điều hành.
Bạn có thể thấy Volume Boot Code được sử dụng trong một tiến trình điển hình trong đó hệ điều hành được load từ ổ cứng:
1. POST được chạy để kiểm tra chức năng phần cứng.
2. BIOS load và thực thi code từ Master Boot Record nằm trên sector đầu tiên của ổ cứng.
3. Master Boot Code xem qua bảng phân vùng chính để tìm phân vùng có thể boot trên ổ cứng đó.
4. Một nỗ lực được thực hiện để boot phân vùng chính, đang active.
5. Volume Boot Sector của phân vùng đó được load vào bộ nhớ để có thể sử dụng code và Disk Parameter Block.
6. Volume Boot Code trong boot sector được trao quyền kiểm soát phần còn lại của quá trình boot, trong đó nó đảm bảo rằng cấu trúc hệ thống file đang hoạt động.
7. Khi Volume Boot Code xác nhận hệ thống file, BOOTMGR hoặc NTLDR được thực thi.
8. Giống như đã đề cập ở trên, BOOTMGR hoặc NTLDR được load vào bộ nhớ. Hành động điều khiển được chuyển đến chúng để những file hệ điều hành phù hợp có thể được thực thi và Windows có thể khởi động bình thường.
Lỗi Volume Boot Code
Như bạn có thể thấy ở trên, có nhiều thành phần tạo nên toàn bộ quá trình, trong đó hệ điều hành cuối cùng có thể được load. Điều này có nghĩa là lỗi có thể xảy ra trong nhiều trường hợp. Những vấn đề khác nhau có thể gây ra các thông báo lỗi cụ thể.
Volume Boot Code bị hỏng thường dẫn đến các lỗi hal.dll như:
"Cannot find \Windows\System32\hal.dll"
Hay:
"Windows could not start because the following file is missing or corrupt: C:\Windows\system32\hal.dll. Please re-install a copy of the above file."
Những loại lỗi Volume Boot Code có thể được sửa bằng lệnh bootsect, một trong nhiều lệnh Command Prompt có sẵn trong Windows.
Trong bước 4 ở trên, nếu nỗ lực tìm phân vùng active không thành công, bạn có thể thấy một lỗi như "No boot device". Rõ ràng tại thời điểm xảy ra lỗi, nguyên nhân không phải do Volume Boot Code.
Có thể không có phân vùng được định dạng đúng trên ổ cứng đó hoặc BIOS đang nhìn nhầm thiết bị. Trong trường hợp đó, bạn có thể thay đổi thứ tự boot sang đúng thiết bị như ổ cứng (thay vì đĩa hoặc ổ cứng ngoài chẳng hạn).