Ubuntu: Unable to Boot: error couldn't read file



Question:

I have installed Ubuntu 12.04 LTS on an IBM Thinkpad T41.

Up until Linux 3.2.0-30 generic everything was working fine. I accept all the software update.

With 3.2.0-31 generic the machine freezes and I get the error:

error couldn't read file  Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)  

With 3.2.0-32, the

error: Cannot read the Linux header  

then the machine returns to the Grub menu

3.2.0-30 still works fine if I select that.


Solution:1

Having the same error message on an old PC after a kernel update; 3.2.0-69 still works, 3.2.0-70 does not.

I suspect it is caused by the fact that the 3.2.0-70 files in folder /boot are located above the 128 GB limit imposed by many an old BIOS.

I used filefrag to get an idea about the physical location on disk of the files involved. Just guessing here: with a block size of 4KB, a value of 32,000,000 in column physical suggests the file is located near the 128 GB boundary. Notice how the 3.2.0-69 files are well below that value, whereas the 3.2.0-70 files are above.

$ filefrag -v /boot/*{69,70}*  Filesystem type is: ef53  File size of /boot/abi-3.2.0-69-generic-pae is 805150 (197 blocks, blocksize 4096)   ext logical physical expected length flags     0       0  7548416             197 eof  /boot/abi-3.2.0-69-generic-pae: 1 extent found  File size of /boot/config-3.2.0-69-generic-pae is 147622 (37 blocks, blocksize 4096)   ext logical physical expected length flags     0       0  7542592              37 eof  /boot/config-3.2.0-69-generic-pae: 1 extent found  File size of /boot/initrd.img-3.2.0-69-generic-pae is 16593585 (4052 blocks, blocksize 4096)   ext logical physical expected length flags     0       0 26466304            4052 eof  /boot/initrd.img-3.2.0-69-generic-pae: 1 extent found  open: Permission denied  open: Permission denied  File size of /boot/abi-3.2.0-70-generic-pae is 805201 (197 blocks, blocksize 4096)   ext logical physical expected length flags     0       0 38547712             197 eof  /boot/abi-3.2.0-70-generic-pae: 1 extent found  File size of /boot/config-3.2.0-70-generic-pae is 147652 (37 blocks, blocksize 4096)   ext logical physical expected length flags     0       0 38550848              37 eof  /boot/config-3.2.0-70-generic-pae: 1 extent found  File size of /boot/initrd.img-3.2.0-70-generic-pae is 16592761 (4051 blocks, blocksize 4096)   ext logical physical expected length flags     0       0 38588416            4051 eof  /boot/initrd.img-3.2.0-70-generic-pae: 1 extent found  open: Permission denied  open: Permission denied  

So how to relocate the files to a safer zone? You might try these steps:

  • Clean up your HDD; delete some big, old files in an attempt to make room for the boot files.
  • Copy each boot file.
  • Delete the original boot files.
  • Rename/move the copied files to match the names of the original files.

A more reliable and structural solution is to repartion your HDD; make sure folder /boot is in a partition that is located below the 128 GB boundary.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »