我最近執行了從一個 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
模式掛載檔案系統。