AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1005001
Accepted
James B. Byrne
James B. Byrne
Asked: 2020-02-29 08:51:12 +0800 CST2020-02-29 08:51:12 +0800 CST 2020-02-29 08:51:12 +0800 CST

ZFS:i/o 错误 - 所有块副本不可用 -zpool 不可用

  • 772

服务器重新启动在控制台上产生了以下输出:

ZFS: i/o error - all block copies unavailable
ZFS: failed to read pool zroot directory object
qptzfsboot: failed to mount default pool zroot

FreeBSD/x86 boot
ZFS: i/o error - all block copies unavailable
ZFS: can't fild dataset 0
Default: zroot/<0x0>
boot:

我从 usb livecd 启动主机并在 /tmp 下挂载 /etc 目录以启用 ssh 访问:

ifconf -a # get available i/f names
ifconf em0 inet 192.168.216.46
route add default 192.168.216.1
hostname vhost06.internal
mkdir /tmp/etc
mount_unionfs /tmp/etc /etc
echo 'PermitRootLogin yes' >> /etc/sshd_config
passwd
Changing local password for root
New Password:
Retype New Password:
service sshd onestart

没有可导入的 zfs 池:

root@vhost06:~ # zpool status
no pools available
root@vhost06:~ # zpool list
no pools available
root@vhost06:~ # zfs list
no datasets available

gpart显示这个几何:

gpart 显示

=>         40  15628053088  ada0  GPT  (7.3T)
           40         1024     1  freebsd-boot  (512K)
         1064          984        - free -  (492K)
         2048     16777216     2  freebsd-swap  (8.0G)
     16779264  15611273216     3  freebsd-zfs  (7.3T)
  15628052480          648        - free -  (324K)

=>         40  15628053088  ada1  GPT  (7.3T)
           40         1024     1  freebsd-boot  (512K)
         1064          984        - free -  (492K)
         2048     16777216     2  freebsd-swap  (8.0G)
     16779264  15611273216     3  freebsd-zfs  (7.3T)
  15628052480          648        - free -  (324K)

=>         40  15628053088  ada2  GPT  (7.3T)
           40         1024     1  freebsd-boot  (512K)
         1064          984        - free -  (492K)
         2048     16777216     2  freebsd-swap  (8.0G)
     16779264  15611273216     3  freebsd-zfs  (7.3T)
  15628052480          648        - free -  (324K)

=>         40  15628053088  ada3  GPT  (7.3T)
           40         1024     1  freebsd-boot  (512K)
         1064          984        - free -  (492K)
         2048     16777216     2  freebsd-swap  (8.0G)
     16779264  15611273216     3  freebsd-zfs  (7.3T)
  15628052480          648        - free -  (324K)

=>         40  15628053088  diskid/DISK-VAGWJ6VL  GPT  (7.3T)
           40         1024                     1  freebsd-boot  (512K)
         1064          984                        - free -  (492K)
         2048     16777216                     2  freebsd-swap  (8.0G)
     16779264  15611273216                     3  freebsd-zfs  (7.3T)
  15628052480          648                        - free -  (324K)

=>         40  15628053088  diskid/DISK-VAGWV89L  GPT  (7.3T)
           40         1024                     1  freebsd-boot  (512K)
         1064          984                        - free -  (492K)
         2048     16777216                     2  freebsd-swap  (8.0G)
     16779264  15611273216                     3  freebsd-zfs  (7.3T)
  15628052480          648                        - free -  (324K)

=>         40  15628053088  diskid/DISK-VAHZAD2L  GPT  (7.3T)
           40         1024                     1  freebsd-boot  (512K)
         1064          984                        - free -  (492K)
         2048     16777216                     2  freebsd-swap  (8.0G)
     16779264  15611273216                     3  freebsd-zfs  (7.3T)
  15628052480          648                        - free -  (324K)

=>         40  15628053088  diskid/DISK-VAH3PXYL  GPT  (7.3T)
           40         1024                     1  freebsd-boot  (512K)
         1064          984                        - free -  (492K)
         2048     16777216                     2  freebsd-swap  (8.0G)
     16779264  15611273216                     3  freebsd-zfs  (7.3T)
  15628052480          648                        - free -  (324K)

=>       1  30240767  da0  MBR  (14G)
         1      1600    1  efi  (800K)
      1601   2012560    2  freebsd  [active]  (983M)
   2014161  28226607       - free -  (13G)

=>      0  2012560  da0s2  BSD  (983M)
        0       16         - free -  (8.0K)
       16  2012544      1  freebsd-ufs  (983M)

