带有 Uboot 引导加载程序的 Debian 8.1 无法在重新启动时运行 FSCK

带有 Uboot 引导加载程序的 Debian 8.1 无法在重新启动时运行 FSCK

我在带有 U-boot 引导加载程序的 Banana PI 上的 SD 卡上运行 Debian 8.1。

我试图强制我的系统fsck重新启动后运行,但无论我做什么,都没有发生。到目前为止,我已经尝试过以下方法:

  • 设置FSCKFIX=yes在里面/etc/defaults/rcS
  • touch /forcefsckreboot
  • 更新/proc/cmdline以包含fsck.mode=forcefsck.repair=yes(这是通过将cp文件复制到另一个位置,然后再复制mount -n --bind到它来完成的)

不管怎样,什么也不会发生。当我查看日志文件 ( /var/logs/fsck/checkfs) 时,没有任何条目。

我尝试创建自己的文件以在启动时运行,该文件会调用fsck,我查看了自己的日志文件,我看到的只是fsck from util-linux 2.25.2.我更改了初始化脚本以在驱动器上显式运行(即fsck -yf /dev/mmcblk0p2),然后日志文件表示系统正在中止,因为驱动器已安装。仅供参考,这个初始化脚本是在运行之前运行checkfscheckroot

我真的很感激任何帮助!

答案1

我最近在 BananaPi 上偶然发现了这一点。这可能是你用 Systemd 启动的所以FSCKFIX=yes在里面设置/etc/defaults/rcS

不会帮助你。也是/proc一个虚拟文件系统,因此更改将在重新启动之间消失。

设置这些内核选项对于 来说是正确的systemd,但您需要将它们附加到启动参数中

/boot/boot.cmd我附加fsck.repair=yes到的末尾setenv bootargs

setenv bootargs "console=tty1 root=/dev/mmcblk0p1 rootwait rootfstype=ext4 cgroup_enable=memory swapaccount=1 sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_no_mali_mem_reserve sunxi_fb_mem_reserve=16 hdmi.audio=EDID:0 disp.screen0_output_mode=1920x1080p60 panic=10 consoleblank=0 enforcing=0 loglevel=${verbosity} fsck.repair=yes"

重要的是要注意,您需要使用以下命令重新生成/boot/boot.cmd它们才会出现(它打印在 的末尾/boot/boot.cmd

mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

您可以在重新启动后确认它已应用cat

~# cat /proc/cmdline 
console=tty1 root=/dev/mmcblk0p1 rootwait rootfstype=ext4 cgroup_enable=memory swapaccount=1 sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_no_mali_mem_reserve sunxi_fb_mem_reserve=16 hdmi.audio=EDID:0 disp.screen0_output_mode=1920x1080p60 panic=10 consoleblank=0 enforcing=0 loglevel=1 fsck.repair=yes

相关内容