Как исправить "sudo: Невозможно открыть... Файловая система только для чтения"?

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

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

Я могу подключиться к серверу по 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

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

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

20 ответов

Решение

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

sudo fsck -Af -M

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

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

Ответ от 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.

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

mount -o remount /

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

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

mount -o remount,rw /

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

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

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

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

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

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

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

Если у вас есть графический интерфейс пользователя, перейдите в дисковое приложение, выберите диск с проблемой, щелкните значок шестеренки и выберите параметр «Восстановить файловую систему». Менее чем за секунду проблема устранена.

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

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

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

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

sudo reboot

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

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

  1. Пуск> Power Settings
  2. нажмите на Additional power setting справа
  3. нажмите на choose what thepower buttons do налево
  4. часы на change settings that are currently unavailable
  5. снять отметку turn on fast-startup
  6. save changesа потом перезагрузитесь в убунту все будет нормально работать!

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

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

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

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

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

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

Похоже, что некоторые смонтированные файлы были повреждены, и в результате ядро ​​установило файловую систему на RO, чтобы предотвратить дальнейшее повреждение. Чтобы узнать, какая файловая система повреждена, мы могли бы запустить:

cat /proc/mounts | grep -i ro

Результат будет похож на следующий:

proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
/dev/sda1 / ext4 ro,relatime,data=ordered 0 0
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0

Одним из решений этой проблемы может быть перемонтирование поврежденной файловой системы.

У меня была эта проблема на моем компьютере более 1 года, и я перепробовал все, чтобы решить эту проблему. Внезапно Linux переходит в режим только для чтения. Если вы что-то редактируете, вы не можете сохранить и должны выполнить fsckкоманду и перезагрузите компьютер. Компьютер также очень медленный и все время зависает. Я удалил двойную загрузку и оставил только Ubuntu, обновил Ubuntu с версии 18.04 LTS до версии 20.04 LTS, и это не сработало. Решающее значение для решения проблемы имело использование dmesgкоманда. Опыт у меня не сложился, только эта команда. Функция этой команды - контролировать компьютер.

В моем случае проблема была связана с несовместимостью SSD с Ubuntu. Я использовал HDD, и после того, как я перешел на SSD, возникла проблема. Проблема была решена обновлением прошивки SSD, что было возможно только в Windowns с разделами, потому что Kingston не имеет программы для обновления прошивки через Linux. Я также установил Windowns с двойной загрузкой и Linux, сначала установив Windows на весь SSD, затем освободив место через Windowns и установив Ubuntu, но маловероятно, что это было решением проблемы.

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

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

Шаги

  1. Использоватьsudo dmesg --level=crit,errчтобы выяснить, на каком диске (/dev/sda3) возникла проблема.

Пример вывода

      [ 8696.776775] EXT4-fs error (device sda3): ext4_journal_check_start:83: comm ThreadPoolForeg: Detected aborted journal
[ 8696.986946] EXT4-fs (sda3): Remounting filesystem read-only
  1. Использоватьsudo blkid /dev/sda3чтобы получить UUID диска
      sudo blkid /dev/sda3
/dev/sda3: LABEL="home" UUID="7a9689e4-90d9-496f-b889-c4f0ee389798" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="home" PARTUUID="5472ae83-2084-4fa1-b1dc-0593d9519d17"

  1. Редактироватьsudo vi /etc/fstabи закомментируйте этот UUID, чтобы он не монтировался при загрузке.
      #UUID=7a9689e4-90d9-496f-b889-c4f0ee389798  /home  ext4  noatime,errors=remount-ro  0  0

Это необходимо, потому чтоfsckне работает, если диск смонтирован. К счастью, в моем случае диск смонтирован в /home. Я не уверен, что диск смонтирован в корень. Если это так, это может не сработать, и вам, возможно, придется использовать загрузочный компакт-диск или загрузочный USB-накопитель для выполнения следующих команд.

  1. sudo rebootи когда оно появится, бегиsudo fsck.ext4 -y -f /dev/sda3
  2. Раскомментируйте закомментированный диск из fstab (отмените шаг 3).

перезагрузитесь еще раз

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

Это неправильно настроенные параметры загрузки (попробуйте смонтировать / как 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)

Это установлено / только для чтения из-за fstab error=mount-ro директивы.

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

Другие вопросы по тегам