使用Pi 3和Raspberry Jessie时如何在启动时运行fsck?我已经阅读了一些教程,但是它们有所不同。
我已经运行了sudo touch /forcefsck,但是我还需要做什么?我知道我应该设置FSCKFIX = yes,但是正确的文件是什么?有人说/lib/init/vars.sh别人说/etc/default/rcS
如何验证我的设置正常?我看不到屏幕。停电,因此文件系统损坏的风险很高。
编辑:
我尝试了下面提到的两个解决方案。
1)通过使用sudo shutdown -rF now /var/log/boot.log说:

[^[[32m  OK  ^[[0m] Started Load/Save Random Seed.
[^[[32m  OK  ^[[0m] Started Show Plymouth Boot Screen.
[    3.679250] systemd-fsck[219]: fsck.fat 3.0.27 (2014-11-12)
[    3.681320] systemd-fsck[219]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters
[^[[32m  OK  ^[[0m] Started File System Check on /dev/mmcblk0p1.
         Mounting /boot...
[^[[32m  OK  ^[[0m] Reached target Paths.
[^[[32m  OK  ^[[0m] Created slice system-systemd\x2drfkill.slice.
         Starting Load/Save RF Kill Switch Status of rfkill0...
[^[[32m  OK  ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0.
[^[[32m  OK  ^[[0m] Created slice system-ifup.slice.
[^[[32m  OK  ^[[0m] Mounted /boot.
[^[[32m  OK  ^[[0m] Reached target Local File Systems.
         Starting Tell Plymouth To Write Out Runtime Data...
         Starting Create Volatile Files and Directories...
         Starting LSB: Raise network interfaces....
[^[[32m  OK  ^[[0m] Reached target Remote File Systems.
         Starting Trigger Flushing of Journal to Persistent Storage...
         Starting LSB: Prepare console...
         Starting LSB: Switch to ondemand cpu governor (unless shift key is pressed)...
[^[[32m  OK  ^[[0m] Started Tell Plymouth To Write Out Runtime Data.

2)通过在fsck.mode=force引导日志中使用fsck.repair=yes/boot/cmdline.txt说:

[^[[32m  OK  ^[[0m] Started Show Plymouth Boot Screen.
[^[[32m  OK  ^[[0m] Reached target Paths.
[^[[32m  OK  ^[[0m] Created slice system-systemd\x2drfkill.slice.
[^[[32m  OK  ^[[0m] Created slice system-ifup.slice.
[    5.749367] systemd-fsck[112]: Pass 2: Checking directory structure
[    8.673500] systemd-fsck[112]: Pass 3: Checking directory connectivity
[    8.683831] systemd-fsck[112]: Pass 4: Checking reference counts
[    9.318835] systemd-fsck[112]: Pass 5: Checking group summary information
[    9.518754] systemd-fsck[112]: /dev/mmcblk0p2: 131321/956160 files (0.2% non-contiguous$
[^[[32m  OK  ^[[0m] Started File System Check on Root Device.
         Starting File System Check on /dev/mmcblk0p1...
         Starting Remount Root and Kernel File Systems...
[^[[32m  OK  ^[[0m] Started Remount Root and Kernel File Systems.
         Starting Load/Save RF Kill Switch Status of rfkill0...
         Starting Load/Save Random Seed...
[^[[32m  OK  ^[[0m] Reached target Local File Systems (Pre).
[    9.639259] systemd-fsck[239]: fsck.fat 3.0.27 (2014-11-12)
[^[[32m  OK  ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0.
[    9.644216] systemd-fsck[239]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters
[^[[32m  OK  ^[[0m] Started File System Check on /dev/mmcblk0p1.
[^[[32m  OK  ^[[0m] Started Load/Save Random Seed.
         Mounting /boot...
[^[[32m  OK  ^[[0m] Mounted /boot.

为什么这两个日志文件完全不同例?

#1 楼


我已经运行了sudo touch / forcefsck,但是我还必须做什么?


jessie可能(或可能不)向后兼容,但您也可以采用新方法:

/boot/cmdline.txt中添加以下内容:

fsck.mode=force


确保该文件保持为一行。参数应该用空格分隔。

您可能会注意到fsck.repair=yes已经存在;这些不是一回事。从man systemd-fsck开始(这些实际上是内核传递给init的参数,即systemd):


fsck.mode =

“自动”之一”,“力”,“跳过”。控制操作模式。默认值为“自动”,并确保在文件系统检查器认为有必要时进行文件系统检查。无条件“强制”操作会导致对整个文件系统进行检查。 “ skip”跳过所有文件系统检查。

fsck.repair =

“ preen”,“ yes”,“ no”之一。控制操作模式。默认值为“ preen”,它将
自动修复可以安全修复的问题。 “是”将回答fsck的所有问题,
,“否”将回答所有问题的否。


评论


与sudo shutdown -rF now有何不同? Boot.log看起来完全不同。

–JPX
17年2月13日在12:58

#2 楼

这是我在杰西(Jessie)旧稳定版上使用的内容,位于cmdline.txt的行末:
forcefsck

我在fstab中也具有以下内容:
/dev/mmcblk0p1 /boot vfat defaults,noatime 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1
请注意在行尾的12

每次启动时都会检查并修复根分区(/ dev / mmcblk0p2)(@JulianKnight不是/dev/sda2)。

原始OP中描述的内容仍适用于RPi上的Wheezy:
sudo touch /forcefsck

@WillianPaixao Wheezy之后,不再支持-Fshutdown选项

如何强制文件系统检查(大多数情况下)绑定到内核版本,在Debian 8.0(在8.2版中)之后的某个时候,它已按照@goldilocks答案中的描述进行了更改。

#3 楼

您还应该能够执行以下操作,该操作不仅适用于Pi,而且还适用于任何Linux(显然设备会因不同平台而异,sda2应该适合默认的Pi SD卡):

sudo tune2fs -c 1 /dev/sda2


应该在每次重新启动时进行检查。您可以将号码更改为自己喜欢的号码。如果要基于时间的检查,请使用-i而不是-c。有关更多信息,请参见手册页。

#4 楼

我将shutdown-F参数一起使用。 [1]

sudo shutdown -rF now


评论


我执行了命令。重新启动后,我的系统日志不包含任何有关fsck运行(树莓派拉伸)的信息。

–罗伯特
18年4月6日在20:36

我只是检查了Raspbian上的man shutdown-那里没有-F选项。

– Victor Sergienko
'18 Sep 2'在16:19

Paul Wratt的答案不再支持Wheezy之后的@WillianPaixao -F选项的shutdown。

–加纳马♦
18/09/10在11:31