Jim
2025-01-26 02:06:09 UTC
I was experimenting with a hard drive the other day,
a 4TB one, and making the C: drive really large.
This was to counter a complaint from some software
"insufficient space to..." type error.
So anyway, I could see a green stripe of material about
half way out on the disk. I figured, no problem,
if I want to shrink the disk, that material will move
out of the way for me.
It didn't.
I got an error, that said the material could not be moved,
and it was different than the usual material problem. It was
traceable to $BADCLUS, a cluster marked off by the file
system driver. Apparently, the SMART log reported a
series of "UDMA CRC errors". These are errors on the
packets on the SATA cable, causing the packets to be
retransmitted. That's not a conventional data CRC as such.
Yet, the software decided that this constituted a bad cluster,
so the area on the disk was marked off.
There is a option in CHKDSK, to verify bad clusters, but this
in fact, scans the entire partition again, as if doing a /r .
This would check for errors, and bad clusters.
   chkdsk /f /r C:    # Fix structural errors, read-scan all
clusters to verify they are working
                        # Mark off new bad clusters. Do not verify
any existing bad clusters.
   chkdsk /b    C:    # This seemingly does the same thing, but can
turn bad clusters into good clusters.
                        # If a cluster was "flagged by mistake", this
can undo it.
On a large disk, this can take hours to complete (either command).
When the /b run completed, it reported
   "Removing 1 clusters from the Bad Clusters File."
and that is what I was hoping would happen on the /b run.
I went back to Disk Management, and I still could not shrink the volume.
It was still reporting there was a problem with the same issue as
previously.
On a hunch, I booted a Windows 7 disk, cabled up the affected drive,
and did a regular CHKDSK on the partition in question. I know at this
point, there is nothing wrong with any clusters, so there is no need to
do an hours-long scan yet again.
   chkdsk /f K:        # Windows 7 CHKDSK (of the second disk drive
affected partition)
and finally, after this, the Shrink menu started working again in
Disk Management. Presumably this is related to Windows 7
correcting $BITMAP-type issues. (W10/W11 don't handle $BITMAP
properly on partitions any more, leaving data at rest in an
indeterminate state.) Windows 7 cares about the $BITMAP, and
fixed it up for me.
Disk is now back to normal again. The shrink completed (2TB partition
down
to 200GB) with no trouble at all. When a partition starts small, you make
it huge, then there won't be a problem to make it as small as it was
at first.
Except if there is a bad cluster in there (a cluster flagged as bad
while the file system was running).
           _________________________________________________
          /                                                \   4096
byte
         X  512  512  512  512  512  512  512  512  X
cluster on
          \             XXX                               /   OS
C: partition
           ------------------------------------------------
           If any sector is bad, the cluster is marked bad.
           The "cluster" is a unit of storage in NTFS.
   Paul
More reason to keep a spare Win7 machine /disk around huh.a 4TB one, and making the C: drive really large.
This was to counter a complaint from some software
"insufficient space to..." type error.
So anyway, I could see a green stripe of material about
half way out on the disk. I figured, no problem,
if I want to shrink the disk, that material will move
out of the way for me.
It didn't.
I got an error, that said the material could not be moved,
and it was different than the usual material problem. It was
traceable to $BADCLUS, a cluster marked off by the file
system driver. Apparently, the SMART log reported a
series of "UDMA CRC errors". These are errors on the
packets on the SATA cable, causing the packets to be
retransmitted. That's not a conventional data CRC as such.
Yet, the software decided that this constituted a bad cluster,
so the area on the disk was marked off.
There is a option in CHKDSK, to verify bad clusters, but this
in fact, scans the entire partition again, as if doing a /r .
This would check for errors, and bad clusters.
   chkdsk /f /r C:    # Fix structural errors, read-scan all
clusters to verify they are working
                        # Mark off new bad clusters. Do not verify
any existing bad clusters.
   chkdsk /b    C:    # This seemingly does the same thing, but can
turn bad clusters into good clusters.
                        # If a cluster was "flagged by mistake", this
can undo it.
On a large disk, this can take hours to complete (either command).
When the /b run completed, it reported
   "Removing 1 clusters from the Bad Clusters File."
and that is what I was hoping would happen on the /b run.
I went back to Disk Management, and I still could not shrink the volume.
It was still reporting there was a problem with the same issue as
previously.
On a hunch, I booted a Windows 7 disk, cabled up the affected drive,
and did a regular CHKDSK on the partition in question. I know at this
point, there is nothing wrong with any clusters, so there is no need to
do an hours-long scan yet again.
   chkdsk /f K:        # Windows 7 CHKDSK (of the second disk drive
affected partition)
and finally, after this, the Shrink menu started working again in
Disk Management. Presumably this is related to Windows 7
correcting $BITMAP-type issues. (W10/W11 don't handle $BITMAP
properly on partitions any more, leaving data at rest in an
indeterminate state.) Windows 7 cares about the $BITMAP, and
fixed it up for me.
Disk is now back to normal again. The shrink completed (2TB partition
down
to 200GB) with no trouble at all. When a partition starts small, you make
it huge, then there won't be a problem to make it as small as it was
at first.
Except if there is a bad cluster in there (a cluster flagged as bad
while the file system was running).
           _________________________________________________
          /                                                \   4096
byte
         X  512  512  512  512  512  512  512  512  X
cluster on
          \             XXX                               /   OS
C: partition
           ------------------------------------------------
           If any sector is bad, the cluster is marked bad.
           The "cluster" is a unit of storage in NTFS.
   Paul
above but what about Ubuntu?? What command to use to check this?
I have a 2 TB disk that is slow and showing signs of wear & tear so I
tried to clone it on a new SSD 1TB disk. Acronis states that it is
possible to clone on to a smaller disk as long as the actual data is not
more than the size of the target disk. The source has about 350GB of
data (out of 2TB disk size) but this can't be cloned because the disk
has bad clusters according to Acronis. So how do I correct this in Linux
ubuntu?
x-posted to ubuntu as well just in case they can respond quickly.