What are the important differences between
chkdsk, and which command will reduce and correct the most hard disk errors?
Apart from the link that fluteflute mentions the main difference for the end user is that chkdsk only checks the filesystems that are supported in windows, Fat32 and NTFS as the main ones.
fsck checks, Fat32, NTFS (Via ntfs-3g), ext2, ext3, ext4, reiser, xfs and a whole bunch of other ones. doing a
So basically chkdsk is limited and optimized for ntfs while fsck is not only opened to several fylesystems but it receives far greater optimizations and features than the windows counterpart in the same time frame. And because of this, it does some quick checks and some deep checks to a filesystem depending on the actual fylesystem, error detected, flags on the fylesystem and other attributes that are active on the system.
The tools that look like chkdsk when the NTFS filesystem is involved are several of the ntfs-3g collections of tools that in some cases surpass what chkdsk (And even scandisk) can do, for example:
This gives into some new ways of doing software recovery, maintenance, and repair. For example, in cases where a problem arises that the Windows system does not load, you could load up your Ubuntu and fix some of the problems with a quick fsck/ntfs-3g on the partition/disk. Or undelete something, defragment, etc.. Gives you an additional solution to several problems.