远程机器上的 fsck 根文件系统

its*_*dok 4 remote-access ubuntu fsck

我在托管设施中运行 Ubuntu 8.04 机器的机器上遇到文件系统问题。曾经的目录现在看起来像这样:

b--xr-SrwT 52 825452087 876163170 56, 97 2021-10-10 05:43 58
Run Code Online (Sandbox Code Playgroud)

这是缓存数据,所以我不介意数据丢失,我只想修复文件系统。问题是,这是根文件系统,所以我不能卸载它来运行 fsck。

所以我的问题是:如何在根文件系统上运行 fsck 而不必一直开车到托管中心?

cas*_*cas 7

在 ubuntu 等 debian 和 debian-derivatives 上编辑远程服务器上的 /etc/default/rcS 并设置“FSCKFIX=yes”也是一个好主意

将“-y”添加到启动时间 fsck,因此不会有远程服务器卡在等待某人登录控制台并运行 fsck 的风险。

此外,为了防止再次发生类似的事情,值得拥有一个可以引导的救援分区(例如,临时设置 grub 的默认值)、ssh 进入并在您真正的 rootfs 上运行 fsck。如果您目前没有可用的空闲分区,您可以缩小交换分区,为自己提供足够的空间来制作救援分区(您可以使用 debootstrap 填充)。

如果你不能使用交换分区,你可以设置一个 grub 条目来引导到一个 live cd 映像(使用内核和 iso 中的 initrd)……但是你必须修改 initrd 文件系统才能有您正确的 IP 地址等,并确保 sshd 正在运行。clonezilla、gparted 或 systemrescuecd 将成为良好的实时系统,用作此的基础。您的 /boot 分区/目录需要足够大以容纳这些文件。


Dav*_*man 3

shutdown -rF now
Run Code Online (Sandbox Code Playgroud)

应在重新启动时强制对 /etc/fstab 中的所有磁盘进行 fsck。链接:男人关机

或者,如果您希望每次重新启动时进行 fsck:

cd /
touch forcefsck
reboot
Run Code Online (Sandbox Code Playgroud)