![zpool 导入失败,值对于定义的数据类型来说太大](https://linux22.com/image/176646/zpool%20%E5%AF%BC%E5%85%A5%E5%A4%B1%E8%B4%A5%EF%BC%8C%E5%80%BC%E5%AF%B9%E4%BA%8E%E5%AE%9A%E4%B9%89%E7%9A%84%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E6%9D%A5%E8%AF%B4%E5%A4%AA%E5%A4%A7.png)
我有一个 3 磁盘 zpool 不想在格式化我的操作系统驱动器并重新安装并尝试重新导入后导入回来。 (从Mint 19到20,导入一次,操作系统重新启动,重新启动后,然后不会再次挂载)。
zpool 位于 /home,SSD 上有新的 /home,打算将 zpool zhome 安装到 /zhome,然后 rsync 回 /home,然后使用新驱动器创建新池,但出现了悲惨的错误。
$ sudo zpool import -R /zhome zhome
internal error: Value too large for defined data type
Aborted
需要明确的是,当我第一次使用新操作系统时,相同的命令起作用了,zpool 中有一个 rsync 从 /zhome/user 运行到 /home/user (一个大的,需要 3 天的时间,我忘记了)并且我重新启动。重新启动后,尝试再次导入 zpool 会出现此错误。
知道要尝试什么吗?
答案1
我能够恢复它。我对 testdisk 的运气不佳,并且 gparted 不允许进行微调。
我只是使用 fdisk,并继续处理条目,直到我可以创建与其他两个磁盘大小完全相同的 /dev/sdx9,就在磁盘的末尾(使用不同的起始扇区和自动结束扇区选择,以获得大小完全正确),然后默认添加 /sev/sdx1,切换类型以匹配其他磁盘,然后重新启动,它就回来了!希望这对某人有帮助,要获得正确的几何形状需要做很多工作,但这是值得的!
答案2
更新:
sudo zpool import -f
pool: zhome
id: 17312996257141753714
state: UNAVAIL
status: One or more devices contains corrupted data.
action: The pool cannot be imported due to damaged devices or data.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
config:
zhome UNAVAIL insufficient replicas
sdd ONLINE
sde ONLINE
sdf UNAVAIL corrupted data
有什么办法可以挽救这里的数据吗?我认为 sdf 上的分区表似乎有些混乱,但它还没有被格式化或任何东西。不知道如何恢复分区表,但是上面的东西应该还在那里吧?我要尝试一下 testdisk。
没有找到,查看zpool中的其他磁盘,我看到它们有2个分区,/dev/sdx1和/dev/sdx9,我正在考虑尝试在gparted或fdisk中计算和修复。 sdx1 似乎总是从扇区 2048 开始,所以这是一个开始。而sdx9似乎总是16384个扇区(8M,两个磁盘上的扇区似乎都是512字节)。不幸的是,在我的 SDD 上,结束扇区距最后一个可用扇区 1 个扇区,并且看到最后一个扇区距离末尾几千个扇区(呃!)。
所以,如果我随机猜测,我会说 sdx1 我可以猜测起始扇区。但我不知道如何猜测结束扇区。希望 testdisk 能找到看起来正确的东西,但到目前为止还没有运气(现在进行更深入的扫描)