FreeBSD重启后无法进入多用户模式,报错failed, superblock has critical errors

embedded/2024/10/9 7:58:25/

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文件里的老挂载信息!


http://www.ppmy.cn/embedded/96328.html

相关文章

Leetcode每日刷题之611.有效三角形的个数(C++)

1. 思路解析 根据题意我们可知,我们需要在指定数组中找出任意三个数并判断是否可以组成一个三角形,即任意两数之和大于第三个数,任意两数之差小于第三个数,如果有数组元素相同的数组,由于取出的元素只是数值相同而实际…

微信支付流程

1. 创建订单 请求创建订单的 API 接口:把 订单金额、收货地址、订单中包含的商品信息 发送到服务器服务器响应的结果:订单编号 2.订单预支付 请求订单预支付的 API 接口:把步骤1得到的 订单编号 发送到服务器服务器响应的结果:…

【自用】Python爬虫学习(二):网页解析的三种方式(re、bs4、xpath)

Python爬虫学习(二) 网页解析的三种方式1.正则表达式-re解析常用表达:re常用函数:在html中的运用: 2.BeautifulSoup解析常用语法:用法举例: 3.xpath解析示例代码1:示例代码2&#xf…

Eureka原理实践

Eureka是Netflix开源的服务发现框架,它实现了服务的注册与发现,是微服务架构中不可或缺的一部分。在微服务架构中,服务实例会动态地注册和注销,因此需要一个服务注册中心来管理这些服务实例的信息,Eureka就承担了这个角…

[Qt][Qt 文件]详细讲解

目录 1.输入输出设备类2.文件读写类3.文件和目录信息类 1.输入输出设备类 在Qt中,⽂件读写的类为QFile,其⽗类为QFileDevice QFileDevice提供了⽂件交互操作的底层功能QFileDevice的⽗类是QIODevice,其⽗类为QObject QIODevice是Qt中所有I/O…

RabbitMq如何确保消息不丢失

问题:在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递…

Springboot 集成websocket 并支持服务集群

1、新增配置类声明 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter;Configuration public class WebsocketConfig {/***…

01_理解网络编程和套接字

1.服务端 1.创建套接字 #include <sys/socket.h> int socket(int domain, int type, int protocol); // 成功时返回文件描述符&#xff0c;失败时返回-1&#xff1b; 2.套接字分配地址&#xff08;IP和端口号) #include <sys/socket.h> int bind(int sockfd, s…