基于 BBB 的定制主板上的根分区上的 fsck

基于 BBB 的定制主板上的根分区上的 fsck

我们有基于 BeagleBone Black 的定制嵌入式 Linux 板。它具有 Linux-3.12、256MB RAM 和 4GB eMMC,并带有ext4文件系统。

有时我们会遇到文件系统错误(罕见但并非不可能)。因此,我们希望检查文件系统错误并在启动时修复它。
显然,我们不希望 fsck 或任何其他实用程序破坏文件系统上的任何数据。

我们有 busybox,SysVinit所以/forcefsck不起作用:( 然后我使用/etc/fstab(将第 5 个字段设置为 1)然后fsck -prcS脚本运行。

此组合适用于除rootfs分区之外的分区。我对此有几个问题。

  1. 有什么办法可以在分区fsck上运行吗rootfs
  2. 可以fsck -p破坏分区上的数据吗?
  3. 有没有更好的方法来处理这种情况,我的意思是任何可以检查并纠正文件系统错误的服务?

答案1

基于 SysVinit 的桌面 Linux 发行版的正常做法是,当它在根文件系统上检测到错误时,在启动过程中要求输入 root 密码。然后您可以使用它fsck在根文件系统上运行。我不知道您的嵌入式发行版是否这样做,但绝对可以这样配置。

如果在启动期间没有检测到错误,另一个选择是以 root 身份登录,停止所有不必要的操作,以只读方式重新挂载根文件系统,然后在其上运行 fsck。

这是关于块存储的根文件系统,而不是根文件系统. Rootfs 是一个基于 RAM 的最小文件系统,在启动时使用,它不能被损坏(除非你的启动内核映像被损坏,或者你的 RAM 坏了)。

原则上fsck -p,它只用于执行“安全”修复,但如果您真的想确保不会发生任何不好的事情,请手动运行它,这样您每次操作时都会收到提示。如果由于某种原因根文件系统上有有价值的数据(不应该发生,但也许你会),请先使用进行备份dd

相关内容