Як виправити "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 змінити відповідь на останню опубліковану відповідь Бібхаса, оскільки вона насправді працює, коли інші відповіді насправді не корисні.
Джошуа Робісон


Усі, це питання стосується сервера, а не ПК. Якщо у вас є проблема на вашому ПК з подвійним завантаженням, перевірте 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 означає відповідь "так" на всі підказки) ... Я граю швидко і вільно з VM, тому я " м, як правило, добре з цим типом рішення, але якщо це нерозподілене обладнання, може бути інший підхід і читати 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
o так, цей працював.
RT

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

42

Відповідь гексафракцією для мене не спрацювала. Кожен раз, коли я намагався 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
-М означає не робити змонтованих файлових систем. Ваша файлова система / dev / sda1 була встановлена ​​(я здогадуюсь у /). Так було пропущено.
dalore

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 /

це вирішило мою проблему, я використовую хмару hetzner з 160gb ssd, ніколи раніше такої помилки не було
Фатур Рохім

9

Зауважте, що іноді це може бути спричинено тим, що комп'ютер забуває системний час - перевірка диска не вдається, оскільки дати в журналі знаходяться у МАЙБУТНІ!

Встановлення часу BIOS (і перевірка батареї BIOS) вирішило цю проблему для мене, не потребуючи відновлення диска.


Ласкаво просимо до Ask Ubuntu! Рекомендую відредагувати цю відповідь, щоб розширити її конкретними деталями про те, як це зробити. (Дивіться також Як я можу написати гарну відповідь? Для загальних порад про те, які різновиди відповідей вважаються найціннішими на Ask Ubuntu.)
Девід Фоерстер,

Я впевнений, що це відбувається зі мною саме зараз, враховуючи, що мій комп'ютер сказав мені, що сьогодні вранці забув час.
номен

2

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

Ви краще перевірте наявність dmesgпомилок на диску.

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


Що потрібно дивитись на / grepу dmesgвиході?
ізоморфізми

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

2

Для мене перезавантаження системи, що вирішує це питання

sudo reboot

як він про це згадував.


2

(Видалено попередню відповідь)

Редагувати: Основна проблема була на стороні Windows. Після оновлення моєї Windows 10 параметр «швидкого запуску» автоматично ввімкнувся. Якщо вимкнути цю опцію ще раз, а потім знову перезапустити машину, проблема пішла. Windows 10 днями сильно боліла :(

Параметр "швидкого запуску" можна знайти в розділі "Параметри живлення" на панелі управління. Вимкніть це !!! :)


Тільки той, що працював. Ціною швидкості запуску.
НельсонГон

2

Якщо ви подвійно завантажуєте свій апарат разом з Ubuntu та Windows разом, і ця проблема виникає, це тому, що Windows змінює файлову систему, і в цьому випадку це може зробити трюк. Спробуйте відключити швидкий запуск

Панель керування> Обладнання та звуки> Параметри живлення> (зліва) Виберіть, що робить закриття кришки> Змінення налаштувань, які наразі недоступні> Скасувати «Увімкнути швидкий запуск»

Тепер завантаження в Ubuntu вирішить проблему. Сподіваюся, це допомагає!

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


1

Якщо ви опинилися в ситуаціях, коли не можна використовувати прямий диск, наприклад, ви віддалено ssh у свою систему, ви все одно можете скористатися командою, на яку @Bibhas відповів:

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

Він запропонує виправити помилку вашої файлової системи. Вам також потрібно перезавантажити систему віддалено.


0

У моєму випадку вона знизилася до рівня RAID 1, який стабілізувався після початкової установки. У мене / boot та / on s / w RAID1. Залишивши систему протягом ночі та перезавантажившись, все працює нормально. Річард


0

Перевірте, чи немає у вас несправних апаратних засобів. Я отримав цю помилку через пошкодження жорсткого диска. Ran mount - перерахунок, 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, і те, що я зробив, спершу я відключив свої пошкоджені диски, а потім зайшов у додаток “Диски”, відвідавши тире. Звідти я вибрав пошкоджений диск. Переконайтесь, що він відключений інакше він не працюватиме. У меню параметрів (маленька форма шестірні) та натисніть «відновити файлову систему». Бум! Працював як шарм.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.