我的 Ubuntu 12.04 系统有两个 zpools:rpool(包含根文件系统)和 rdata(包含所有其他数据)。rdata 最初是 2 x 1TB 磁盘镜像。
因为我无法将 rdata 升级到 3TB 磁盘(错误的 ashift),我不得不从新的 3TB 磁盘创建一个新的 zpool:最初称为 datapool。然后我 rsync 了所有数据,导出了 rdata,将 datapool 导入为 rdata 和 Bob's your Uncle。然后我关闭电源并移除旧磁盘。但是...
当我重新打开电源时,zpool 状态显示
pool: rdata
state: UNAVAIL
status: One or more devices could not be used because the label is missing
or invalid. There are insufficient replicas for the pool to continue
functioning.
action: Destroy and re-create the pool from
a backup source.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
scan: none requested
config:
NAME STATE READ WRITE CKSUM
rdata UNAVAIL 0 0 0 insufficient replicas
mirror-0 UNAVAIL 0 0 0 insufficient replicas
scsi-SATA_WDC_WD10EADS-00_WD-WCAU47275172-part1 UNAVAIL 0 0 0
scsi-SATA_WDC_WD10EADS-00_WD-WCAU47283913-part1 UNAVAIL 0 0 0
pool: rpool
state: ONLINE
scan: scrub repaired 0 in 0h23m with 0 errors on Tue Jun 4 11:33:29 2013
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
ata-Maxtor_6Y120L0_Y31J3CLE-part2 ONLINE 0 0 0
errors: No known data errors
如您所见,zpool status 仍然显示旧的 rdata;不可用。
zpool import 显示
pool: rdata
id: 7033445233439275442
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
rdata ONLINE
mirror-0 ONLINE
scsi-SATA_ST3000DM001-1CH_W1F1EE1G ONLINE
scsi-SATA_ST3000DM001-1CH_W1F25SE2 ONLINE
这是正确的 rdata
问题:如何让 Ubuntu 忘记所有旧的 zpool?
答案1
sudo zpool destroy rdata
将破坏旧池(可能需要 -f 来强制)。
sudo zpool export rdata
将断开池的连接。
sudo zpool import 7033445233439275442
将导入新池。您需要使用 ID 号,因为有两个“rdata”池。
当您使用 ZFS 根运行时,剩下要做的就是重建 initramfs 来更新池:
sudo update-initramfs -c -k all
sudo update-grub
重新启动,一切正常。:)
答案2
您只需一个命令即可销毁池。
sudo zpool destroy <poolname>
检查池的状态
sudo zpool status <poolname>