![在远程服务器上运行自动 fsck](https://linux22.com/image/516245/%E5%9C%A8%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E8%BF%90%E8%A1%8C%E8%87%AA%E5%8A%A8%20fsck.png)
我对 df 还有另一个问题,现在我得出结论,我需要运行 fsck 我的分区,我一直在阅读有关它的内容,如果可能的话,我希望得到一些建议。
情况是这样的,无法物理访问服务器,但我想运行 fsck。
从我读到的内容来看,我只需要这样做touch /forcefsck
,当我重新启动时它就会运行 fsck。
我的问题是,从根本上讲,fsck 将使用什么参数运行?它是否需要用户输入来纠正错误等?
运行后它会保存发生的情况的日志吗?
如果它是这样运行的那就太完美了,无论如何在重启时强制执行这一点?
fsck -v -p /machine/disk/p1 2>&1 > fscklog.txt
还这里他们这样描述:
在 debian 和 debian 衍生产品(例如 ubuntu)上编辑远程服务器上的 /etc/default/rcS 并设置“FSCKFIX=yes”也是一个好主意,这会在启动时 fsck 中添加“-y”,这样就不会冒远程服务器被卡住等待某人登录控制台并运行 fsck 的风险。
但在 Centos 上似乎不存在
我目前只有 ssh 访问权限,这就是我对它如此挑剔的原因。
以下是有关服务器上的磁盘和已安装卷的一些信息:http://pastebin.centos.org/33314
谢谢。
答案1
好的,我发现在 CentOS 上你可以这样做:
touch /forcefsck
echo -n "-ys" > /fsckoptions
为了获得 fsck 所做工作的日志,我必须走一条更艰难的路:
警告:请自行承担风险,我不知道如果出错会有什么后果
编辑/etc/rc.sysinit
(不要忘记备份)以获得所需的行为:
从第 500 行开始(将 -C 改为 -V 可以消除进度条)
if [ "$BOOTUP" = "color" ]; then
fsckoptions="-C $fsckoptions"
else
fsckoption="-V $fsckoptions"
从第 648 行开始,运行 fsck 的块更改为如下所示:
outputtt="$(fsck -T -t noopts=_netdev -A $fsckoptions)"
mount -n -o remount,rw /
echo $outputtt > /var/log/fsckoutput
mount -n -o remount,ro /
一个小优点是它不会保留新行,但在迫切需要时可以读取。
感谢大家的帮助。
答案2
CentOS/Redhat 中的“autofsck”设置与其他发行版不同。您应该使用所需的设置编辑 /etc/sysconfig/autofsck,如以下邮件列表帖子中所述:http://lists.centos.org/pipermail/centos/2006-November/029837.html