Clonezilla Unexpectedly Excludes Linux Mint ZFS Disk

有 1 种语言版本可以阅读 English

以前在硬盘盒上装了个 ZFS 加密的 Linux Mint. 最近想把这个 Linux Mint 全盘备份到远端 NFS 上,于是通过 PXE 启动了 Clonezilla. 问题是 Clonezilla 不显示我的硬盘盒(事发时通过查看 /proc/partitions 肯定其位于 /dev/sdb),检测到的都是内部盘:

磁盘列表

SourceForge / GitHub 上的讨论都没有类似的情况. 于是只能自己寻找方法,看了一下 Clonezilla 的源代码,发现磁盘枚举单独整了个工具 ocs-scan-disk

Clonezilla 磁盘枚举

其中调用了由 ocs-functions 定义的 get_not_busy_disks_or_parts. 通过在枚举时打日志,很快就可以跟踪到问题:

这名字看上去蛮奇怪的,然而事实是 fdisk 确实在盘上发现了 zfs_member 的文件系统签名,用 lsblk -f /dev/sdb 看的更清楚.

发现签名

user@debian:~$ lsblk -f /dev/sdb
NAME   FSTYPE      FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sdb    zfs_member  5000  rpool
├─sdb1 vfat        FAT32      
├─sdb2 crypto_LUKS 2          
├─sdb3 zfs_member  5000  bpool
└─sdb4 zfs_member  5000  rpool

很显然 FSTYPE 骗到了 Clonezilla,我感觉这个问题大概率得让 Linux Mint / Ubuntu(可能甚至是 Debian)背锅,在另一台 Arch Linux 上设置 ZFS 的时候根本不会写这种签名.

又脏又快的解决方法就是用 fdisk 把害人虫签名给清了,不过神奇的是每次 Linux Mint 启动完这个签名又会回来.

清除签名