之前我使用 FSTYPE 创建了一个新分区zfs_member
,并且(我认为)我将 GPT 分区标签设置为 ZFS 池的新名称,然后在该分区中创建了 ZFS 池(zpool create ... /dev/disk/by-partuuid/...
)。看起来像:
$ lsblk --output NAME,FSTYPE,MODEL,LABEL,PTTYPE,SIZE -e 7
NAME FSTYPE MODEL LABEL PTTYPE SIZE
sda Samsung_SSD_860_QVO_1TB gpt 931,5G
└─sda1 zfs_member my-zfs-pool gpt 931,5G
我在几个地方读到对 ZFS 使用 GPT 分区应该没问题。在旧的 Sun ZFS 文档中,有时建议使用整个磁盘,但这似乎已经过时了,尤其是与 ZFS-on-Linux 无关。(关于这个话题的一些讨论:例如这里)
现在我读到 ZFS-on-Linux 无论如何都会自动使用 GPT 对磁盘进行分区,如果你将整个磁盘传递给zpool create
. (这是一个实际禁用该自动分区行为的选项的问题。)
请注意,无论如何,我都想要一些 GPT 分区。因为例如,也许我想稍后缩小分区并将其他分区放在上面。管他呢。我认为没有任何充分的理由不在磁盘上放置 GPT 分区表。
所以我认为自动分区可能会更好。也许 ZFS 对它的分区略有不同,无论出于何种聪明的原因,这可能会更好。所以我在另一个新磁盘 ( zpool create ... /dev/disk/by-id/...(whole-disk)
) 上这样做了。
但是,现在看起来像这样:
$ lsblk --output NAME,FSTYPE,MODEL,LABEL,PTTYPE,SIZE -e 7
NAME FSTYPE MODEL LABEL PTTYPE SIZE
sdb WDC_WD60EZAZ-00ZGHB0 gpt 5,5T
├─sdb1 gpt 5,5T
└─sdb9 gpt 8M
所以,ZFS 确实如我所愿创建了一个 GPT 分区表。但是,它没有FSTYPE
在分区上设置 ,也没有设置 GPT 分区标签。
所以,现在我的实际问题:
为什么它没有设置 FSTYPE,也没有设置 GPT 分区标签?
之后设置 FSTYPE 是否安全?例如到zfs_member
?
之后设置GPT分区标签是否安全?例如 zpool 的名称?
警告:确保您有备份,因为如果您不小心做了“错误的事情”,您可能会丢失所有数据。
这样做可能根本不值得冒险,因为您可以通过其他方式跟踪此分区的类型(例如,在物理驱动器上写入)。
通常我们在将数据写入新分区之前执行此操作,这样就没有风险。
我还没有对已经在使用的磁盘执行此操作,但我相当确定它可以完成。
您可以使用 gdisk ( https://www.rodsbooks.com/gdisk/gdisk.html ) 设置 GPT 分区名称(又名“标签”)。Gdisk 非常小心地帮助您避免破坏性事故,但要确保避免它们,您仍然需要了解它是如何工作的。
很可能,其他分区工具也可以做到这一点,但是对于 GPT,我只使用了 gdisk 和 sgdisk。
不要担心分区类型,因为 Linux 不需要它。您可以在名称/标签中包含“ZFS”。
顺便说一句,
lsblk
(在 Manjaro 上)显示我的 zfs 镜像如下。分区是通过将整个磁盘提供给 ZFS(2015 年,在 Ubuntu 上)完成的。
我可能稍后将名称更改为“zp0”,但通过 zpool,而不是通过其他工具,使用:
zpool export [poolname]
zpool import [poolname] [newpoolname]
使用你的 lsblk args :
编辑:
回答您的“实际问题”:
作为在 GPT 中更改标签的更安全的替代方法:
尝试在 ZFS 中更改池名称,并查看它是否会更改 lsblk 显示的内容:
zpool export [poolname]
然后
zpool import [poolname] [newpoolname]
这是重命名池的正常方法,并且非常安全。
(方括号仅表示要替换的文本;不要包括它们。)
关于 sdx9 分区,我也不知道,也懒得去查,抱歉。只有当你给 ZFS 一个完整的原始磁盘时才会发生这种情况。试试OpenZFS 文档。
我正准备创建另一个 ZFS 镜像,并在研究如何最好地做到这一点时看到了这个线程。这次我将使用 sgdisk 制作 GPT,然后在匹配的 GPT 分区(每个驱动器上一个)上创建 zpool 镜像。我期待制作带有 ZFS 数据分区的 EFI 引导驱动器的可能性,这种情况需要这种两步法。(除非操作系统是 FreeBSD,在这种情况下,我会让操作系统安装程序创建一个 ZFS 引导驱动器。)