详细解决方案

详细解决方案

Mojave 10.14.6,使用 brew 安装的 OpenZFS(OS X 1.9.4 Mojave.pkg 上的 OpenZFS)

这里的“消失”不是指“它没有被导入”,而是指它真的消失了(没有输出zpool import)。至少在那台特定的机器上(macbook pro 13 unibody)和那个特定的分区上,这个问题是可以重现的。我创建了,我重启了,什么都没有了。diskutil list显示预先存在的分区,好像我的zpool create命令从未发生过(例如 HFS+)。

它发生在 SSD 分区(disk0s3)上。以前的分区是:disk0s1 EFI,disk0s2 APFS 和操作系统。还有另一个内部磁盘(disk1,HDD,完全用于 ZFS),加上一堆带有 ZFS 的 USB 磁盘,那里没有问题。

每当我重新启动时,disk0s3 都会恢复到在其位置创建 ZFS 池之前的任何分区,无论是 fat32 还是 HFS 或其他什么。

我尝试在这里和互联网上搜索,但一无所获,也不知道到底发生了什么。我的搜索结果被那些无法找到他们的池的人所掩盖,因为它没有自动导入,但我的情况完全不是这样。这不是我使用 ZFS 的唯一一台 macOS 机器——特别是在一台机器上,我有完全相同的配置,一个池位于 SSD 分区上,另一个池位于整个磁盘上。我也在 Linux 上使用 ZFS,这是我第一次遇到这样的情况。

如果有人对如何继续有任何想法,我将不胜感激。我已将此作为 github 问题发布在 OSX 上的 OpenZFS 项目上(https://github.com/openzfsonosx/openzfs/issues/15),但没有答复。如果有任何信息,我也会在那里报告。

答案1

我找到了解决方案,感谢这个答案在 OS X 论坛上的 OpenZFS 上。

问题是,在 GPT 分区上创建 ZFS 池时,必须在 ZFS 之外手动设置分区的类型,如OS X 上的 zpool OpenZFS 文档

请注意,如果您自己对磁盘进行分区,并为 ZFS 指定一个分区,则您有责任确保分区表显示分区类型为 ZFS。这可以使用 OS X 的内置“gpt”命令或更易于使用的“gdisk”命令来完成。

详细解决方案

  • 使用 homebrew: 安装 gdisk brew install gdisk,然后使用 创建池zpool create

  • 使用以下命令启动 gdisksudo gdisk /dev/diskX

  • 使用命令打印分区表p,确定需要设置类型的分区的分区号。

  • 使用命令更改类型t,该命令要求输入分区号(选择之前确定的分区)和分区类型(使用bf01)。

  • 使用命令将分区表写入磁盘w

  • 退出 gdisk,重新启动。

以下是完整的 gdisk 使用示例和输出:

$ sudo gdisk /dev/diskX
GPT fdisk (gdisk) version 1.0.6

Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/diskX: 976773169 sectors, 465.9 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): HGB0C1AB-0911-473A-AC20-B955064EG470
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 8-sector boundaries
Total free space is 524309 sectors (256.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              40          409639   200.0 MiB   EF00  EFI System Partition
   2          409640       255080447   121.4 GiB   AF0A  Mac
   3       255080448       976248831   343.9 GiB   AF00

Command (? for help): t
Partition number (1-3): 3
Current type is AF00 (Apple HFS/HFS+)
Hex code or GUID (L to show codes, Enter = AF00): bf01
Changed type of partition to 'Solaris /usr & Mac ZFS'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

附录

为什么另一台 MacBook 中的旧分区与出厂时配置完全相同?我没有明确的答案。我已使用检查了分区类型,gdisk结果错误的: AF00,而不是BF01应该有的样子。尽管如此,一切都正常。我能想到的唯一区别是它是几年前创建的,使用的是更老的 ZFS 安装(可能是 0.6 或 0.7 版),并且该zpool命令执行了一些操作,使它能够被 ZFS 识别。

相关内容