我已经运行了
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的所有问题,
,“否”将回答所有问题的否。
#2 楼
这是我在杰西(Jessie)旧稳定版上使用的内容,位于cmdline.txt
的行末:forcefsck
我在
fstab
中也具有以下内容:
/dev/mmcblk0p1 /boot vfat defaults,noatime 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
请注意在行尾的
1
和2
每次启动时都会检查并修复根分区(/ dev / mmcblk0p2)(@JulianKnight不是/dev/sda2)。
原始OP中描述的内容仍适用于RPi上的Wheezy:
sudo touch /forcefsck
@WillianPaixao Wheezy之后,不再支持
-F
的shutdown
选项如何强制文件系统检查(大多数情况下)绑定到内核版本,在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
评论
与sudo shutdown -rF now有何不同? Boot.log看起来完全不同。
–JPX
17年2月13日在12:58