删除 ZFS 中的默认/根数据集

删除 ZFS 中的默认/根数据集

我是 ZFS 的新手,我想知道它是如何工作的。我使用多个名为 Tank 的磁盘创建了一个池。此外,似乎创建了一个以池命名的默认数据集。尽管如此,我不需要/想要这个默认数据集,但我只想使用在默认数据集上创建的其他数据集:

# zpool status
  pool: tank
 state: ONLINE
config:

        NAME                        STATE     READ WRITE CKSUM
        tank                        ONLINE       0     0     0
          raidz1-0                  ONLINE       0     0     0
            scsi-35000c5008576aa6b  ONLINE       0     0     0
            scsi-35000c50057cf7473  ONLINE       0     0     0
            scsi-35000c50085f5f207  ONLINE       0     0     0
            scsi-35000c50085c22ce3  ONLINE       0     0     0
            scsi-35000c50085f5eea3  ONLINE       0     0     0
            scsi-35000c5008521b903  ONLINE       0     0     0
            scsi-35000c50085c13f57  ONLINE       0     0     0
            scsi-35000c50057cf606f  ONLINE       0     0     0
            scsi-35000c50084989893  ONLINE       0     0     0
            scsi-35000c5006367866f  ONLINE       0     0     0
            scsi-35000c50084269b7b  ONLINE       0     0     0
        spares
          scsi-35000c5008576619b    AVAIL

errors: No known data errors

# zfs list
NAME              USED  AVAIL     REFER  MOUNTPOINT
tank             24.8G  17.5T     39.9K  /tank
tank/baculafull  24.8G  17.5T     24.8G  legacy
tank/baculainc   38.1K  17.5T     38.1K  /srv/bacula/baculainc
tank/idera       38.1K  17.5T     38.1K  /srv/idera/

如您所见,tank 数据集自动挂载到 /tank 上。由于我不会在 /tank 中写入任何内容,因此我想知道是否可以阻止自动挂载根数据集。我是否应该像对 Tank/baculafull 数据集所做的那样将安装点更改为旧版?有一个更好的方法吗?

问候,

答案1

虽然将根数据集挂载点设置为旧版可以解决问题,但我发现还有更好的选择:

  1. 将挂载点设置为无:

    zfs set mountpoint=none tank
    
  2. 将 canmount 设置为关闭:

    zfs set canmount=off tank
    

使用第二个选项,您甚至可以将挂载点设置为任何值,以便其他数据集可以继承它,尽管根数据集不会被挂载。

检查这些链接:

答案2

是的,安装遗留的根数据集可能是一个不错的选择。另请参阅这个答案

基本上,使用“legacy”安装意味着 ZFS 不会自动安装,但您可以随后安装(使用 fstab 或手动),或者选择不安装。

答案3

如果您不想挂载池的默认 ZFS 文件系统:

zpool create -m none ...

这将创建没有任何安装点的池。

相关内容