我最近从一个 aws 实例向另一个 aws 实例执行了 rsync。这导致根文件系统进入只读模式。
我可以使用读写权限重新挂载文件系统,但重新启动系统后它将恢复为只读:
mount
...
/dev/xvda1 on / type xfs (ro,relatime,attr2,inode64,noquota)
...
sudo mount -o remount,rw /dev/xvda1
mount
...
/dev/xvda1 on / type xfs (rw,relatime,attr2,inode64,noquota)
...
重启
mount
...
/dev/xvda1 on / type xfs (ro,relatime,attr2,inode64,noquota)
...
这是一个 CentOS 实例。
找不到类似的帖子,但如果我漏掉了,请重定向我。任何帮助都非常感谢。
更新
journalctl
...
Jul 23 11:48:36 ip-xxx.compute.internal systemd-remount-fs[1773]: mount: can't find LABEL=root
Jul 23 11:48:36 ip-xxx.compute.internal systemd-remount-fs[1773]: /bin/mount for / exited with exit status 1.
Jul 23 11:48:36 ip-xxx.compute.internal systemd[1]: systemd-remount-fs.service: main process exited, code=exited, status=1/FAILURE
Jul 23 11:48:36 ip-xxx.compute.internal systemd[1]: Failed to start Remount Root and Kernel File Systems.
Jul 23 11:48:36 ip-xxx.compute.internal systemd[1]: Unit systemd-remount-fs.service entered failed state.
Jul 23 11:48:36 ip-xxx.compute.internal systemd[1]: systemd-remount-fs.service failed.
...
cat /etc/fstab | head -n 1
LABEL=root / xfs defaults,relatime 1 1
解决方案 请参阅 nKn 接受的答案。但是就我而言,我需要采取一些额外步骤:
由于这是根/启动文件系统,我需要将卷附加到另一个实例,然后重新标记文件系统,然后再重新附加到原始实例。这是在 AWS 中完成的,可以通过停止两个实例并转到卷、操作 > 附加卷 > 选择第二个实例来完成。
由于我的系统是 xfs,我需要使用:xfs_admin -L "root" /dev/sdb (https://docs.oracle.com/cd/E37670_01/E37355/html/ol_admin_xfs.html) 附加到第二个实例上。
答案1
问题似乎就在这里,正如您可能已经注意到的:
Jul 23 11:48:36 ip-xxx.compute.internal systemd-remount-fs[1773]: mount: can't find LABEL=root
在您的/etc/fstab
文件中,您尝试安装一个带标签的设备root
,但由于某种原因,该设备不再可用。可能是更新/升级删除了该标签(尽管这种情况并不常见)。要解决此问题,只需重新标记该设备即可。
您必须在文件系统的/dev
目录下找到该设备,然后运行:
e2label /dev/your-device root
此后,重新启动,它应该以rw
模式挂载文件系统。