TrueNAS 寄了,被家里人习惯性关插头电源了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
Jimmyisme
V2EX    NAS

TrueNAS 寄了,被家里人习惯性关插头电源了

  •  
  •   Jimmyisme 149 天前 8387 次点击
    这是一个创建于 149 天前的主题,其中的信息可能已经有所发展或是发生改变。

    imdata 这个 Z1 池本来有 4 个硬盘。现在显示里面没有硬盘了。但是看 disk 页面有三个硬盘还是显示 imdata (Exported)

    给这三个硬盘跑了一下 LONG S.M.A.R.T ,全都没有错误通过了。Z1 的话原本 4 块盘现在 3 块盘是不是可以降级导入?

    有兄弟知道该怎么办吗?

    https://i.imgur.com/LoECOr1.png

    44 条回复    2025-07-02 11:55:30 +08:00
    Jimmyisme
        1
    Jimmyisme  
    OP
       149 天前
    ```
    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
    ```

    试了一下几种导入,好像都不行。真没招了
    usamimizugi
        2
    usamimizugi  
       149 天前
    执行下
    zpool list
    zpool status
    47jm9ozp
        3
    47jm9ozp  
       149 天前
    看一下 zpool status -v

    z1 允许少一块盘,少的那块盘你重新插拔试一下,说不定又可用了
    usamimizugi
        4
    usamimizugi  
       149 天前
    看起来是 sda 这个盘挂掉了,看下能不能恢复读盘。不能的话,如果不是组的 raid ,能恢复的概率很小。
    wuruxu
        5
    wuruxu  
       149 天前
    zfs 怎么会这么弱,直接断电就鸡了
    nuk
        6
    nuk  
       149 天前
    zdb 看一下 disk 的 metadata ,会不会已经损毁了,可以先把那块坏掉的硬盘拔掉再试试 import
    qxmqh
        7
    qxmqh  
       149 天前
    这么脆弱? 我自己组的 装的飞牛 os ,我儿子一天给我开关好几遍。都没事。
    R1ta
        8
    R1ta  
       149 天前
    只能要识别,Ufsexplorer 挂一下,看看能不能读取,一般不会有能识别关系都不大吧
    kur0d3s
        9
    kur0d3s  
       149 天前
    仅提供保底的部分数据恢复的方法(建议看下原文)

    原理回滚到指定的事务组,然后把数据备份出来, 然后销毁 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/
    gigishy
        10
    gigishy  
       149 天前 via iPhone
    实话说,我的 nas ,是一本正经插在 ups 上的。就是为了防止这种情况。
    YsHaNg
        11
    YsHaNg  
       149 天前
    @qxmqh 什么 fs 阵列组建方式?
    xwit
        12
    xwit  
       149 天前
    @qxmqh #7 数据在内存里面
    luojianxhlxt
        13
    luojianxhlxt  
       149 天前
    @gigishy #10 家人拔电源,除非你是 nas 内嵌的 ups ,不然就是没戏
    tcpdump
        14
    tcpdump  
       149 天前
    省电不省钱啊
    avrillavigne
        15
    avrillavigne  
       149 天前
    叫肇事者买硬盘
    luodan
        16
    luodan  
       149 天前
    ups+raid 是好兄弟,一个都不能省。
    nkidgm
        17
    nkidgm  
       149 天前
    机器和 ups 一起锁在机柜里,家人拉电闸或者停电都没影响。。。
    gunner168
        18
    gunner168  
       149 天前
    @nkidgm 你这 ups 是核聚变电池吗,拉总闸或停电了能撑多久。。。
    poxiaogg
        19
    poxiaogg  
       149 天前   1
    @gunner168 ups 可以通知 nas 准备关机的,而不是断电突然关机
    gigishy
        20
    gigishy  
       149 天前 via iPhone   2
    @gunner168 可能你没用过 nasUPS……
    外面电源切断电时,UPS 会通知 nas 断电了,关机吧。15 分钟足够 nas 安全关闭了。
    gigishy
        21
    gigishy  
       149 天前 via iPhone
    @luojianxhlxt 家人不会弯着腰,戴着眼镜去 UPS 上找 nas 的插头拔下来断电的,一般都是拔掉的是 UPS 的插头。
    当然,故意,专门、特地去 UPS 上寻找到并拔掉 nas 的插头,那是没办法了,但这个不是事故,而是故事了。
    QAZXCDSWE
        22
    QAZXCDSWE  
       149 天前
    此时就需要一台大疆 2 度电镇压机柜
    Donahue
        23
    Donahue  
       149 天前
    说个跟主题无关的,我自己电脑 ubuntu+ext4, 因为 nvidia 驱动原因有时候休眠显卡没唤醒,硬重启好多次了,几年都没一点问题
    EJW
        24
    EJW  
       148 天前
    我的 ps5 待机状态也被家里人直接拔过电源,还好没啥事儿
    goodryb
        25
    goodryb  
       148 天前
    习惯性关插头电源 , 这个习惯一点也不好
    ZGeek
        26
    ZGeek  
       148 天前
    给一下 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`),我们根据结果再决定下一步行动。
    ```
    Rat3
        27
    Rat3  
       148 天前
    @gunner168

    UPS 会和 NAS 通信,通知 NAS 准备安全关机,很常见
    gunner168
        28
    gunner168  
       148 天前
    @gigishy 嗯,我发帖子的时候脑子秀逗了,发完才想起这是 ups ,但是没法删帖,哈哈
    MRG0
        29
    MRG0  
       148 天前
    @ZGeek #26
    我有种不好的预感
    Jimmyisme
        30
    Jimmyisme  
    OP
       148 天前
    @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 了
    Jimmyisme
        31
    Jimmyisme  
    OP
       148 天前
    @avrillavigne 我外公,人家也不懂这些。我爸妈倒是知道不能断电
    Jimmyisme
        32
    Jimmyisme  
    OP
       148 天前
    @ZGeek 问过 grok 和 gemini 试了一圈没什么用
    Jimmyisme
        33
    Jimmyisme  
    OP
       148 天前
    @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.
    Jimmyisme
        34
    Jimmyisme  
    OP
       148 天前
    @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 ?
    1298098
        35
    1298098  
       148 天前
    这不是已经有两块盘 gg 了,raidz1 两块盘有问题是要完了
    ZGeek
        36
    ZGeek  
       148 天前
    您好,这个最新的测试结果非常关键,它彻底改变了情况!

    好消息是,您的 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`),并告诉我结果。**
    ZGeek
        37
    ZGeek  
       148 天前
    老哥可以加我微信,一起看 yzq62792 @Jimmyisme
    1298098
        38
    1298098  
       148 天前
    试下 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
    ZGeek
        39
    ZGeek  
       148 天前
    试下这两个,看是否能执行成功
    zpool import -f -o readOnly=on 5789171728369314650
    zpool import -f -F -o readOnly=on 5789171728369314650
    HTravel
        40
    HTravel  
       148 天前
    321 才能确保数据不丢,RAID 确保不了。真喜欢 RAID ,就自己写一个 web 版的,没几行代码。你自己写的,断电只会导致一个正在上传的文件受损,其他文件完全不影响。

    说实话,RAID 这么简单的玩意,为什么上古程序员能实现成断电全损。那 RAID 了个啥?明明实践下来稳定性连单个二手盘都拼不过,却有一大堆程序员坚信存数据可靠性更高
    z742364692
        41
    z742364692  
       147 天前
    我放冰箱顶上的,不爬梯子拔不了插头
    jinjiang2024
        42
    jinjiang2024  
       147 天前
    嗯 专门搞个房间搞这些,平时锁起来
    Jimmyisme
        43
    Jimmyisme  
    OP
       147 天前
    @HTravel 是的,另外一个二手的 HC550 反而坚挺
    ZGeek
        44
    ZGeek  
       147 天前   1
    @HTravel #40 看需求,比如我,我也用 raidz1 ,但是我的核心诉求是解决位反转问题,数据每周远程备份一次,本地硬盘想起来后插进去备份一次,就这样就足够了,raid 从一开始就不是保证大规模数据损坏而生的,而是解决读写速度和透明条带化(普通 raid ),而 zfs 的 raid 只是为了解决条带化和单块损坏,少量数据的位反转,raid 没错,但是要定位清晰。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     906 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 20:40 PVG 04:40 LAX 12:40 JFK 15:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86