Perform bad blocks scan on root partition in Linux
See Can I run fsck or e2fsck when Linux file system is mounted?, which notes that running any fsck on a mounted filesystem can result in disk or data corruption.
It suggests the following solutions:
A. Take down system to single user mode, unmount system, then run e2fsck
init 1 umount /dev/sda e2fsck -y /dev/sda3
B. Boot from the installation CD into rescue mode
boot: linux rescue nomount<br/> mknod /dev/sda mknod /dev/sda3 fsck /dev/sda3
Another solution would be to use fsck to check the entire disk (except swap) on boot time, as root:
shutdown -Fr now
where -F stands for force fsck check and -r for reboot.
If your init scripts support it (Fedora IIRC), you can add
-c -c to
/fsckoptions (then create
/forcefsck and reboot).
Unfortunately, this feature isn't available everywhere. You probably have to reboot to a LiveCD/LiveUSB instead.
You can boot the system and specify
init=/bin/bash as boot parameter. This will run bash at boot and not the regular startup scripts. As a result no filesystems are processed and you are left with a read-only root.
Now you have a read-only root and you can fsck it.