What Is the Volume Boot Code?

What Volume Boot Code Does & Help Fixing Volume Boot Code Errors

The volume boot code (VBC) and disk parameter block are the two major parts that make up the volume boot record/sector. The VBC is called upon by the master boot code and is used to start the boot manager, which begins the actual loading of the operating system.

The volume boot code exists on every partition where the volume boot record exists, which is every formatted partition. However, it's only called upon by the master boot code for the primary partition that's set as active. Otherwise, for non-active partitions, the volume boot code remains unused.

VBCs are specific to the operating system on that particular partition. For example, a volume boot code for Windows 10 may function differently than one for a flavor of Linux or even a different version of Windows like Windows 7.

Illustration of computer code
Iconfinder

What the Volume Boot Code Does

The master boot record searches for a bootable device in whichever boot sequence/order is set by BIOS.

Once a relevant device is found, like a hard drive, the volume boot code is responsible for loading the proper files that starts the operating system. For Windows 11 through Windows Vista, it's the Windows Boot Manager (BOOTMGR) that actually loads the operating system.

For older versions of Windows, like Windows XP, it's the NT Loader (NTLDR) that the VBC uses to start the operating system.

In either case, the volume boot code finds the correct data to move the boot process onward. You can see here when the VBC is used in a typical process in which the OS is loaded from a hard drive:

  1. POST is run to check hardware functionality.

  2. BIOS loads and executes code from the master boot record located on the first sector of the hard drive.

  3. The master boot code looks through the master partition table for a bootable partition on that hard drive.

  4. An attempt is made to boot the primary, active partition.

  5. The volume boot sector of that partition is loaded into memory so that its code and disk parameter block can be used.

  6. The volume boot code within that boot sector is given control of the rest of the boot process, where it makes sure that the file system structure is in working order.

  7. Once the VBC validates the file system, the BOOTMGR or NTLDR is executed.

  8. Like mentioned above, the BOOTMGR or NTLDR is loaded into memory and control is transferred to them so that the proper OS files can be executed and Windows can start normally.

Volume Boot Code Errors

As you can see above, there are many components that make up the total process during which the operating system can ultimately be loaded. This means there are many instances when an error can be thrown, and therefore different issues that could cause specific error messages.

A corrupt volume boot code usually results in hal.dll errors like:

  • Cannot find \Windows\System32\hal.dll
  • 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.

Those kinds of errors can be fixed with the bootsect command, one of the many Command Prompt commands available in Windows. See How to Use Bootsect to Update the VBC to BOOTMGR if you need help with that.

In Step 4 above, if the attempt to find an active partition fails, you might see an error like "No boot device." It's clear at the point the error occurs that it's not due to the VBC.

It's possible that there either isn't a properly formatted partition on that hard drive or that BIOS is looking at the wrong device, in which case you can change the boot order to the correct device like the hard drive (instead of a disc or external hard drive, for example).

Was this page helpful?