我在托管设施中运行 Ubuntu 8.04 机器的机器上遇到文件系统问题。曾经的目录现在看起来像这样:
b--xr-SrwT 52 825452087 876163170 56, 97 2021-10-10 05:43 58
这是缓存数据,所以我不介意数据丢失,我只想修复文件系统。问题是,这是根文件系统,所以我无法卸载它来运行 fsck。
所以我的问题是:如何在根文件系统上运行 fsck 而不必一直开车到托管中心?
我在托管设施中运行 Ubuntu 8.04 机器的机器上遇到文件系统问题。曾经的目录现在看起来像这样:
b--xr-SrwT 52 825452087 876163170 56, 97 2021-10-10 05:43 58
这是缓存数据,所以我不介意数据丢失,我只想修复文件系统。问题是,这是根文件系统,所以我无法卸载它来运行 fsck。
所以我的问题是:如何在根文件系统上运行 fsck 而不必一直开车到托管中心?
在 debian 和 debian-derivatives(如 ubuntu)上编辑远程服务器上的 /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 分区/目录需要足够大以容纳这些文件。
应该在重新启动时强制对 /etc/fstab 中的所有磁盘进行 fsck。链接:人关机
或者,如果您想在每次重新启动时执行 fsck: