最近搞一个 c++项目,整个工程 50 多个 G ,编译的时候报各种奇怪的错误,每次清理缓存和 binary 文件后再编译报的错都不一样,怀疑是硬盘的问题,用工具扫了一下,好家伙,100 多个坏块。
后面我把整个项目移到固态硬盘,把报错的子项目清理了以后再编译,终于编译成功了,前后浪费了 5 天时间。
得出的教训是,机械硬盘别放重要项目,碰上一个坏块可能整个项目就废了,有些报错信息 Google 搜不到,0 结果,想排查都不知道从哪查起。
还有就是 vscode 有些 AI 编码的插件会占用文件,导致编译失败,有些插件哪怕你没开 vscode 也会在后台运行,不用的插件最好卸载了。
杀毒软件也会占用文件,导致编译失败,这个我以前碰到过,所以我很多年没装过杀毒软件了。
1
busier 2 天前 via Android ![]() 用 btrfs 文件系统 他和 zfs 一样,带有文件校验功能。可以发现存储器的存储位反转,但是读写又不报错的情况。
|
2
busier 2 天前 via Android
再插一句 硬盘该坏照样坏 你这情况我在固态硬盘上一样出现过
后来疯狂读写揉捏 让其故障扩大 直接走售后换了 |
![]() |
3
liuzimin 2 天前 via Android
有坏块的时候平时不会感觉到特别卡吗?
|
4
NoOneNoBody 2 天前 ![]() 这不是机械硬盘的问题,是人的问题
|
![]() |
5
bzw875 2 天前
写 C++的人真惨。2025 年了还在用机械硬盘。我大概 2015 年领导就给我笔记本换 SSD 了
|
![]() |
6
ssh 2 天前 ![]() 下次如果坏的是固态硬盘楼主是不是又要发个帖子说不能放固态硬盘了
|
7
pinocc012 2 天前
备份才是硬道理,而且必须是自动备份
|
![]() |
8
kdwnil 2 天前 via Android
重要数据只能靠勤备份来减少坏盘的损失
|
9
cyp0633 2 天前
重要项目的源码最好两地三份
|
![]() |
10
DOLLOR 2 天前
任何存储介质都该默认是不可靠的。
重要的东西,要有多个备份。 |
![]() |
11
Ipsum 2 天前
这 50g 里有啥宝贝呢。纯代码 50g 那确实厉害。
|
![]() |
12
xiao9469 2 天前 via iPhone
固态是直接一波带走
|
13
kokerkov 2 天前
机械硬盘有数据恢复的可能性。固态基本再见。
|
![]() |
14
HFX3389 2 天前
固态是直接暴毙,甚至 0E 涨起来了你都不知道,再来个掉固件,主控和颗粒相互成对加密,救都救不回来
|
![]() |
15
totoro625 2 天前
固态也有“坏块”,丢过数据就知道 raid/备份了
|
16
redbeanzzZ 2 天前
真重要肯定多做备份啊,raid 啊,重要东西我是绝对不敢只放再固态的,坏了直接没的彻底
|
![]() |
17
jy02534655 2 天前
确实要做好备份,之前我的固态就是直接挂掉,还好代码都在 git
|
![]() |
18
processzzp 2 天前
@kokerkov 别想着数据恢复了,1TB 一千块钱起步,上不封顶,如果恢复出来的是重要数据,对方还可以挟尸要价,大部分人的数据真没那么值钱
|
19
Suzutan 2 天前
之前也遇到过类似的问题,当时文件放在一块盘中怎么都编译失败,搞了一下午换块盘就成功了。最蛋疼的是压缩包校验正常,重新解压也不行,后来扫描坏块也啥都没扫描出来
|