曾经采用了将第二快硬盘加入zfs 主分区的构架:FreeBSD在zfs挂接第二块ssd 硬盘_zfs不能attach附加硬盘-CSDN博客,但是在一次掉电后,整个zfs都崩了。所以准备将两块硬盘隔离开,各分为一个zfs区,这样任何一块坏了,不会影响另外一块。
登录系统后,看看当前情况:
root@fb5:~ # df -H
Filesystem Size Used Avail Capacity Mounted on
zroot/ROOT/default 29G 2.1G 27G 7% /
devfs 1.0k 0B 1.0k 0% /dev
/dev/gpt/efiboot0 273M 1.4M 271M 1% /boot/efi
zroot/var/log 27G 168k 27G 0% /var/log
zroot/home 27G 98k 27G 0% /home
zroot/var/mail 27G 139k 27G 0% /var/mail
zroot 27G 98k 27G 0% /zroot
zroot/tmp 27G 135k 27G 0% /tmp
zroot/var/crash 27G 98k 27G 0% /var/crash
zroot/usr/src 27G 98k 27G 0% /usr/src
zroot/var/tmp 27G 98k 27G 0% /var/tmp
zroot/var/audit 27G 98k 27G 0% /var/audit
zroot/usr/ports 27G 98k 27G 0% /usr/ports
zroot/home/skywalk 27G 143k 27G 0% /home/skywalk
root@fb5:~ # zpool status
pool: zroot
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
ada0p4 ONLINE 0 0 0
errors: No known data errors
root@fb5:~ # zpool import
pool: zroot
id: 4573297386038221320
state: FAULTED
status: One or more devices contains corrupted data.
action: The pool cannot be imported due to damaged devices or data.
The pool may be active on another system, but can be imported using
the '-f' flag.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-5E
config:
zroot FAULTED corrupted data
ada0p4 FAULTED corrupted data
ada1p2 ONLINE
可以看到,现在zroot区只有一块硬盘ada0p4,而且它还有错误数据。
首先修复错误
zroot FAULTED corrupted data
ada0p4 FAULTED corrupted data
使用zpool clear 命令 修复错误:
zpool clear -F zroot
root@fb5:~ # zpool status
pool: zroot
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
ada0p4 ONLINE 0 0 0
errors: No known data errors
修复完成!
这里走了弯路了。其实老的系统,不应该重装的,而是应该用zpool import来加载,用zpool clear -F zroot 来修复错误。
现在重装系统后,老的zroot分区里,ada0p4已经被破坏了,所以使用zpool import的时候,会显示ada0p4为FAULTED corrupted data。
这样没法重新回到原来的系统了。
新系统加载ada1盘到data分区并挂载
使用zpool create命令创建一个叫data的zfs分区,j将ada1挂载到/data:
root@fb5:/usr/ports # zpool create data /dev/ada1
root@fb5:/usr/ports # df
Filesystem 1K-blocks Used Avail Capacity Mounted on
zroot/ROOT/default 26986784 2145576 24841208 8% /
devfs 1 0 1 0% /dev
/dev/gpt/efiboot0 266144 1360 264784 1% /boot/efi
zroot/var/log 24841372 164 24841208 0% /var/log
zroot/home 24841304 96 24841208 0% /home
zroot/var/mail 24841344 136 24841208 0% /var/mail
zroot 24841304 96 24841208 0% /zroot
zroot/tmp 24841340 132 24841208 0% /tmp
zroot/var/crash 24841304 96 24841208 0% /var/crash
zroot/usr/src 24841304 96 24841208 0% /usr/src
zroot/var/tmp 24841304 96 24841208 0% /var/tmp
zroot/var/audit 24841304 96 24841208 0% /var/audit
zroot/usr/ports 25786532 945324 24841208 4% /usr/ports
data 241827564 96 241827468 0% /data
可以看到挂载完成!
现在就可以做后面的事情了,比如安装CBSD
pkg install cbsd
初始化CBSD,将/usr/jails放到新的zfs data区里:
zfs create -o mountpoint=/usr/jails -o atime=off data/jails
后面就是按部就班的操作了。