Mount EXT3 or EXT4 partition in Windows

The Problem

You have a dual boot (Linux / Windows) system and want to access your Linux EXT3 partition from windows. Existing drivers/programs available for windows that used to work, do not work for you now. The problem is that IFS (http://www.fs-driver.org/) doesn't like the 256 inode size that Ubuntu formats with.

Some people are able simply to reformat using a Hardy cd (which formats with a 128 inode size) and then install the latest release of Ubuntu on the partitions created by the Hardy cd. There are a couple more things to try that work for some others:
http://ubuntuforums.org/showthread.php?t=1049405
http://ubuntuforums.org/showthread.php?t=979523&

The following is a solution if don't want to wipe your partition, or other solutions didn't work.

The Solution

I created an Ubuntu virtual machine inside of windows. I then mounted the physical linux partition into this virtual machine, and used samba to share them with my windows system. Sounds simple, but it took a bit of research to get it working. Below are the steps needed to achieve this. You will need to alter any paths and usernames to suit your particular circumstance.

  1. Boot into windows and install VirtualBox
  2. Open Command prompt in the Host computer (i.e. windows) then go to the Sun VirtualBox installation folder
  3. Enter this command to access the entire physical disk as Raw Disk
    C:\Program Files\Sun\VirtualBox>VBoxManage internalcommands createrawvmdk -filename c:\Users\fred\.Virtualbox\mydrive.vmdk -rawdisk \\.\PhysicalDrive0
  4. You should receive a success message. You can confirm that command worked correctly by visiting the location of VMDK file created which should be a small sized file
  5. Open Sun VirtualBox, and go to Virtual Media Manager
  6. Add the newly created ‘mydrive.vmdk’ under hard disk
  7. Add the newly added hard disk to your virtual machines in Sun VirtualBox which will let you start accessing them from your Virtual Machine Guest Operating system
  8. Boot up your guest Ubuntu system
  9. View the systems physical info to identify the partition you want to access with this command
    $ sudo fdisk -l
  10. Add the required partition to /etc/fstab so that it will be automatically mounted when you start the virtual machine. Below is the section of code I added to my fstab
    # access data partition of host machine<br> /dev/sdb8 /media/data ext3 noatime 0 0
    Note, in the example above, you will need to make sure that an empty (i.e. unused) file data is created in /media. You can do this by entering
    $sudo touch /media/data
  11. Reboot the guest virtual machine
  12. When you reboot, the raw disk will be available and all partitions displayed in the "places" menu. The partition you wanted to auto mount will already be available without having to mount it
  13. In the guest virtual machine, use synaptic package manager to install samba (and gadmin-samba if you want to use a gui tool to configure samba)
  14. Configure samba to share /media/data with appropriate permissions
  15. Hint: use
    $ sudo smbpasswd -a fred
    to add the user "fred" to samba as gadmin-samba was not playing nice (Your username will most likely not be fred)