Linux:强制只读挂载文件系统的fsck?

Linux:强制只读挂载文件系统的fsck?,第1张

概述我正在为无头嵌入式设备开发,运行CentOS 6.2.用户可以连接键盘,但不能连接显示器,串行控制台需要打开机箱,这是我们不希望用户必须做的事情.这几乎完全避免了使用恢复USB驱动器启动的可能性,除非它只是盲目地重新映像硬盘驱动器.我想提供一些恢复工具,我已经编写了一个工具,它在/ dev / tty1上代替getty来提供这些功能. 一个这样的功能是fsck.我已经找到了如何以只读方式重新安装r 我正在为无头嵌入式设备开发,运行CentOS 6.2.用户可以连接键盘,但不能连接显示器,串行控制台需要打开机箱,这是我们不希望用户必须做的事情.这几乎完全避免了使用恢复USB驱动器启动的可能性,除非它只是盲目地重新映像硬盘驱动器.我想提供一些恢复工具,我已经编写了一个工具,它在/ dev / tty1上代替getty来提供这些功能.

一个这样的功能是fsck.我已经找到了如何以只读方式重新安装root和其他文件系统.既然它们是只读的,那么fsck它们然后重新启动应该是安全的.不幸的是,fsck向我抱怨文件系统已安装并拒绝执行任何 *** 作.

如何强制fsck在只读的挂载分区上运行?

根据我的研究,这将是一个模糊不清的东西. “-f”仅表示强制修复干净(但未安装)的分区.我需要修复干净或不干净的安装分区.从我读到的,这是“只有专家”应该做的事情,但没有人费心去解释专家是如何做到的.我希望有人可以向我透露这个.

顺便说一句,我注意到Gentoo上的e2fsck 1.42.4会让你fsck一个挂载的分区,甚至挂载读写,但是如果从终端运行fsck似乎只会这样做,所以它可以询问用户是否有“他们确定要做一些如此危险的事情.我不确定CentOS版本是否做同样的事情,但似乎fsck CAN修复了已安装的分区,但是当它没有从终端运行时它却完全拒绝.

一个最后的选择是我编译自己的黑客fsck.但我担心我会以某种意想不到的方式弄乱它.

谢谢!

注意:最初发布here.

更新:我认为在我写这篇文章的时候并不重要,但为了重新安装fs只读,我必须这样做:

echo s > /proc/sysrq-triggerecho s > /proc/sysrq-triggerecho u > /proc/sysrq-trigger

这是我能找到的唯一方法.其他一切抱怨文件系统忙.据我所知,这是“安全的”,但它可能与通常的方法略有不同.这可能是fsck不想修复它的原因.它仍然认为它是读写的.

解决方法 您可以fsck只读文件系统,因为只读挂载并不像读写安装那样将其标记为“脏”.写入缓存中没有任何更改可能只是部分刷新到磁盘,因此所有磁盘上的结构都是一致且安全的,以便fsck进行修改.

但是,如果fsck进行了任何更改,内核的文件系统驱动程序可能会变得混乱,因为它预期保持不变的事情已经从它下面改变了.这不会影响文件系统本身的完整性(因为驱动程序没有写入它),但它可能会使运行系统不稳定.为避免这种情况,如果fsck对文件系统进行了任何更改,则应重新启动.

总结

以上是内存溢出为你收集整理的Linux:强制只读挂载文件系统的fsck?全部内容,希望文章能够帮你解决Linux:强制只读挂载文件系统的fsck?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1039645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存