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 / 问题 / 915156
Accepted
Moshe Katz
Moshe Katz
Asked: 2018-06-05 12:36:56 +0800 CST2018-06-05 12:36:56 +0800 CST 2018-06-05 12:36:56 +0800 CST

在 Ubuntu 启动时等待 zpool 导入

  • 772

我已经使用 ZFS 在 Dell PowerEdge R720xd 上安装了 Ubuntu 18.04。mirrorZFS配置中有两个 1TB 引导驱动器。我按照Linux Wiki 上的 ZFS中的说明进行操作。

(注意:我的系统使用的是 LSI LSI00244 (9201-16i) 主机总线适配器 (HBA) 而不是板载 RAID 卡,因为 ZFS 和这个 RAID 卡不能相处。)

启动 Ubuntu 时,系统枚举驱动器大约需要 10 秒钟(有 14 个驱动器 - 两个用于操作系统,12 个用于稍后将在其他 zpool 中设置的数据存储)。但是,引导过程会在驱动器被枚举之前尝试导入引导池。

BusyBox 错误消息在屏幕上闪过,它基本上说:

池无法导入。

在此 BusyBox shell 中手动导入池,然后键入exit以继续引导过程。

如果我在该消息后等待几秒钟,我会看到 14 个驱动器被列出。

我zpool import rpool在 BusyBox 提示符下键入,该提示符有效(用 确认zpool list),然后exit继续启动过程。(这导致了我的下一个问题,内核崩溃,但这是一个单独的问题。)

我尝试添加rootdelay=15引导选项,但这似乎不起作用,因为它似乎想在 ZFS 池导入后运行该延迟。

在尝试导入池之前,如何让引导过程等待设备出现?

ubuntu
  • 2 2 个回答
  • 4710 Views

2 个回答

  • Voted
  1. Best Answer
    Moshe Katz
    2018-06-05T18:03:45+08:002018-06-05T18:03:45+08:00

    我终于在以下位置找到了这个/etc/default/zfs:

    # Wait for this many seconds in the initrd mountroot?
    # This delays startup and should be '0' on most systems. This might help on
    # systems which have their ZFS root on a USB disk that takes just a little
    # longer to be available
    # Only applicable for Debian GNU/Linux {dkms,initramfs}.
    ZFS_INITRD_POST_MODPROBE_SLEEP='0'
    

    以下是如何设置它。

    1. 从 Ubuntu Live CD(或任何其他恢复媒体)启动
    2. 导入池以/mnt使用zpool import rpool -R /mnt
    3. 绑定必要的文件系统mount --rbind /dev /mnt/dev; mount --rbind /proc /mnt/proc; mount --rbind /sys /mnt/sys
    4. chroot 进入/mnt:chroot /mnt /bin/bash --login
    5. 编辑/etc/default/zfs以将上面的值从更改0为15
    6. 运行update-initramfs和update-grub
    7. 退出 Chroot 环境并重新启动
    • 12
  2. mpb
    2022-05-20T18:41:28+08:002022-05-20T18:41:28+08:00

    2022 年 5 月 27 日更新:

    我安装并运行带有 ZFS-on-root(和 ext4/boot分区)的 Ubuntu 22.04。

    但是,根据我遇到的问题,我建议不要在 Linux 上使用 ZFS-on-root。

    具体来说,似乎:Linux + ZFS-on-root + 快照(可能还与绑定挂载和/或容器结合使用)可能会导致问题。更具体地说:快照问题。

    通过为根文件系统创建一个 ZFS 池并为其他所有内容创建一个单独的 ZFS 池,这些问题可能会得到缓解或避免。但我没有试过这个。

    如果您确实想尝试在 Linux 上运行 ZFS-on-root,我建议您首先在 GitHub 上搜索打开和关闭(!)问题,以熟悉您可能遇到的问题。

    我遇到的问题似乎在以下 GitHub 问题报告中有所提及: 816、 4514、 9461、 9479、 9958、 10348,可能还有更多。

    由于许可证冲突,OpenZFS 将(很可能)永远不会与 Linux 内核合并。因此,我怀疑 OpenZFS 永远不会像 Linux 上的根文件系统那样接受像直接构建在 Linux 内核中的 GPL 许可文件系统(例如 ext4、Btrfs、XFS)那样多的测试。


    2022 年 5 月 20 日的原始答案:

    从 Ubuntu 22.04 开始,添加ZFS_INITRD_POST_MODPROBE_SLEEP='15'to/etc/default/zfs仍然可以解决问题。(旁白:就我而言,我只需要1延迟一秒。)

    但是,我认为值得指出的是,两者...

    • ZFS_INITRD_POST_MODPROBE_SLEEP
    • 和ZFS_INITRD_PRE_MOUNTROOT_SLEEP

    ...现在已弃用并已从 (/etc/default/zfsnote1 , note2 , pull request)中删除。

    此处描述了弃用的理由。

    简而言之,似乎现在rootdelay=n应该使用一个内核命令行选项。

    如果您想查看使用这些变量的实际 OpenZFS initramfs 脚本,请访问:
    https ://github.com/openzfs/zfs/blob/master/contrib/initramfs/scripts/zfs

    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

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