linux – ZFS池无法正确安装;找不到所有文件

前端之家收集整理的这篇文章主要介绍了linux – ZFS池无法正确安装;找不到所有文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在两个磁盘上有一个ZFS池(镜像RAID),我从FreeBSD 11.0服务器转移到Ubuntu 16.04.2 LTS服务器.

导入池后,我看到:

  1. NAME USED AVAIL REFER MOUNTPOINT
  2. zroot 993G 790G 104K /mnt/zfs
  3. zroot/ROOT 989G 790G 96K none
  4. zroot/ROOT/default 989G 790G 989G none
  5. zroot/tmp 140K 790G 140K none
  6. zroot/usr 3.37G 790G 96K none
  7. zroot/usr/home 2.15G 790G 2.15G none
  8. zroot/usr/ports 640M 790G 640M none
  9. zroot/usr/src 608M 790G 608M none
  10. zroot/var 1.66M 790G 96K none
  11. zroot/var/audit 96K 790G 96K none
  12. zroot/var/crash 96K 790G 96K none
  13. zroot/var/log 476K 790G 476K none
  14. zroot/var/mail 840K 790G 840K none
  15. zroot/var/tmp 96K 790G 96K none

我希望看到的是Ubuntu系统上/ mnt / zfs下的一个完全填充的目录树,其中包含993GiB的文件.我所看到的是一个部分填充的目录树,其中没有文件

  1. $tree /mnt/zfs
  2. /mnt/zfs
  3. ├── tmp
  4. ├── usr
  5. ├── home
  6. ├── ports
  7. └── src
  8. └── var
  9. ├── audit
  10. ├── crash
  11. ├── log
  12. ├── mail
  13. └── tmp

我很确定我在这里缺少一些基本的东西.

尝试#1:根据@ Zoredache的建议设置ROOT的挂载点,只会产生一个空的ROOT目录:

  1. $sudo zfs set mountpoint=/mnt/zfs/ROOT zroot/ROOT
  2. $tree /mnt/zfs
  3. /mnt/zfs
  4. └── ROOT

尝试#2:根据@ user121391的建议设置ROOT / default的挂载点,也会产生一个空目录:

  1. $sudo zfs set mountpoint=/mnt/zfs/ROOT zroot/ROOT/default
  2. $tree /mnt/zfs
  3. /mnt/zfs
  4.  
  5. 0 directories,0 files

尝试#3:根据@ user131391的其他建议,挂载单个目录似乎有效:

  1. $sudo zfs set mountpoint=/mnt/zfs/usr/home zroot/usr/home
  2. $tree /mnt/zfs
  3. /mnt/zfs
  4. └── usr
  5. └── home
  6. └── duncan
  7. ├── tmp
  8. ├── code
  9. ...
  10. └── usb
  11.  
  12. 17978 directories,67539 files

这很棒,但遗憾的是没有任何帮助.我之后的文件在/usr/local /下,它们没有出现在zfs list的结果中.但是,如果你看一下尺寸,这个空间显然会被使用:

  1. zroot/ROOT/default 989G 790G 989G none
  2. zroot/usr 3.37G 790G 96K none

尝试#4:

有关MichaelKjörling的更多信息:

  1. $sudo zfs set mountpoint=/mnt/zfs/ROOT zroot/ROOT/default
  2. $sudo zfs get mountpoint,mounted zroot -t filesystem -r
  3. NAME PROPERTY VALUE SOURCE
  4. zroot mountpoint none local
  5. zroot mounted no -
  6. zroot/ROOT mountpoint none local
  7. zroot/ROOT mounted no -
  8. zroot/ROOT/default mountpoint /mnt/zfs/ROOT local
  9. zroot/ROOT/default mounted no -
  10. zroot/tmp mountpoint none local
  11. zroot/tmp mounted no -
  12. zroot/usr mountpoint none local
  13. zroot/usr mounted no -
  14. zroot/usr/home mountpoint none local
  15. zroot/usr/home mounted no -
  16. zroot/usr/ports mountpoint none local
  17. zroot/usr/ports mounted no -
  18. zroot/usr/src mountpoint none local
  19. zroot/usr/src mounted no -
  20. zroot/var mountpoint none local
  21. zroot/var mounted no -
  22. zroot/var/audit mountpoint none local
  23. zroot/var/audit mounted no -
  24. zroot/var/crash mountpoint none local
  25. zroot/var/crash mounted no -
  26. zroot/var/log mountpoint none local
  27. zroot/var/log mounted no -
  28. zroot/var/mail mountpoint none local
  29. zroot/var/mail mounted no -
  30. zroot/var/tmp mountpoint none local
  31. zroot/var/tmp mounted no -
  32. $tree /mnt/zfs
  33. /mnt/zfs
  34.  
  35. 0 directories,0 files

解决方法

zroot和zroot / ROOT不包含任何文件,它们只是其他数据的容器.

您的大部分数据都是zroot / ROOT / default.

其他zfs文件系统应该从zroot继承它们的mountpoint(不知道在从FreeBSD到Ubuntu的过渡中这些信息是如何丢失的):

  1. zfs inherit mountpoint zroot/tmp
  2. zfs inherit mountpoint zroot/usr
  3. zfs inherit mountpoint zroot/usr/home
  4. zfs inherit mountpoint zroot/usr/ports

…等等(可能会对此进行-r但我没有检查过).

应该具有无挂载点的唯一zfs文件系统是zroot / ROOT:

  1. zfs set mountpoint=none zroot/ROOT

完成所有这些操作后,您需要导出并重新导入池,并按正确顺序挂载文件系统:

  1. zpool export zroot

将池导入新的挂载点但不实际挂载任何内容

  1. zpool import -a -N -r /mnt/zfs

挂载根池:

  1. zfs mount zroot/ROOT/default

安装其他一切:

  1. zfs mount -a

猜你在找的Linux相关文章