只读根文件系统

只读根文件系统

不知何故,我的 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 update。我有很多这样的错误:

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 / 安全吗?

答案1

大多数 Linux 文件系统的默认行为是保护您的数据。当内核检测到存储子系统中的错误时,它将使文件系统变为只读以防止(进一步)数据损坏。

errors={continue|remount-ro|panic}您可以使用系统手册 ( ) 中记录的安装选项对此进行一些调整man mount

当您的根文件系统遇到此类错误时,大多数情况下该错误不会记录在您的日志文件中,因为它们现在也将是只读的。幸运的是,由于这是一个内核操作,因此原始错误消息首先记录在内存中的内核环形缓冲区中。除非已经从内存中刷新,否则您可以使用该命令显示环形缓冲区的内容dmesg。 。

大多数真实硬盘都支持聪明的您可以使用它smartctl来尝试诊断磁盘健康状况。

根据错误消息,您可以确定使用文件系统仍然是安全的,并返回其读写条件mount -o remount,rw /

但一般来说,磁盘错误是磁盘完全故障的先兆。现在是创建数据备份或确认现有备份状态的时候了。

相关内容