Glad to see my solution has helped you. Of course this is when you don't have any other option.The suggestion was to download another version of UNIX (called Slax) from http://www.slax.org/ , burn a CD (or prepare a USB device), and boot from that, instead of Ubuntu live CD. Supposedly it won't have the problem that Ubuntu live CD has, namely, trying to auto-mount the now-unmountable partition (sda1), failing, and just sitting there, in the process keeping sda1 "busy" and not accessible to e2fsck.
I wanted to try that, but could not burn a good CD (i.e., one, booting from which would be fully successful without I/O errors), presumably because the CD writer I was using wasn't good enough for the "troubled" computer's CD drive to fully read.
I wondered if I could just change the startup options for Ubuntu live CD (this is how: https://help.ubuntu.com/community/BootOptions ) to tell Ubuntu, "please, don't touch /sda1 for now!" But adding options such as "sda=noprobe" (or should it have been "sda1=noprobe"?) to the boot command line seemed to have no effect whatsoever.
So I ended up using the alternative solution described at http://sanjayak71.blogspot.com/2010/...tion-from.html : basically, copying the entire /dev/sda1 to a huge disk file on another hard drive using the "dd" command, then running e2fsck on that file, and finally copying the "fixed" file back /dev/sda1 with "dd":
Even before moving the data back (the second "dd") one could temporarily mount the "fixed" file as a "loop mount" filesystem:Code:#-- mount my other (good) hard disk drive sudo mkdir /mnt/b sudo mount /dev/hdb1 /mnt/b #-- copy sudo dd if=/dev/sda1 of=/mnt/b/sda1.img #-- fix sudo e2fsck -y /mnt/b/sda1.img #-- once e2fsck completes successfully, move the data back sudo dd if=/mnt/b/sda1.img of=/dev/sda1
in order to verify that the "fixed" file system would indeed have your files as you know them. (I would, however, undo this temporary mounting (with "sudo umount /mnt/loopa") before doing the second "dd", to ensure I am not trying to copy a file system in an inconsistent state.Code:sudo mkdir /mnt/loopa sudo mount -o loop /mnt/b/sda1.img /mnt/loopa
In Sanjay's post referred to above, he was, I think, using an external USB device instead of a second hard drive. But that wasn't an option for me, since all my external USB devices happened to be formatted with vfat, and could not create a fiel bigger than 4 GB.
In any event, this was a rather inefficient way for solving the problem (as compared to running e2fsck directly on the affected drive, if you could make it run!), since the rate of data transfer between drives with "dd" was under 0.5 gigabyte per minute on my machine, and for an entire partition that totals up to quite a bit of wait. But at least it worked.