=>       1  30240767  diskid/DISK-00241D8CE51BB011B9A694C1  MBR  (14G)
         1      1600                                     1  efi  (800K)
      1601   2012560                                     2  freebsd  [active]  (983M)
   2014161  28226607                                        - free -  (13G)

=>      0  2012560  diskid/DISK-00241D8CE51BB011B9A694C1s2  BSD  (983M)
        0       16                                          - free -  (8.0K)
       16  2012544                                       1  freebsd-ufs  (983M)

我该如何从这里恢复?

<--------原始问题结束

我已经取得了一些进展,并设法导入和挂载了一个根数据集——iocage。这是zfs 系统上的启动,但我找不到包含根文件系统的数据集,因此我无法访问 /var/log 以查看是否存在任何内容:

mkdir /tmp/zroot                       # /tmp is a writable file system
zpool -f zroot                         # force the zpool import
zfs set mountpoint=/tmp/zroot  zroot   # mount the imported pool in a writable fs
zfs mount -a                           # find and mount all the datasets
ll /tmp/zroot
total 12
drwxr-xr-x  9 root  wheel  11 Feb 27 13:09 iocage/

幸运的是,所有绝对关键的东西都在里面/zroot/iocage,因为主机只是充当监狱的平台。但是,缺少根数据集对我来说很麻烦。

Azpool status显示 zroot 没有错误。

接下来,我使用zfs send.

zfs snapshot -r zroot/iocage@vh6iocsend1
zfs send -R zroot/iocage@vh6iocsend1 | ssh 192.168.216.45 zfs receive zroot/iocagev6

这需要一段时间,但它已成功完成。

现在我需要启动问题主机。这台主机昨天中午重启没问题。我不记得运行freebsd-update fetch了,但是即使我有任何东西可以获取,因为系统已经在 12.1p2

我仍然需要帮助让主机启动。

<----------

补充说明:

我能够zpool使用以下altroot选项安装整个zpool import:

  1. 启动到 live cd shell。
  2. 导入 zfs 池,但不允许import自动挂载任何数据集:zpool import -o altroot=/tmp/altroot -N -a。
  3. 首先挂载根/数据集:zfs mount zroot/ROOT/default.
  4. 现在挂载剩余的数据集:zfs mount -a.

整个zroot池的文件系统现在可以在/tmp/altroot.

我已经使用它zfs send来将内容移动/var到另一个主机。实际上,我发送了整个池。

但是,原来的系统仍然无法启动。

freebsd zfs usb-boot
  • 2 2 个回答
  • 2487 Views

2 个回答

  • Voted
  1. Best Answer
    James B. Byrne
    2020-03-10T12:21:27+08:002020-03-10T12:21:27+08:00

    作为最后的手段,我从无法启动的主机中取出了四个硬盘,并将它们放在配置相同的服务器中。该服务器从这些硬盘启动。显然是硬件问题。

    新主机上仍然存在异常:如果托架 1 被占用,那么只有当托架 0 或托架 2 中的至少一个同样被占用时,系统才会启动。配置 0-,1A,2-,3B 不会启动。我不知道为什么会这样。

    • 0
  2. drookie
    2022-04-27T04:31:59+08:002022-04-27T04:31:59+08:00

    此错误(当服务器无法从 zfs 根池引导,但在另一台机器上导入时池似乎完全完好)通常表明引导块(内核部分和加载器正在搜索的其他文件,而不是实际的加载器块)迁移到推测的 1024 千兆字节以外的地方,已知引导加载程序可以到达它们,现在它们位于很远的地方,它不能。

    这是一个广为人知的 FreeBSD gptzfsboot 加载程序问题。不幸的是,这些引导块在安装后被放置在分区的开头附近,它就像一个带电的定时炸弹,爆炸的时间未知。

    因此建议(不幸的是,有经验的人 - 不是由手册和 bsdinstall 建议)具有小于 1 TB 的 zfs 根池。不知道这些小根池会受到影响。

    另一个解决方案似乎是(至少有报道)切换到 UEFI 引导加载程序:在处理大磁盘时它更大,功能更强大;gptzfsboot非常小,缺乏所需的所有功能。

    • 0

相关问题

  • Mono 2.4 Ahead-Of-Time (AOT) 可以在 FreeBSD x86(或 x64)上编译吗?

  • FreeBSD 和 Linux 有什么区别?[关闭]

  • 在 FreeBSD 上安装和运行 MySql

  • 在 freeBSD 上安装 netbeans 的问题

  • 用于 Web 应用服务器的 FreeBSD 磁盘分区(Apache/MySQL/PHP)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve