我想将 /var 从简单的 ext4 分区移动到我在 RAID 阵列上构建的 zfs 池。我知道我必须在单用户模式下重新启动到 cp -avr /var 分区,但是如何确保所有内核模块都在启动时加载并在单用户环境中,我是否必须将它们放入在 initrd 中?
答案1
解决了这个问题(Debian 10);
- 设置 ZFS 结构但不设置挂载点
- 以单用户模式重新启动
- 使用 zpool import -d /dev/disk/by-id 导入 ZFS 结构
- 将 /var 复制到新池,我使用了 rsync -avxHAX /var/
- 将 /var 移动到 /var2 作为备份
- 编辑 /etc/fstab 以防止安装旧变量
- 将 ZFS 分区的安装点更改为 zfs set mountpoint=/var
- 重启
选修的;您可能需要“zfs set overlay=on ”。我不需要在单个磁盘上带有 zfs 的测试虚拟机上执行此操作,而是在一台破旧的旧服务器上执行此操作。这是因为内核在 ZFS 安装之前开始填充 /var。查看 systemd 日志,这与我的旧 ext4 分区安装在 /var 上并且系统可以工作的启动点大致相同,但是 ymmv。
理由;我想要为我的 docker 容器和虚拟机提供更多空间,并将它们放置在文件系统上的标准位置,并且我想尝试 ZFS 来实现快照、压缩和稳定性。如果出现严重错误,我会更新它。