I'm using TrueCrypt system encryption for my Windows Partition and use its chain loader to boot Linux via GRUB, which is installed on my /boot partition. However, at some point I also had GRUB installed on my root partition. Because of that the TrueCrypt boot loader — after pressing ESC when I didn't want to boot Windows — showed a list of partitions to boot from instead of directly starting the only other boot loader. That's less convenient and a little bit annoying, so I wanted to get rid of the entry. As the TrueCrypt boot loader seems to detect boot loaders on partitions automatically, I wanted to try deleting the redundant one. However, I didn't find anything on how to delete a boot loader from a partition; that's probably because it usually isn't necessary. A quick search on Wikipedia revealed that the boot loader on a partition is stored in the volume boot record (VBR) of the partition, which is just the first sector, similar to the MBR. So I first made a backup in case I got anything wrong1:
and then wrote zeros to the VBR:
$ dd if=/dev/sda5 of=sda5.vbr bs=512 count=1
which did exactly what I wanted. Be aware, however, that when you want to delete the boot loader from an extended partition, this would overwrite the partition table in the extended boot record (EBR), so you may only overwrite the first 446 bytes of the sector instead of all 512. One last thing that cannot be stressed enough: Have a current and complete backup handy, and be prepared you might have to use it. I'm no expert on the subject. If the VBR is used for more purposes than just containing a boot loader as I expect, zeroing the whole sector may really go wrong.
$ dd if=/dev/zero of=/dev/sda5 bs=512 count=1
- make sure to backup to a different partition than the one you're going to write on :) [↩]