I just lost 44 GB of data that I downloaded in the past two hours. My PC started to get laggy and it got stuck so I just shut it down believing that all will be well since the data has already been written to disk…
I just lost 44 GB of data that I downloaded in the past two hours. My PC started to get laggy and it got stuck so I just shut it down believing that all will be well since the data has already been written to disk…
What filesystem are you using? Filesystems should be crash consistent these days.
A modern filesystem cannot make magic happen, if the data was in the process of being written it is still in memory and lost.
Only copy-on-write filesystems are safe here as they don’t overwrite old data. NTFS is not safe.
If 44GB had not been flushed to disk yet then that implies that OP has >44GB of RAM in use as page cache. SSD write caches are only around 2GB while HDD write caches are not more than about 512MB. I don’t know how much RAM OP has but this seems unlikely to be the case.
I would bet on one of the following:
3 & 4 being the reason I was asking what filesystem OP is using.
COW filesystems make no difference in this case since this was not data overwriting an existing file. They still have the same behavior with write caching in the OS and on the drive and still require a tool (eg.
btrfs-check
) to recover unlinked changes in the event of a crash.NTFS is a journaling filesystem and is crash-consistent. That doesn’t mean it can do “magic” if the data hasn’t hit the disk, but it does mean that it won’t corrupt the filesystem or lose data which was already written in the case of a crash.
I didn’t mean OPs case.
Journaling just means it knows what failed. Without CoW you will corrupt data.
My filesystem was NTFS
If you haven’t tried it already, you could run
chkdsk
to see if the filesystem needs repairing. You can do it from the command-line[1] or also through the drive properties > Tools > Check button.[1] https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chkdsk?tabs=event-viewer
1 ↩︎