#Что означает ошибка
bash: cannot create file: Read-only file system
Файловая система перешла в режим только для чтения. Ядро Linux делает это автоматически при обнаружении ошибок (параметр монтирования errors=remount-ro), чтобы не разрушить данные. Поэтому появление этого сообщения — не просто неудобство, а сигнал: возможны ошибки ФС или проблемы с диском. Сначала сохраните важные данные, затем диагностируйте.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Ошибки файловой системыФС повреждена после сбоя питания. | В dmesg «EXT4-fs error». | По journalctl -k -b и типу ФС определите, есть ли ошибки ext4/XFS/Btrfs. Сначала сохраните данные; проверку и исправление выбирайте по типу ФС и только при выполнении её условий. |
Раздел смонтирован как roВ fstab или при монтировании указан ro. | mount показывает ro. | Сверьте findmnt -no SOURCE,FSTYPE,OPTIONS / и настройки монтирования. Если раздел намеренно ro, не принуждайте запись; если причина в ошибках, сначала диагностируйте накопитель. |
| Сбой дискаДиск с ошибками чтения/записи. | smartctl показывает проблемы. | Проверьте SMART и ошибки ввода-вывода в журнале, скопируйте важные файлы, при ухудшении состояния замените накопитель; не запускайте исправляющий fsck на неисправном диске без копии. |
| Образ или носитель только для чтенияLive-образ, ISO, защищённая SD. | Раздел — squashfs/iso9660. | Проверьте, является ли носитель ISO, squashfs, CD-ROM либо имеет физический переключатель защиты; такие носители нельзя сделать записываемыми командой remount. |
#Пошаговое решение
- Определите затронутый разделОткройте терминал Linux (обычно Ctrl+Alt+T) и выполните
findmnt -T /путь/к/файлу -o TARGET,SOURCE,FSTYPE,OPTIONS, подставив реальный путь к файлу, при записи которого возникает ошибка. Если путь неизвестен, посмотритеfindmnt /для корневой файловой системы. В выводе найдитеroсреди параметров — это режим только для чтения;rwозначает запись разрешена на уровне монтирования, и тогда проверьте права. Запишите устройство SOURCE и тип FSTYPE. Не запускайте fsck и перемонтирование до сохранения важных данных. - Посмотрите сообщения ядраВ терминале Linux выполните
journalctl -k -b -p err --no-pager -n 80(при наличии systemd) илиdmesg | tail -n 80. Найдите сообщения об I/O errors, EXT4-fs, Btrfs или конкретном драйвере перед первым отказом. Если есть аппаратные ошибки диска, остановите операции записи, сначала сохраняйте файлы на другой накопитель. - Проверьте SMARTСначала сохраните важные данные. Посмотрите использование раздела командой
df -hи сообщения об ошибках диска вdmesgилиjournalctl -k. Для диагностики SMART используйтеsmartctlдля нужного устройства; не выполняйте исправление файловой системы на смонтированном разделе без понимания последствий. - Скопируйте важные данныеДо правки разделов, загрузчика или файловой системы подключите отдельный носитель либо используйте действующую резервную копию. В Live-среде определите разделы по
lsblk -f, смонтируйте исходный раздел только для чтения и скопируйте документы на другой диск через графический файловый менеджер илиrsyncс проверенными путями. Откройте несколько копий для проверки. При I/O errors прекратите обычные исправления и сначала спасайте данные. - Попробуйте перемонтироватьДо действий проверьте целевой том с помощью
findmntиlsblk -f. Командаsudo mount -aможет смонтировать все записи /etc/fstab и при ошибочной настройке повлиять на систему; предпочтите сначалаsudo findmnt --verify --verboseи исправьте только указанную строку. Не применяйтеmount -o remount,rw /при ошибках ввода‑вывода или аппаратном сбое диска — сохраните данные и проверьте носитель. - Проверьте ФССначала определите точный раздел по
lsblk -fи проверьте, не смонтирован ли он (findmnt). Не запускайте исправляющийfsckна работающем системном разделе или на смонтированном разделе с записью: сначала сделайте резервную копию и загрузитесь с Live-носителя. Запустите диагностику подходящим для конкретной ФС инструментом; для Btrfs, XFS и ext4 используются разные средства. При I/O errors отдайте приоритет спасению данных. - Проверьте fstabСначала сохраните копию конфигурации:
sudo cp -a /etc/fstab /etc/fstab.bak. Затем сравнитеlsblk -fиsudo blkidс UUID вcat /etc/fstab; для записи о конкретном диске выясните, существует ли такой UUID. Исправляйте только однозначно ошибочную строку через редактор с правами администратора. Перед перезагрузкой проверьте синтаксисsudo findmnt --verify --verbose; для необязательных внешних томов рассмотритеnofail. - Замените дискЕсли ошибки ввода-вывода или SMART показывают неисправность накопителя, не пытайтесь многократно перемонтировать его в
rwи не запускайте исправление на работающем разделе. Сначала скопируйте доступные данные на другой физический диск; при ценных данных и нестабильном чтении обратитесь в специализированную лабораторию. Замена диска зависит от конструкции компьютера и гарантийных условий; на рабочем ПК поручите её сервису. После замены восстановите ОС и файлы из проверенной резервной копии. - Проверьте, не нужен ли другой инструмент вместо fsckПо
lsblk -fопределите тип файловой системы повреждённого тома. Командаfsck.ext4предназначена для ext2/ext3/ext4, но не для XFS и не для Btrfs. Для XFS проверкаxfs_repair -nтребует отдельного подхода и размонтирования; для Btrfs используйте предусмотренную его документацией диагностику. Если тип не определён — не запускайте исправляющие команды. Сначала сохраните данные и зафиксируйте вывод журнала. - Не перемонтировать аварийный раздел на запись, пока не исключена неисправность накопителяLinux · Терминал (Bash)КомандаНе перемонтировать аварийный раздел на запись, пока не исключена неисправность накопителя. Запуск: терминал Linux с правами, указанными в команде. Сначала проверьте имя устройства и целевой путь.
findmnt -no SOURCE,FSTYPE,OPTIONS /
Внешний NTFS-диск, ранее подключённый к Windows, может открываться в Linux только для чтения из-за незавершённого завершения работы Windows или повреждённого журнала NTFS. Откройте Windows, выполните полное завершение работы и штатную проверку диска (chkdsk для точно определённого тома) после резервного копирования. ntfsfix в Linux не заменяет полноценную проверку Windows; не вводите команды с условным /dev/sdX1, пока не установлено точное устройство через lsblk -f. Для флешек и SD-карт проверьте механический переключатель защиты записи. В виртуальных машинах также проверьте свободное место на физическом хосте.