我在单板计算机上有一个ubuntu服务器(11.10),偶尔可能会出现断电。当它在之后启动时,fsck会提示用户按'f'来检查驱动器。因为这个服务器通常没有连接监视器和键盘,并且正常访问它的唯一方法是通过SSH,这非常不方便。
有没有办法保证在启动时可以在没有用户输入的情况下完成任何所需的fsck检查?基本上,我希望它始终在启动时运行'fsck -y'(当检测到问题时),而不是提示用户输入。
谢谢!
答案 0 :(得分:10)
所以我找到了两个与我的问题相关的解决方案:
我不确定这些是否在所有地方都有效,但它们适用于ubuntu服务器11.10。
/ etc / default / rcS如下所示:
#
# /etc/default/rcS
#
# Default settings for the scripts in /etc/rcS.d/
#
# For information about these variables see the rcS(5) manual page.
#
# This file belongs to the "initscripts" package.
# delete files in /tmp during boot older than x days.
# '0' means always, -1 or 'infinite' disables the feature
TMPTIME=0
# spawn sulogin during boot, continue normal boot if not used in 30 seconds
SULOGIN=no
# do not allow users to log in until the boot has completed
DELAYLOGIN=no
# assume that the BIOS clock is set to UTC time (recommended)
UTC=yes
# be more verbose during the boot process
VERBOSE=no
# automatically repair filesystems with inconsistencies during boot
FSCKFIX=no
确保最后一行改为
# automatically repair filesystems with inconsistencies during boot
FSCKFIX=yes
系统刚启动而不需要用户干预的另一个障碍就是grub bootloader屏幕在发生故障/中断启动后等待用户输入。
这需要在中编辑grub设置文件 /etc/grub.d/00_header
/etc/grub.d$ grep -r -n -C3 timeout ./
./00_header-229- fi
./00_header-230-fi
./00_header-231-
./00_header:232:make_timeout ()
./00_header-233-{
./00_header-234- cat << EOF
./00_header-235-if [ "\${recordfail}" = 1 ]; then
./00_header:236: set timeout=-1
./00_header-237-else
./00_header:238: set timeout=${2}
./00_header-239-fi
./00_header-240-EOF
./00_header-241-}
只需将第236行更改为
set timeout = 0
和第238行到
set timeout = 0
这会导致系统在启动时从不暂停。编辑完文件后,运行
sudo update-grub
获取/boot/grub/grub.cfg文件中实现的更改。
答案 1 :(得分:3)
对于grub,而不是像上面那样修改文件,如果你使用的是最新版本的GRUB,那就是grub2,更简洁的方法是:
更改&#34; / etc / default / grub&#34;
添加第GRUB_RECORDFAIL_TIMEOUT="30"
行
然后运行update-grub
答案 2 :(得分:1)
RECORFAIL TIMETOUT答案与Grub引导程序有关,并且在&#34;引导尝试失败后发生&#34; 如here所述。尽管与the question有关,并且在强制重启时有一点需要注意,但它不是fsck问题的答案(&#34;总是运行&#39; fsck -y&# 39;&#34; )。
我相信Nato Saichek answer是正确的。 This link解决了在Ubuntu和RHEL / CentOS中强制fsck的问题。对于Ubuntu,脚本从/etc/default/rcS
获得一些选项。因此,我认为取消注释并将默认#FSCKFIX=no
更改为FSCKFIX=yes
就足够了。