I let this problem exist for months...
Published on
For any of my friends who know me, I am a pretty hard-core anti-Windows user. I have my reasons for doing so, as I don't believe Microsoft to be considered a "good actor" in the computer technology space. Microsoft is pushing telemetry and surveillance into all of their tooling, as well as deprecating all hardware that currently supports Windows 10 by reducing the upcoming Windows 11 release to very-recently-made computer hardware.
But today's story isn't about Microsoft continuing to spit on its users, it's about a problem that I let exist for months and I didn't even know it existed until recently, and it made me go down a rabbit hole of what went wrong, and is driving me to the point of wanting to get rid of Windows from my computer altogether.
I have a computer. It has three different SATA disks. One is a 1TB 5400RPM SeaGate drive, the other two are Kingston and Samsung SSDs at sizes of 120GB and 500GB.
The 1TB slow storage is what I would consider to be my "reliable" storage space. I have had this drive for a number of years, across different computers, and frankly I don't have all that much reason to get rid of it. It is slow as shit when it has an OS installed on it, and the first upgrade I made years ago was to upgrade to an SSD, so this drive was delegated to long-term storage simply because my first SSD was tiny (the Kingston mentioned).
Later on I purchased a 500GB Samsung on a crazy Black Friday/Cyber Monday deal, and I thought to myself "hey, maybe I should let Windows use this. I don't really have much game requirements on my Linux, I can create a Windows partition to dual-boot and game with the proper drivers and software." So this 500GB became my Windows partition, where I played all my fun things like Far Cry 2, or Guild Wars 2. In reality I didn't end up using this Windows much, until I started Genshin Impact.
Once that entered my life, I was playing a lot of it for well over two months. It was a lot of fun, but slowly I fell out of Genshin because it wasn't really all that much enjoyable at a certain point. I find it silly that hero releases are gated behind timed windows throughout the year, so for me to spend a lot of time building up a supply of MTX gems to save for pulls, it felt pointless when the hero I might want isn't due to come out for who knows how long, could be a year from now. I stopped playing because it bored me and went back to Oldschool RuneScape
Naturally, I played Genshin on the Windows partition, because I didn't want to fuss around with Proton/PlayOnLinux settings or whatever, but it secretly planted a bomb I wasn't aware of. One that I only learned about months after the fact, long after my Genshin sessions were a thing of the past.
The minute I tried downloading something that would have overloaded my tiny Linux 120GB SSD, I went to access my other drives, only to find them locked in a read-only state. What the heck happened???
It drives me into a mild panic because I had many other things on my plate going on, and very little weekend time I wanted to spend figuring this out. My action process went like this.
At this point I was pretty ready to re-do my OS anyways, as I was getting tired of disk encryption interrupting my reboot cycle each time. And rebooting my computer as many times as I did for this made me not like full-disk encryption for my personal needs. I would then spend next few hours backing up all my important data to an external hard drive to then re-do my OS, much to my surprise to still see no change.
I wanted to check that maybe my automount permissions weren't correct. I checked the mount settings like this:
$ ps aux | grep mount
mount /dev/by-label/abcdefg-ntfs-drive1 perm=rw ...
mount /dev/by-label/abcdefg-ntfs-drive2 perm=rw ...
The output isn't verbatim what it exactly displayed, but the perm=rw
bit told me that it is indeed trying to mount with full read-write permissions. Nothing changed on that part.
Lastly, I then try to do a manual mount
call myself (something I loathe doing), and to some surprise I see an error I am not personally familiar with.
$ sudo mount /dev/sdc1 ~/stupid-mount-folder
Error mounting /dev/sdc1 at /home/stoven/stupid-mount-folder
...
The disk contains an unclean system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sdc1': Operation not permitted
The NTFS partition is in an unsafe state. Please resume
and shutdown Windows fully (no hibernation or fast restarting),
or mount the volume read-only with the 'ro' mount option
Uhm.. Yeah I guess.
It's one thing if my Windows drive had this issue, that I can understand. Windows uses something called a hiberfil.sys
file to create some file-lock on the drive, of changes to be written and applied. But the problem is this wasn't a Windows partition - this was my 1TB slow disk having this issue. Why did Windows decide to put a lock on this drive? Did I use it even recently? Would I have needed to at all? I can install programs to the 500GB Windows SSD, the 1TB drive exists to simply store things I want to share between systems like movies or photos.
So my questions were: why? And how do I fix? I don't know if I'll ever get an answer to the why part, because maybe it's simply in Windows' nature to mount every disk connected and pretend that there are "changes" to be made. Windows is pretty anti-Linux desktops so I have no doubts this will never matter to them.
The "how do I fix this shit?" part is stated in the error message: log into Windows, and "shut it down". This part seems pretty... ambiguous. And it is. Because shutting down Windows once didn't actually fix this. Rather, it took several attempts, because on my third and last attempt, I did the impossible: I held Shift while pressing "Shut Down", which has entirely different functionality.
So my questions are now:
ntfs3g
or whatever, but those seem like lossy solutions. What if I was months out, had no Windows key, and didn't want to lose transactional information still stuck in the hiberfile.sys
?My only thoughts are unfortunately, without Windows, there wouldn't be a way to fix this without some kind of data loss. Maybe my data changes were tiny and I could have forced it into R/W with a third party tool, but without any way of knowing how large the data transaction would have been, why risk it?
My second thought is, yes, I should probably just delete Windows. In my house there are plenty of Windows devices, but I think it's time I went my own way and removed it entirely from my desktop. This kind of interference wasn't actually worth it, and the amount of stress and mental anguish it caused was not fun at all. I expect things to work, and suddenly when my disks are read-only locked, it's going to give me a headache or two trying to debug it again.
Moving forward, I think today will be the day I strip my desktop of Windows once and for all. I don't miss it, and either way, my current desktop doesn't actually support Windows 11, so did it really matter? I wasn't going to move further than where I was with it currently.
The next question I need to start asking myself is whether or not NTFS is still long-term storage viable. I could probably move all my data over to an ext4
format instead, or brtfs
, but I have zero clue about which one is strictly "better". I have also been curious about deploying a home server for NAS/Samba storage on our local network, but unsure if I would be doing that with an old laptop or possibly my Raspberry Pi 2.
Either way, I'll be happier when Windows is gone for good. No longer a headache for me to have to worry about personally. That is until the next time a friend or relative are having Windows issues.