使用铭瑄 b760 和 12500 装的 homeserver ,周末醒来发现 ssh 无法登录,连上屏幕发现,连 tty 都进不去了
做了 live 盘发现系统分区损坏了,机器内安装的 6 个机械盘的分区也都损坏了
gdisk 提示重新分区,testdisk 恢复分区有点问题,有没有大佬指导一下:
1 、可能是什么原因导致的?病毒吗? 2 、还有什么修复的方法?
只读挂载了一下备份盘,文件系统没错误,挂载没问题,只是全是空的。问一下各位,有那种能直接删除所有文件,包括系统文件的病毒吗?
root@pvesw:~# btrfs check /dev/sda1
Opening filesystem to check...
Checking filesystem on /dev/sda1
UUID: c064215a-c373-45a1-8b27-f1148fc9b24d
[1/7] checking root items
[2/7] checking extents
[3/7] checking free space tree
[4/7] checking fs roots
[5/7] checking only csums items (without verifying data)
[6/7] checking root refs
[7/7] checking quota groups skipped (not enabled on this FS)
found 147456 bytes used, no error found
total csum bytes: 0
total tree bytes: 147456
total fs tree bytes: 32768
total extent tree bytes: 16384
btree space waste bytes: 140505
file data blocks allocated: 0
referenced 0
1
sduoduo233 178 天前 via Android
什么分区? ext4 吗?
|
2
flyqie 178 天前 via Android
不太可能是病毒,感觉像是硬件问题
|
3
liyafe1997 178 天前 via iPad
你这没描述清楚,是分区表坏了,还是文件系统坏了
|
4
lin0kin OP @sduoduo233 固态是 btrfs ;机械是四个 btrfs ,两个 xfs
|
6
kokutou 178 天前 via Android
致态?杂牌?
|
7
lin0kin OP @liyafe1997 固态上的分区表损坏了,引导都失效了;使用 testdisk 查看的 Linux 的 home ,没有找到可恢复的数据;
机械盘没有找到报错,放在原来机器上的机械盘还能查到分区,并挂载,但是每个盘都没有数据,是空的;拔了一个下来,放到了另一台机器上,使用 gdisk 查看,提示 bad partition |
9
povsister 178 天前
先尝试 xfs 有没有救吧。btrfs 那真的是灾难
|
11
ferock 178 天前 via iPhone
那么多盘一起坏了?
|
14
hefish 178 天前
不是说 btrfs 已经能跑生产了嘛。。。 这算不算是反例?
|
15
Donahue 178 天前
可怕 还是 ext4 稳
|
16
Jirajine 178 天前
你装的服务器有问题,硬盘就算坏也不太可能同时坏。
分区表都 g 了显然和文件系统没有什么关系。 |
19
lin0kin OP @Jirajine 不知道什么问题,睡了一觉就这样了,所有盘的数据都没有了,U 盘做了个 live ,看了一下固态的分区损坏了;然后机械没有报分区损坏,挂载所有的盘看,什么数据都没有
|
20
kaneg 178 天前
6 块机械盘同时坏掉,这个概率也太小了吧
|
21
liyafe1997 178 天前
@lin0kin 建议先用 WinHex 这类软件先看看硬盘原始的扇区数据是个什么情况,看看是不是有坏道,所有扇区是否可读。建议把整个盘 DUMP 出来再说,这种情况不建议做写入操作(比如就地 fsck )
|
22
lin0kin OP @liyafe1997 固态没有坏道的吧?机械的话,现在全拆了,因为是一比一备份,准备先拿一块看看情况,能不能恢复。主要是 Linux 下几个软件都不能恢复目录结构和文件名,很痛苦
|
24
liyafe1997 178 天前
|
25
liyafe1997 178 天前
@lin0kin 我当时情况还算 Lucky 的,坏道从容量上来说不算多(印象总共也就十几还是几十 MB ),但是很多致命的地方。首先是 GPT 主分区表(也就是硬盘开头那个)寄了,好在 GPT 在末尾还有个备份分区表。然后有个 NTFS 分区,MFT 寄了一部分,然后有很多文件都有小部分寄了,这直接导致了里面一大票文件都要不了了。不过好在我这整个分区有之前的镜像备份,然后正好里面有几个新的数据没有寄,非常幸运,最后真正失去的只有一个不太重要的东西。
然后还有个 btrfs 分区,这就更幸运了,在头部寄了大概几十 KB ,看了下那部分几乎没有任何信息(还是是一些所有 btrfs 分区都有的 magic number 之类的,记得当时手动创建了个新的 btrfs 文件系统,然后对比 offset 来看,然后把一些扇区从新的弄到旧的损坏部位),btrfs 的 metadata 似乎是从 128KB 之后的位置开始的,因此这个分区完好无损恢复了。这个 btrfs 在原来的坏盘上也是没法 mount 的,直接会报类似上图的 IO Error ,因为会尝试读开头的扇区。 建议硬盘出故障时,不要去纠结什么分区表啊文件系统啊这些软件层面的东西,先尝试全盘 dump 所有扇区,看看有没有坏扇区,能读出多少,再用 dump 出来的数据,来修复软件层面的东西,什么分区表啊,文件系统啊,MFT 啊,superblock 啊等等那些。 |
26
lin0kin OP @liyafe1997 应该叫坏块吧
|
27
lin0kin OP @liyafe1997 ok ,我去试试
Linux 下有什么工具可以用吗?盘太大,dd 生成的镜像没地方放,testdisk 恢复的数据没有文件名 |
28
liyafe1997 178 天前
@lin0kin dd 可以考虑 gzip/squashfs 压缩,如果还没地方放那没办法了,可以考虑买硬盘。
|
29
liyafe1997 178 天前
@lin0kin 建议用 squashfs 流式保存 dd 来实现压缩的目录,这样以后只要挂载 squashfs 就能访问原始的 dd 镜像了。如果 gzip/pigz 压缩的话以后不要使用,得先解压出来。
下面是我备份硬盘用的命令,流式 dd 到一个 squashfs 里,压缩算法为 zstd level 9 ,你可以参考: mkdir empty-dir sudo mksquashfs empty-dir SSD_bak.squashfs -comp zstd -Xcompression-level 9 -p 'dd_image.img f 444 root root dd if=/dev/nvme0n1 status=progress bs=64M' |
30
ltkun 177 天前 via Android
都 server 了还是 raid1 raid5 这种多搞搞吧
|
31
hanyuwei70 177 天前
op 试着在 live 里面挂载一下 btrfs ,看报错以及 dmesg 信息。
你这同时坏这么多我怀疑是电源有问题。 |
32
liuliancao 177 天前
把盘放到别的电脑上面 先备份吧 然后尝试 fsck 类似的看看 然后最好截图下究竟报啥错 比如 一般情况 rescue 还是可以进去的
|
33
wildlife 177 天前
有可能是 SSD 问题,曾经我也在某个 SSD 上运行 Linux ,期间总是出现各种问题,后来有次我从外部拷贝了 2 次同一份大文件,发现两个文件的 hash 居然对不上。。。
|
35
lin0kin OP @hanyuwei70 没有找到报错
|
36
lin0kin OP @liyafe1997 只有一个 8t 的机械空着。找人借盘中。
所有机械都使用 rsync 备份文件到另一张盘,没想到全挂了 |
38
lin0kin OP @hanyuwei70 京东买的新的,全汉蓝爆 plus 。也就用了几个月,不知道是不是硬盘背板供电的问题
|
42
kokutou 177 天前 via Android
btrfs 也是个大雷。。。
然后你寨版的内存也不知道稳定不稳定。。。 |
43
lin0kin OP @kokutou 不知道是不是中毒了,所有的文件都被删了,系统盘的分区损坏了,其他盘好像没啥问题,挂载的盘数据都是空的,两个没有挂载的盘文件系统没有损坏,只是没有文件。
|
44
hanyuwei70 164 天前
你这个太奇怪了,如果炸了怎么 check 还是好的,会不会是有误操作之类。
|