I've got an image file of a hard drive from a client that wants a database extracted out of it. The client does not know any details except that the database was once installed on the server from which the image was created.

I found out that it is a UNIX system with a Informix DBS installed, but I am unable to find any database files. I'm not sure about the version of Informix, but it seem that it was installed around 15 years ago.

I'm not able to boot from the image. I'm just viewing the files.

Do informix database files have an extension and what could it be? Any other tips how to identify the database files?


There are many questions here, and let me try to answer them in order of importance to your situation:

  1. Extracting a database from a hard drive image I am assuming you are interested in the actual data, i.e., various tables, its rows, and columns, etc. This is nearly impossible if don't actually have the informix software itself because modern database systems don't store the data in flat files or ASCII format. A single informix instance may have many databases, and each database will have many tables with data, all stored in proprietary a binary format! It is also not uncommon to partition a single table and store it across multiple "files". So, even after you find the relevant files that contain the data, you may not be able to retrieve all the data. The question you should be asking is what is the end goal behind this exercise?

  2. Filename and extension informix databases are stored in binary format inside storage chunk files, known as "spaces" in informix terminology. These files need not have any extension and it is left up to the user (database administrator) to specify the name of the file. So the user may or may not have specified an extension.

  3. Tips for finding the files There are many ways to find the files. You start with identifying the location of the informix software binary/executable files and the configuration files. The informix installation directory is referred to as $INFORMIXDIR in informix parlance. Search the drive for binary files named oninit or onstat. These files should be owned by either user root or informix . These files are located in $INFORMIXDIR/bin. Now we know the location of $INFORMIXDIR. Go to $INFORMIXDIR/etc. This is where the instance configuration file will be located. While the config file does not need to have a specific name or extension, it is typical to keep the file name something similar to onconfig or oncfg. You can also do a grep for ROOTNAME and ROOTPATH inside $INFORMIXDIR/etc to find the config file(s) and the root dbspace: grep -rn 'ROOTNAME\|ROOTPATH' * The root dbspace is the chunk file where the system databases get created and also the default file where the user databases will get created if not explicitly set to some other dbspace. Once you have the config file identified, you can start digging deeper and deeper.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.