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
。使用以下命令启动 gdisk
sudo 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 识别。