FreeBSD重启后无法进入多用户模式
报错failed, superblock has critical errors
具体报错信息:
Attempt to find boot zone recovery data.
Finding an alternate superblock failed.
check for only noe-critical errors in standard superblock
failed, superblock has critical errors
SEARCH FOR ALTERNATE SUPER-BLOCK FAILED. YOU MUST USE THE
-b OPTION TO FSCK TO SPECIFY THE LOCATION OF AN ALTERNATE
SUPER-BLOCK TO SUPPLY NEEDED INFORMATION:SEE fsck_ffs(8).
Attempted recovery for standard superblock:failed
Attempted extraction of recovery data from standard supperblock:failed
Attempt to find boot zone recovery data
Finding an alternate superblock failed.
check for only noe-critical errors in standard superblock
failed, superblock has critical errors
SEARCH FOR ALTERNATE SUPER-BLOCK FAILED. YOU MUST USE THE
-b OPTION TO FSCK TO SPECIFY THE LOCATION OF AN ALTERNATE
SUPER-BLOCK TO SUPPLY NEEDED INFORMATION:SEE fsck_ffs(8).
/dev/da1p1:CAN'T CHECK FILE SYSTEM.
/dev/da1p1:UNEXPECTED INCONSISTENCY:RUN fsck MANUALLY
THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY:
ufs:/dev/da1p1(/data)
Automatic file system check failed:help!
ERROR:ABORTING BOOT(sending SIGTERM to parent)!
init 1 /bin/sh on /etc/rc terminated abnormally, going to single user mode
Enter full pathname of shell or RETURN for /bin/sh:
问题调试解决过程
按照提示,输入回车,进入单用户模式
fsck的提示有错误提示,按照提示,设置:
fsck_ffs -b 192
然后执行
执行mount -a
显示:/dev/da1p1:Operation not permitted
执行zfs mount -a
显示:failed to lock /etc/zfs/exports.lock :Read-only file system
现在不知道下一步该怎么办了。
zpool status 可以看到两个zfs分区都是正常的。
思考故障原因:
1 可能是FreeBSD没关好,ESXi强制关机导致的,这个概率小
2 可能是因为硬盘原来是挂在/data ,后来用zfs挂到data ,而fstab里面没有修改导致的。
确认故障原因
查看fstab文件
果然发现了这一条:
/dev/da1p1 /data ufs rw 2 2
也就是修改在zfs挂载data的时候,并没有把fstab里面原来的挂载信息手动去掉,导致启动报错,根本无法启动。
修改fstab文件
现在的问题就变成怎么把/etc/fstab 变成可写,并修改文件
首先根据FreeBSD启动后进入单用户模式,但是发现zfs系统是只读的,应该怎样挂载成可读可写呢?-CSDN博客
使用命令 将zfs分区设为可读可写
mount -u -o remount,rw /
输入mount确认一下,发现果然输出里面没有readonly字样了!
修改fstab文件
本来还担心单用户模式下没有vi,又要大费周章,结果意外发现竟然有vi,太棒了,直接修改fstab文件,将/data注释掉!
# /dev/da1p1 /data ufs rw 2 2
重启启动,启动成功!
总结
这件事之所以发生,是因为刚开始是使用普通方法挂载了硬盘,后来修改成zfs分区挂载,而没有修改fstab里面老的挂载,导致启动报错,系统无法启动。
总结经验就是,要么一开始就把硬盘用zfs挂载好,不要去动它。要么修改后别忘记注释掉fstab文件里的老挂载信息!