Как исправить «sudo: невозможно открыть… Файловую систему только для чтения»?


137

Название может быть не таким описательным, как хотелось бы, но не могло придумать лучшего.

Файловая система моего сервера перешла в режим только для чтения. И я не понимаю, почему это так и как это решить.

Я могу подключиться к серверу по SSH и, например, при попытке запустить apache2 получаю следующее:

username@srv1:~$ sudo service apache2 start
[sudo] password for username:
sudo: unable to open /var/lib/sudo/username/1: Read-only file system
 * Starting web server apache2                                                                                                                                                                                                               (30)Read-only file system: apache2: could not open error log file /var/log/apache2/error.log.
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.

Когда я пытаюсь перезапустить сервер, я получаю:

username@srv1:~$ sudo shutdown -r now
[sudo] password for username:
sudo: unable to open /var/lib/sudo/username/1: Read-only file system

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

Я надеюсь, что кто-то может указать мне правильное направление для решения этой проблемы.


Я рекомендую @John изменить ответ на последний опубликованный ответ Bibhas, так как он действительно работает там, где другие ответы вообще не помогают.
Джошуа Робисон


Все, этот вопрос для сервера, а не ПК. Если у вас есть эта проблема на вашем компьютере с двойной загрузкой, пожалуйста, проверьте The **quick start** option can be found in **power options** in the control panel of Windows. У меня та же проблема с Ubuntu на AWS
vanduc1102

Ответы:


66

Файловая система обычно переходит в режим «только для чтения» во время работы системы, если возникает проблема с согласованностью файловой системы. Это указано fstabкак errors=remount-roи будет происходить при сбое доступа FS или при экстренном восстановлении только для чтения через Alt+ SysRq+ U. Вы можете запустить:

sudo fsck -Af -M

провести проверку всех файловых систем. Как говорится в одном из других ответов, рассмотрение dmesgтакже очень полезно.

Изменить: не забудьте -Mв командной строке.

ПРИМЕЧАНИЕ: как упомянуто Бибхасом в его ответе : если fsckзастревает после его версии баннер:

$ sudo fsck -Af -M
fsck from util-linux 2.20.1

Вы можете попробовать использовать fsck для EXT4

$ sudo fsck.ext4 -f /dev/sda1

При условии, что рассматриваемый раздел /dev/sda1был файловой системой ext4.


2
Я думаю, что вы не должны принудительно проверять файловую систему на других установленных файловых системах. Это может повредить ваши данные. Добавьте -Mопцию, чтобы пропустить смонтированные файловые системы. ( -M Do not check mounted filesystems and return an exit code of 0 for mounted filesystems.из FSCK (8))
gertvdijk

35
Это не помогает, я просто получаю ту же ошибку при попытке запустить эту команду. sudo: unable to open /var/lib/sudo/kuplack/1: Read-only file system fsck from util-linux 2.20.1
Марк Крамер

1
Но ... -M пропустит смонтированные файловые системы, включая / dev / sda1 (или то, что когда-либо смонтированный диск включает / var / lib / sudo / ...). @MarkKramer: я настоятельно рекомендую всегда устанавливать пароль root при установке linux, с sudo su; passwd. Тогда вы можете использовать su -c fsck -Af -M.
naught101

1
Да, для меня мне нужно было удалить -M, так как / dev / sda1 был смонтирован, и чтобы сделать вашу жизнь проще, добавьте -Afy (Y означает, что ответьте да на все запросы) ... Я играю быстро и свободно с виртуальными машинами, поэтому я ' Обычно с этим типом решения все в порядке, но если это аппаратное обеспечение без резервной копии, может потребоваться другой подход и прочитать dmesg.
FreeSoftwareServers

2
@DarshanChaudhary Этот -Mфлаг заставляет fsck пропускать смонтированные файловые системы. Смотрите fsck (8)справочную страницу.
ζ--

45

Вот команда, которая решила мою проблему:

mount -o remount /

лучше, чем перезагрузка или sudo fsck -Af


21
Не лучше, если ОС сделала ваш диск доступным только для чтения, чтобы предотвратить возможное повреждение.
Дрю Ноакс

5
Не только это - только root сможет перемонтировать файловую систему и sudoне будет работать, если файловая система доступна только для чтения.
Натан Осман

11
Не помогает, я просто получаю то же сообщение:sudo: unable to open /var/lib/sudo/kuplack/1: Read-only file system mount: cannot remount block device /dev/sda2 read-write, is write-protected
Марк Крамер

3
о да, это сработало.
RT

2
mount: cannot remount /dev/sda8 read-write, is write-protected
Ришабх Аграри

42

Ответ от hexafraction не работал для меня. Каждый раз, когда я пытался выполнить sudo fsck -Af -Mэто просто показывало

$ sudo fsck -Af -M
fsck from util-linux 2.20.1

и ничего больше. Нет ошибок или чего-то еще. Для меня загрузка живого диска и выполнение этого работали -

sudo fsck.ext4 -f /dev/sda1

При условии, что рассматриваемый раздел /dev/sda1был файловой системой ext4.


4
Спасибо за этот ответ. Это единственное, что действительно сработало
Джошуа Робисон

