只讀根文件系統
不知何故,我的 Debian 只能在根文件系統中讀取。我不知道這怎麼會發生。
例如,當我在
/root
文件夾中並鍵入命令nano
,然後按Tab
列出該文件夾中可能的文件時,我收到以下消息:root@debian:~# nano -bash: cannot create temp file for here-document: Read-only file system
cd
當我鍵入cd /home
並按下Tab
以列出路徑時,命令也是如此,我有這個:root@debian:~# cd /home -bash: cannot create temp file for here-document: Read-only file system
我也有類似
apt
和其他軟體的問題。甚至不能 apt-get 更新。我有很多這樣的錯誤:Err http ://ftp.de.debian.org wheezy-updates/main Sources 406 Not Acceptable W: Not using locking for read only lock file /var/lib/apt/lists/lock W: Failed to fetch http ://ftp.de.debian.org/debian/dists/wheezy/Release rename failed, Read-only file system (/var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_Release -> /var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_Release). W: Failed to fetch http ://security.debian.org/dists/wheezy/updates/main/source/Sources 404 Not Found W: Failed to fetch http ://security.debian.org/dists/wheezy/updates/main/binary-amd64/Packages 404 Not Found W: Failed to fetch http ://ftp.de.debian.org/debian/dists/wheezy-updates/main/source/Sources 406 Not Acceptable E: Some index files failed to download. They have been ignored, or old ones used instead. W: Not using locking for read only lock file /var/lib/dpkg/lock
我的系統有很多問題。有可能解決這個問題嗎?我怎樣才能檢查發生了什麼?我應該在日誌中查找什麼?
我知道這可能是因為
/etc/fstab
文件中的行:/dev/mapper/debian-root / ext4 errors=remount-ro 0 1
但問題是什麼?我什麼也找不到,或者我不知道去哪裡找。
編輯:
我確實搜尋了消息日誌,發現只有這個:
kernel: [ 5.709326] EXT4-fs (dm-0): re-mounted. Opts: (null) kernel: [ 5.977131] EXT4-fs (dm-0): re-mounted. Opts: errors=remount-ro kernel: [ 7.174856] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
我想這是正確的,因為我在其他 debian 機器上有相同的條目。
我在 dmesg 中找到了一些東西(我削減了一些輸出,因為有很多標準的 ext4 東西)
root@gs3-svn:/# dmesg |grep ext4 EXT4-fs error (device dm-0) in ext4_reserve_inode_write:4507: Journal has aborted EXT4-fs error (device dm-0) in ext4_reserve_inode_write:4507: Journal has aborted EXT4-fs error (device dm-0) in ext4_dirty_inode:4634: Journal has aborted EXT4-fs error (device dm-0): ext4_discard_preallocations:3894: comm rsyslogd: Error loading buddy information for 1 EXT4-fs warning (device dm-0): ext4_end_bio:250: I/O error -5 writing to inode 133130 (offset 132726784 size 8192 starting block 159380) EXT4-fs error (device dm-0): ext4_journal_start_sb:327: Detected aborted journal
5 個錯誤和 1 個警告。有任何想法嗎?使用 mount -o remount,rw / 是否安全?
大多數 Linux 文件系統的預設行為是保護您的數據。當核心在儲存子系統中檢測到錯誤時,它將使文件系統只讀以防止(進一步)數據損壞。
errors={continue|remount-ro|panic}
您可以使用系統手冊 (man mount
)中記錄的掛載選項對此進行一些調整。當您的根文件系統遇到此類錯誤時,大多數情況下該錯誤不會記錄在您的日誌文件中,因為它們現在也是只讀的。幸運的是,由於這是一個核心操作,原始錯誤消息首先記錄在記憶體中,即核心環形緩衝區中。除非已經從記憶體中刷新,否則您可以使用
dmesg
命令顯示環形緩衝區的內容。.大多數真正的硬碟都支持SMART,您可以使用它
smartctl
來嘗試診斷磁碟健康狀況。根據錯誤消息,您可以決定使用文件系統仍然是安全的,並返回它的讀寫條件
mount -o remount,rw /
但一般來說,磁碟錯誤是磁碟完全故障的前兆。現在是創建數據備份或確認現有備份狀態的時候了。