imdata 这个 Z1 池本来有 4 个硬盘。现在显示里面没有硬盘了。但是看 disk 页面有三个硬盘还是显示 imdata (Exported)
给这三个硬盘跑了一下 LONG S.M.A.R.T ,全都没有错误通过了。Z1 的话原本 4 块盘现在 3 块盘是不是可以降级导入?
有兄弟知道该怎么办吗?
![]() |
1
Jimmyisme OP ```
root@truenas[~]# zpool import -o readonly=on -f imdata cannot import 'imdata': no such pool or dataset Destroy and re-create the pool from a backup source. root@truenas[~]# zpool import -o readonly=on -f imdata root@truenas[~]# zpool import -f -F -m imdata cannot import 'imdata': no such pool or dataset Destroy and re-create the pool from a backup source. root@truenas[~]# zdb -e -d imdata zdb: can't open 'imdata': No such file or directory root@truenas[~]# zpool import -f -F -o readonly=on -R /mnt/imdata_bk imdata cannot import 'imdata': no such pool or dataset Destroy and re-create the pool from a backup source. root@truenas[~]# zdb -e -C imdata zdb: can't open 'imdata': No such file or directory root@truenas[~]# zpool import -f -F -m -d /dev/disk/by-partuuid imdata cannot import 'imdata': no such pool or dataset Destroy and re-create the pool from a backup source ``` 试了一下几种导入,好像都不行。真没招了 |
2
usamimizugi 5 天前
执行下
zpool list zpool status |
![]() |
3
ooxxcc 5 天前
看一下 zpool status -v
z1 允许少一块盘,少的那块盘你重新插拔试一下,说不定又可用了 |
4
usamimizugi 5 天前
看起来是 sda 这个盘挂掉了,看下能不能恢复读盘。不能的话,如果不是组的 raid ,能恢复的概率很小。
|
![]() |
5
wuruxu 5 天前
zfs 怎么会这么弱,直接断电就鸡了
|
![]() |
6
nuk 5 天前
zdb 看一下 disk 的 metadata ,会不会已经损毁了,可以先把那块坏掉的硬盘拔掉再试试 import
|
![]() |
7
qxmqh 5 天前
这么脆弱? 我自己组的 装的飞牛 os ,我儿子一天给我开关好几遍。都没事。
|
![]() |
8
R1ta 5 天前
只能要识别,Ufsexplorer 挂一下,看看能不能读取,一般不会有能识别关系都不大吧
|
9
kur0d3s 5 天前
仅提供保底的部分数据恢复的方法(建议看下原文)
原理回滚到指定的事务组,然后把数据备份出来, 然后销毁 zpoo 并重建 找到 TXG zdb -eul -p [/path/to/your/disks] [your_zpool_name] 挂载只读,用于 rsync 导出数据 zpool import -T [txg_number] -o readonly=on -d [/path/to/your/disks] https://www.reddit.com/r/zfs/comments/s8pmba/cannot_import_zpool_io_error_destroy_and_recreate/ |
![]() |
10
gigishy 5 天前 via iPhone
实话说,我的 nas ,是一本正经插在 ups 上的。就是为了防止这种情况。
|
![]() |
13
luojianxhlxt 5 天前
@gigishy #10 家人拔电源,除非你是 nas 内嵌的 ups ,不然就是没戏
|
![]() |
14
tcpdump 5 天前
省电不省钱啊
|
![]() |
15
avrillavigne 5 天前
叫肇事者买硬盘🤡😀
|
16
luodan 5 天前
ups+raid 是好兄弟,一个都不能省。
|
17
nkidgm 5 天前
机器和 ups 一起锁在机柜里,家人拉电闸或者停电都没影响。。。
|
![]() |
20
gigishy 5 天前 via iPhone ![]() @gunner168 可能你没用过 nas➕UPS……
外面电源切断电时,UPS 会通知 nas 断电了,关机吧。15 分钟足够 nas 安全关闭了。 |
![]() |
21
gigishy 5 天前 via iPhone
@luojianxhlxt 家人不会弯着腰,戴着眼镜去 UPS 上找 nas 的插头拔下来断电的,一般都是拔掉的是 UPS 的插头。
当然,故意,专门、特地去 UPS 上寻找到并拔掉 nas 的插头,那是没办法了,但这个不是事故,而是故事了。 |
22
QAZXCDSWE 5 天前
此时就需要一台大疆 2 度电镇压机柜
|
23
Donahue 5 天前
说个跟主题无关的,我自己电脑 ubuntu+ext4, 因为 nvidia 驱动原因有时候休眠显卡没唤醒,硬重启好多次了,几年都没一点问题
|
![]() |
24
EJW 5 天前
|
![]() |
25
goodryb 5 天前
|
![]() |
26
ZGeek 5 天前
给一下 AI 的答复,你看下能否解决
```md 您好,感谢您提供详细的命令行测试结果。这些结果非常重要,它们揭示了问题的严重性,并且改变了我们对问题的初步判断。 ### 新的问题分析 您运行的所有 `zpool import imdata` 命令都返回了同样的结果: `cannot import 'imdata': no such pool or dataset` 这个错误的核心意思是:**ZFS 在扫描系统所有的硬盘时,已经找不到任何带有 'imdata' 标签的 ZFS 元数据了。** 这与我们最初根据 UI 截图(显示为 'Exported')的判断完全不同,情况要严重得多。UI 界面显示的信息很可能是系统缓存的旧状态,而您在命令行中得到的实时扫描结果更为准确。 简单来说,系统现在认为,那几块物理硬盘(`sda`, `sdd`, `sdi`, `sdb`)已经不再是 ZFS 存储池的一部分了。 这通常由以下几种灾难性原因之一导致: 1. **硬盘被重新初始化或覆盖**:这几块硬盘可能被意外地(例如,在安装其他系统、或者被其他进程)清除了分区表或头部的元数据。 2. **所有硬盘同时发生元数据损坏**:虽然可能性较小,但如果所有硬盘的关键元数据区域都损坏,ZFS 也将无法识别它们。 3. **严重的硬件或连接问题**:导致操作系统层面完全无法正确读取硬盘的元数据区域。 ### 下一步的关键诊断步骤 现在,我们需要执行一个“盲扫”,来扫描系统上的所有磁盘,看看是否能找到**任何**可以导入的池(即使它已经损坏或名称不符)。请不要放弃,执行以下命令: **1. 盲扫 ZFS 池** 在 TrueNAS 的 Shell 中,只运行 `zpool import`,不带任何参数: ```bash zpool import ``` 这个命令会扫描所有连接到系统的设备,并报告它找到的所有可导入的 ZFS 池。请将这个命令的**全部输出**复制给我。这里有几种可能的结果: * **最佳情况**:命令找到了一个池,但可能名字是一串数字( Pool ID ),并且状态是 `FAULTED` 或 `DEGRADED`。如果看到任何输出,请立即发给我,这可能还有一线生机。 * **最坏情况**:命令执行后,**没有任何输出**,直接返回到新的命令行提示符。 **2. 列出系统识别的块设备** 为了确认系统是否还能看到这些硬盘,请运行以下命令并将其输出也提供给我: ```bash lsblk ``` 这个命令会列出系统识别的所有磁盘和分区,让我们能确认 `sda`, `sdd`, `sdi`, `sdb` 这些设备是否还在,以及它们的分区情况。 ### 总结与展望 * **如果 `zpool import` 没有任何输出**: 这几乎可以确认,组成 `imdata` 池的所有硬盘上的 ZFS 元数据(可以理解为“分区表”和“文件系统信息”)已经丢失或被完全破坏。在这种情况下,数据通过常规 ZFS 命令恢复的可能性微乎其微。恢复数据将需要依赖专业的、底层的磁盘数据恢复服务,这通常非常昂贵且不保证成功。这也凸显了**数据备份**的极端重要性。 * **如果 `zpool import` 有输出**: 请把输出结果告诉我,我们或许可以尝试使用 Pool ID 和更强力的恢复参数来尝试恢复池的只读访问,以便您能将数据复制出来。 请务必先执行上述两个命令 (`zpool import` 和 `lsblk`),我们根据结果再决定下一步行动。 ``` |
![]() |
30
Jimmyisme OP @usamimizugi #2
``` root@truenas[~]# zpool list zpool status NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT Media 12.7T 10.6T 2.09T - - 40% 83% 1.00x ONLINE /mnt boot-pool 1.86T 15.6G 1.84T - - 1% 0% 1.00x ONLINE - pool: Media state: ONLINE status: Some supported and requested features are not enabled on the pool. The pool can still be used, but some features are unavailable. action: Enable all features using 'zpool upgrade'. Once this is done, the pool may no longer be accessible by software that does not support the features. See zpool-features(7) for details. scan: scrub repaired 0B in 1 days 05:22:27 with 0 errors on Mon Jun 30 05:22:29 2025 config: NAME STATE READ WRITE CKSUM Media ONLINE 0 0 0 ab11eb85-c5bb-43d0-bec5-8a13fd700bc7 ONLINE 0 0 0 errors: No known data errors pool: boot-pool state: ONLINE scan: scrub repaired 0B in 00:00:11 with 0 errors on Tue Jul 1 03:45:13 2025 config: NAME STATE READ WRITE CKSUM boot-pool ONLINE 0 0 0 nvme0n1p3 ONLINE 0 0 0 errors: No known data errors root@truenas[~]# ``` 读出来就没有 imdata 了 |
![]() |
31
Jimmyisme OP @avrillavigne 我外公,人家也不懂这些。我爸妈倒是知道不能断电
![]() |
![]() |
33
Jimmyisme OP @kur0d3s 每个 txg_number 都试了一下,全部提示:
root@truenas[~]# zpool import -T 16900879 -f -F -m -d /dev/disk/by-partuuid imdata cannot import 'imdata': no such pool or dataset Destroy and re-create the pool from a backup source. |
![]() |
34
Jimmyisme OP @ZGeek
root@truenas[~]# zpool import pool: imdata id: 5789171728369314650 state: UNAVAIL status: One or more devices are faulted. action: The pool cannot be imported due to damaged devices or data. config: imdata UNAVAIL insufficient replicas raidz1-0 UNAVAIL insufficient replicas de0eab4e-4d20-4d2c-9858-62bd172010b8 FAULTED too many errors 61e72697-2487-4c81-8134-4b3c83392fc2 FAULTED too many errors 06c808ba-f0fa-4ec4-80f8-ef7d1583898a ONLINE 3288161652282183282 UNAVAIL 这个好像能看到 imdata ? |
35
1298098 4 天前
这不是已经有两块盘 gg 了,raidz1 两块盘有问题是要完了
|
![]() |
36
ZGeek 4 天前
您好,这个最新的测试结果非常关键,它彻底改变了情况!
好消息是,您的 ZFS 元数据**没有**像我们担心的那样完全丢失。系统现在能看到池的结构了。 坏消息是,这个池处于一个非常危险的状态,有多块硬盘出现了问题。 ### 问题诊断 - 解读 `zpool import` 输出 让我们来逐行分析这个输出: ``` pool: imdata id: 5789171728369314650 state: UNAVAIL status: One or more devices are faulted. action: The pool cannot be imported due to damaged devices or data. config: imdata UNAVAIL insufficient replicas raidz1-0 UNAVAIL insufficient replicas de0eab4e-4d20-4d2c-9858-62bd172010b8 FAULTED too many errors (硬盘 1) 61e72697-2487-4c81-8134-4b3c83392fc2 FAULTED too many errors (硬盘 2) 06c808ba-f0fa-4ec4-80f8-ef7d1583898a ONLINE (硬盘 3) 3288161652282183282 UNAVAIL (硬盘 4) ``` 1. **`state: UNAVAIL`**:这是最严重的状态,意味着池目前完全不可用。 2. **`status: insufficient replicas`**:“副本不足”。这是核心原因。您使用的是 `raidz1-0`,这是一个 RAIDZ1 阵列。 * **RAIDZ1**:允许**最多 1 块**硬盘离线或故障。 * **您当前的状态**: * 有 **2 块**硬盘被标记为 `FAULTED` (故障)。 * 有 **1 块**硬盘被标记为 `UNAVAIL` (不可用,可能意味着系统找不到它或无法读取它)。 * 只有 **1 块**硬盘是 `ONLINE` (在线) 的。 * **结论**:您总共丢失了 3 块硬盘的访问权限,远远超过了 RAIDZ1 所能容忍的 1 块硬盘的上限。因此,ZFS 判定数据完整性已无法保证,拒绝导入该池。 ### 修复步骤 - 尝试抢救数据 现在的情况非常危急,我们的首要目标不是“修复”池,而是**尝试以只读模式导入,尽最大可能把数据抢救出来**。请严格按照以下步骤操作,不要轻易尝试有写入风险的操作。 #### 第 1 步:尝试只读强制导入 这个命令会尝试忽略一些错误,以只读模式挂载池。这不会对池造成任何进一步的写入损坏,是目前最安全的数据抢救方法。 ```bash zpool import -f -o readonly=on imdata ``` * `-f`:强制导入,忽略一些非致命错误。 * `-o readonly=on`:以只读模式挂载。 **执行后,请观察结果:** * **如果成功导入**:恭喜您!您的池现在应该是 `ONLINE` 或 `DEGRADED` 状态,并且是只读的。**请立即开始将所有重要数据复制到其他安全的存储位置(另一个硬盘、另一台电脑等)!** 这是您抢救数据的黄金时间窗口。 * **如果依然失败**:请将报错信息发给我。我们可能需要尝试更“暴力”的方法。 #### 第 2 步:如果第 1 步失败,尝试更强的恢复模式导入 **警告:此步骤有微小风险,但鉴于目前情况,这是必要的尝试。** 它会尝试回滚到池中最后一个一致的事务组( TXG ),可能会丢失最后几秒或几分钟的写入数据,但这通常是让池重新上线的唯一方法。 ```bash zpool import -f -F -o readonly=on imdata ``` * `-F`:尝试恢复到一个更早的、健康的时间点。 **再次观察结果:** * **如果成功导入**:太好了!立即开始抢救数据,将所有文件复制出来。 * **如果仍然失败**:那么池的损坏程度可能已经非常严重,通过标准命令恢复的可能性已经很低了。 ### 后续步骤和建议 1. **识别物理硬盘**: * `06c808ba-f0fa-4ec4-80f8-ef7d1583898a` 是您唯一健康的硬盘。 * 另外三块盘(两个`FAULTED`,一个`UNAVAIL`)都是有问题的。您需要检查它们的物理连接( SATA 线和电源线),并查看硬盘的 S.M.A.R.T.状态。在 TrueNAS UI 的 **Storage -\> Disks** 界面,您可以尝试找出这些硬盘对应的是哪个 `/dev/sdX` 设备。 2. **做好最坏的打算**: * 一个 4 盘 RAIDZ1 阵列坏了 3 块盘,数据完全丢失的风险极高。 * 如果上述导入命令全部失败,数据很可能已无法通过 ZFS 命令恢复。 3. **恢复大于修复**: * 即使您成功以只读模式导入并救出了数据,这个池也已经不再可靠。**不要**尝试向其中写入任何新数据。 * 在救出数据后,您应该销毁( destroy )这个池,检查并更换所有故障硬盘,然后用新硬盘重建一个新的、健康的存储池,最后将您抢救出来的数据复制回去。 **请立即行动,先尝试第 1 步的命令 (`zpool import -f -o readonly=on imdata`),并告诉我结果。** |
38
1298098 4 天前
试下 zpool status imdata -v 看看输出什么
root@truenas[~]# zpool status pool -v pool: pool state: ONLINE scan: scrub repaired 0B in 06:04:27 with 0 errors on Sun Jun 15 06:04:40 2025 expand: expanded raidz1-0 copied 14.3T in 11:23:00, on Sat May 17 05:34:39 2025 config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 68e916c3-b66d-466a-91d4-6ba519278b74 ONLINE 0 0 0 3207be18-961e-4d44-86a4-bd654f750ca3 ONLINE 0 0 0 d1e90726-114c-4703-b46c-7fc9fce01830 ONLINE 0 0 0 c4a4b439-b25b-446f-b3bf-965bf72341b1 ONLINE 0 0 0 baf31dab-7bc6-4aa6-9cb6-9881f6cb46d8 ONLINE 0 0 0 271d914a-eb10-439f-ad2e-e42c77bed625 ONLINE 0 0 0 8af1e6ab-c956-488e-92e4-f38625f1e590 ONLINE 0 0 0 8ec4d50f-6a87-4e6b-9ad9-e88dfb258ba2 ONLINE 0 0 0 f5013e86-1b25-48d2-8ea0-92ef730ce1bc ONLINE 0 0 0 05e09024-c462-4a6f-89cb-3a4837f692c8 ONLINE 0 0 0 cache 9d5946a1-0012-498f-8129-c8fd10621bdc ONLINE 0 0 0 386abd0c-e95a-4690-a9e7-ec443daf164d ONLINE 0 0 0 errors: No known data errors |
![]() |
39
ZGeek 4 天前
试下这两个,看是否能执行成功
zpool import -f -o readonly=on 5789171728369314650 zpool import -f -F -o readonly=on 5789171728369314650 |
40
HTravel 4 天前
321 才能确保数据不丢,RAID 确保不了。真喜欢 RAID ,就自己写一个 web 版的,没几行代码。你自己写的,断电只会导致一个正在上传的文件受损,其他文件完全不影响。
说实话,RAID 这么简单的玩意,为什么上古程序员能实现成断电全损。那 RAID 了个啥?明明实践下来稳定性连单个二手盘都拼不过,却有一大堆程序员坚信存数据可靠性更高 |
![]() |
41
z742364692 4 天前
我放冰箱顶上的,不爬梯子拔不了插头
|
![]() |
42
jinjiang2024 4 天前
嗯 专门搞个房间搞这些,平时锁起来
|