5
-M означает не делать смонтированные файловые системы. Ваша файловая система / dev / sda1 была смонтирована (я думаю, в /). Так что это было пропущено.
Далоре

3
sudo fsck.ext4 -f /dev/sda1работает. Еще нужно перезагрузить.
efkan

1
У меня это сработало на Ubuntu 16.04.3 Спасибо
Росарио Перейра Фернандес

13

Попробуйте запустить, dmesg | grep "EXT4-fs error"чтобы увидеть, есть ли у вас какие-либо проблемы, связанные с самой файловой системой / системой журналирования. Тогда я бы порекомендовал вам перезагрузить вашу систему. Кроме того, sudo fsck -Afответ от ObsessiveSSOℲ не повредит.


10

Если вы хотите, чтобы ваша корневая файловая система перемонтировалась как rw, вы можете сделать следующее.

mount -o remount,rw /

это решило мою проблему, я использую облако Гетцнера с ssd
160 ГБ,

9

Обратите внимание, что иногда это может быть вызвано тем, что компьютер забыл системное время - проверка диска не удалась, потому что даты в журнале находятся в БУДУЩЕМ!

Установка времени BIOS (и проверка батареи BIOS) устранила эту проблему для меня без необходимости восстановления диска.


Добро пожаловать в Спросите Ubuntu! Я рекомендую отредактировать этот ответ, чтобы расширить его конкретными сведениями о том, как это сделать. (См. Также Как написать хороший ответ? Для общего совета о том, какие ответы считаются наиболее ценными в Ask Ubuntu.)
Дэвид Фёрстер

Я вполне уверен, что это происходит со мной прямо сейчас, учитывая, что мой компьютер сказал мне, что он забыл свое время сегодня утром.
номен

2

Обычно linux переводит ваши файловые системы только на чтение при возникновении ошибок, особенно ошибок на диске или самой файловой системе, таких как, например, неправильная запись в журнале.

Вам лучше проверить на dmesgналичие ошибок, связанных с диском.

В Google много говорят об этом, и вы можете выбрать те из них, которые ближе к вашей конфигурации, но dmesgобычно достаточно взглянуть на них.


Что следует искать в / grepдля в dmesgвыходе?
изоморфизм

К сожалению, если вы решили зашифровать вашу домашнюю папку, dmesgобязательно будет полно бесполезных ошибок от ecryptfs.
Натан Осман

2

Для меня перезагрузка системы, решающая эту проблему

sudo reboot

как он упомянул об этом.


2

(Удален предыдущий ответ)

Изменить: Основная проблема была на стороне окон. После обновления моей Windows 10 автоматически включилась опция «Быстрый старт». После отключения этой опции и повторного запуска машины проблема исчезла. Windows 10 доставляла мне сильную головную боль в течение нескольких дней :(

Параметр «Быстрый запуск» можно найти в разделе «Параметры питания» на панели управления. Отключи это !!! :)


Только тот, который работал. За счет скорости запуска.
НельсонГон

2

Если вы выполняете двойную загрузку компьютера с Ubuntu и Windows вместе, и эта проблема возникает из-за того, что Windows меняет файловую систему, в этом случае это может помочь. Попробуйте отключить быстрый запуск

Панель управления> Оборудование и звуки> Параметры электропитания> (слева) Выберите, что происходит при закрытии крышки> Изменить параметры, которые в данный момент недоступны> Снимите флажок «Включить быстрый запуск»

Теперь загрузка в Ubuntu решит проблему. Надеюсь это поможет!

https://youtu.be/KJ-0KPZhAFo


1

Если вы оказались в ситуации, когда вы не можете использовать live disc, например, вы удаленно подключаетесь к вашей системе через ssh, вы все равно можете использовать команду, на которую ответил @Bibhas:

sudo fsck.ext4 -f /current/filesystem/mount/point

Он предложит исправить ошибку вашей файловой системы. Вам также необходимо перезагрузить систему удаленно.


0

В моем случае это было до стабилизации RAID 1 после первоначальной установки. У меня есть / boot и / на s / w RAID1. Оставив систему на ночь и перезагрузившись, все работает нормально. Ричард


0

Проверьте, нет ли у вас неисправного оборудования. Я получил эту ошибку из-за ослабления жесткого диска. Запустил mount -o remount, rw / и все заработало нормально.


-1

Это неправильно настроенные параметры загрузки (попробуйте подключить /как ext2), а не физическую ошибку диска или раздела.

dmesg | grep "error" дал мне:

ext3-fs (sda2): error: couldn't mount because of unsupported optional features (240) 
ext2-fs (sda1): error: couldn't mount because of unsupported optional features (240) 
ext4-fs (sda2): mounted file system with ordered data mode: opts: (null)

Он монтируется /только для чтения благодаря error=mount-roдирективе fstab .


-1

Я использую версию 18.04 LTS, и я сначала размонтировал поврежденные диски, а затем вошел в приложение «Диски», выполнив поиск в тире. Оттуда я выбрал диск, который был поврежден. Убедитесь, что он отключен, иначе он не будет работать. В меню опций (маленькая форма шестерни) и нажали «восстановить файловую систему». Boom! Работал как шарм.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.