Windows – Make internal HD read only

hard driventfswindows 8

I would like to make a HD read only to prevent any real changes(except turning off read only). The reason is the hard drive seems to get corrupt for no reason because I never write to it except in rare cases. It is a HD used for storage and all the data is generally read only.

What happens. I believe, is that the sata cable has problems and when booting up windows either thinks the MFT is bad because the cable gives errors, or at some point wrote data that was corrupt because of the bad cable(or possible SATA controller).

In any case, the drive shouldn't be written to when I'm not writing data… but if I had some way to prevent data from being written when I don't want it to then I could determine if it's the drive or not(since eventually it will become corrupt) and potentially prevent having to copy all the data back to the drive.

The drive's MFT becomes corrupt as far as I can tell, not the files. So, standard file security settings won't work. Is there any way to mark a partition or drive as read only in windows to really prevent writing? (but of course change the flag to write when writing is required)

Best Answer

First of all, I'd suggest replacing your SATA cable with a new one. It's a robust solution even though you'll make your partition read-only.

This solution by Everett from another question may work for you:

  • Switch off "automount" by running mountvol.exe /N
  • Connect disk to Windows (do not mount the disk)
  • Run diskpart
    • Enter list volume
    • Enter select volume X (where X is the correct volume number from the previous command)
    • Enter att vol set readonly
    • Enter detail vol and ensure the read-only bit is set

Now you can mount the volume, the volume will be read-only.

To re-enable automatic mounting of new volumes use mountvol.exe /E.
To remove the read-only flag, select the volume in diskpart (use the commands above) and enter att vol clear readonly.

Related Question