только для чтения корневая файловая система

25

Каким-то образом мой 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и другие. Не могу даже получить обновление. У меня много ошибок, как это:

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 /?

S1C
источник
2
Найдите строки "ext4" и "/ dev / mapper / debian-root" в /var/log/messages. Если ваша файловая система повреждена, вы должны увидеть это в ранних сообщениях ядра во время загрузки. Также попробуйте mount -o remount,rw /dev/mapper/debian-rootи сообщите нам, если он выдает ошибку.
lgeorget
также у вас есть оставшееся место, что дает вам командуdf
Kiwy
Можете ли вы загрузиться в «режиме восстановления» из Grub? Или отредактируйте параметры ядра grub, добавьте слово single в конец и загрузитесь. В итоге вы должны получить корневую оболочку, из которой вы можете запускать различные инструменты для проверки и восстановления вашего диска.
garethTheRed
Сброс «машины ВМ» решил мою проблему (случай - Ubuntu работал на Virtual Box)
parasrish

Ответы:

29

Поведение по умолчанию для большинства файловых систем Linux - защита ваших данных. Когда ядро ​​обнаруживает ошибку в подсистеме хранения, оно делает файловую систему доступной только для чтения, чтобы предотвратить (дальнейшее) повреждение данных.

Вы можете настроить это с помощью опции монтирования, errors={continue|remount-ro|panic}которая описана в системном руководстве ( man mount).

Когда ваша корневая файловая система сталкивается с такой ошибкой, большую часть времени ошибка не будет записываться в ваши лог-файлы, поскольку теперь они также будут доступны только для чтения. К счастью, поскольку это действие ядра, исходное сообщение об ошибке записывается сначала в память, в кольцевой буфер ядра. Если вы уже не извлечены из памяти, вы можете отобразить содержимое кольцевого буфера с помощью dmesgкоманды. ,

Большинство реальных жестких дисков поддерживают SMART, и вы можете использовать их smartctlдля диагностики состояния диска.

В зависимости от сообщений об ошибках вы можете решить, что по-прежнему безопасно использовать файловую систему и вернуть ее для чтения-записи с помощью mount -o remount,rw /

Тем не менее, в целом, ошибки на диске являются предвестником полного отказа диска. Сейчас самое время создать резервную копию ваших данных или подтвердить статус существующих резервных копий.

HBruijn
источник
да, у меня есть резервные данные. Couold, пожалуйста, посмотрите на мой вопрос еще раз? Я нашел что-то в dmesg и сделал небольшое редактирование в своем вопросе.
s1c
Обычно я ожидаю, что эти ошибки ext4 будут окружены ошибками, связанными с вводом-выводом или устройством, так как, скорее всего, проблема не в файловой системе как таковой, а в основном диске. См. Например, askubuntu.com/questions/141862/…
HBruijn
Еще один вопрос. Может ли это быть из-за смонтированных разделов (хранилище SAN / NAS)? Я определил их в моем файле fstab.
s1c
По моему опыту, только файловая система, которая пострадала от ошибок ввода-вывода, монтируется только для чтения, ни другие разделы, ни удаленные общие ресурсы не должны быть перемонтированы только для чтения.
HBruijn
Мы установили -o remount, rw /, а затем сделали chmod для файла, который работал для нас. когда закончите с изменениями, выполните монтирование -o remount, ro /, чтобы вернуть файловую систему в режим только для чтения.