10

Is there such a thing as a Windows Boot Configuration Data (BCD) viewer for Linux?

I understand that BCD files are 'like registry hives' and tools exist to read registry hives for Linux.

Is there a way to see the contents, the list of partitions etc, that a BCD file contains? It used to be easy with boot.ini files but not anymore!

My use case is this: I have a hidden partition that is not accessible from Windows (it's a system partition) and I want to read the BCD file it has. On the same system, both that partition and the Windows boot partition have boot managers and BCD files and I'm trying to sort this out (and dual-boot Linux eventually).

2 Answers 2

9

Running apt-cache search windows registry on Debian to look for packages that may suit your purpose brings up five candidates. You can make a similar search on packages.debian.org, or search on the Debian packages site (use the “search package directories” form, and make sure to select “descriptions”).

Chntpw was developed to change a forgotten Windows administrator password, but it can view and edit any registry entry. There's a boot CD on the site.

Hivex is a library for accessing Windows registry hives. It's part of libguestfs, a suite of tools to work with virtual machine images from the host. It comes with command line tools to extract and edit registry entries. It supports BCD hives.

Parse::Win32Registry is a Perl module for reading Windows registry files.

RegLookup is a small utility to read Windows registry hives.

Samba comes with tools to access the Windows registry: editreg in Samba 3, and regshell and more in Samba 4. In Debian (only unstable right now), they're in the registry-tools package.

0
6

I've started writing a Python library for manipulating the Windows BCD. The repository is available on GitHub.

9
  • Your link give a HTTP 404 error, have you move your libbcd repository somewhere else ? If so, can you update the link in your answer ?
    – SebMa
    Commented Nov 22, 2020 at 8:38
  • 1
    I've done a reupload on GitHub. Note it's an old library. I used it once in production because I had no other choice but I wouldn't call it production-ready.
    – wodny
    Commented Nov 22, 2020 at 18:02
  • Very interesting... Can you precise the python version your program requires in your github project ? BTW : pip search hivex returned nothing, where did you find this module that you import in BCD.py#L19 ?
    – SebMa
    Commented Nov 22, 2020 at 18:30
  • 1
    I've added "2" to the project's description because I have no idea what it really currently requires. It was probably Python 2.6 at the time of writing (Debian Squeeze). Hivex probably came from the Debian repo (packages.debian.org/buster/python-hivex).
    – wodny
    Commented Nov 22, 2020 at 19:14
  • Thanks. I think you can add this link to your README.txt : github.com/libguestfs/hivex so that people will know where its coming from :))
    – SebMa
    Commented Nov 22, 2020 at 19:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .