Ошибка «Файловая система только для чтения» при закрытии вкладки и случайном закрытии окна терминала

28

Сначала просто странность с командой cd. Если я наберу cd, затем пробел, а затем нажмите, Tabчтобы просмотреть доступные каталоги, я получаю это сообщение об ошибке:

bash: не может создать временный файл для here-документа: файловая система только для чтения

Более проблемной проблемой было случайное закрытие окна терминала. Это произошло во время тестирования cdстранности, а также в то время, когда ssh'd на другом сервере делал простые вещи вроде того git statusи такого. [Edit] Кажется, что если я нажму Enter точно 31 раз, это вызовет автоматическое закрытие окна терминала (теперь проверено 3 раза).

Недавно я обновился с 12.04 до 14.04 в конце прошлой недели, и такое поведение не происходило весь день, когда я использовал его после обновления. Это первый раз, когда что-либо предпринималось на этом компьютере с того дня.

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

Takamuffin
источник
Просто дружеское напоминание о том, чтобы сделать заголовок вопроса более наглядным, что помогает получить более качественные ответы: «странное поведение терминала» не очень наглядно.
Томасруттер
Я признателен за это.
Такамуфин
Чтобы лучше диагностировать вашу проблему, можете ли вы сказать мне, если вы используете разделы по умолчанию, которые настроил Ubuntu, используете ли вы полное шифрование диска или LVM, и сделали ли вы что-нибудь с вашим fstab? Какой вывод mountкоманды?
Томасруттер
выход для монтирования: gist.github.com/anonymous/74dc62ccd5602d1e9742
Такамуфин,
Спасибо за предоставленную информацию - похоже, нет проблем с настройкой монтирования и никаких проблем во время монтирования, но, возможно, с тех пор возникли ошибки с монтированием / (root)? В remount-roуказывает , что корневой раздел будет перемонтируется , как только для чтения в случае некоторых ошибок файловой системы. Было бы неплохо сделать fsck из recovery или Live CD.
Томасруттер

Ответы:

16

Я перезагрузился в режиме восстановления и следовал инструкциям системы. Я побежал fsckна /dev/sda2, и это устранило проблему.

Стифун Дедарус
источник
13

Read-only file systemОшибка является главным ключом здесь. Я предполагаю, что ваш домашний каталог, где bash пытается сохранить историю команд и т. Д., Находится внутри раздела только для чтения.

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

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

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

Вы можете попробовать перезагрузить компьютер и проверить диск из меню восстановления. Нажмите и удерживайте Shift при загрузке компьютера сразу после исчезновения экрана BIOS и до появления логотипа Ubuntu.

thomasrutter
источник
1
Была такая же проблема. Перезагрузка сработала. Спасибо.
whitehat
4

Именно эта проблема произошла со мной тоже.

Это происходит с перерывами.

Поэтому мне, наконец, надоест и решил переустановить ОС - Ubuntu-GNOME 14.04 (чистая).

Это исправлено! По крайней мере, в течение нескольких дней .. Тогда точно такая же проблема возникла снова ...

Так что я пошел в Фрай и получил новый жесткий диск (Seagate).

Пока все хорошо (6 месяцев и считая).

примечание стороны: сток hdd был Toshiba

phtn458
источник
Добро пожаловать в Спросите Ubuntu. Поскольку это неправильный ответ на вопрос, удалите его.
Архисман Паниграхи
2
Это мой ответ. Каков твой ответ?
phtn458
2
Я хотел сказать, что переустановка ОС или покупка нового жесткого диска не является правильным решением. Вы можете комментировать другие посты, и вы сможете комментировать, когда у вас будет достаточно репутации (15).
Архиепископ Паниграхи
10
@ArchismanPanigrahi "диск плох, получи новый" - это ответ.
Сет
1
Вау. Поэтому все те, кто проголосовал против, пошли и купили новый жесткий диск (?)
Паван
2

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

Что касается 31 строки, это связано gnome-terminalс внутренними.

Он хранит определенное количество строк в памяти, в так называемом «кольце». Остальные строки, которые выходят из этого кольца, помещаются в «поток». В более старых версиях gnome-терминала поток в значительной степени записывался непосредственно в файл /tmp, в более новых версиях буферизация, сжатие и шифрование перед его записью. (Я не могу вспомнить, неважно, открыт ли файл under, /tmpкогда первый поток данных записывается в поток, или когда поток впервые пытается выполнить запись /tmp; это незначительная деталь реализации.)

Размер кольца всегда равен степени двух (каждый слот содержит 1 строку терминала; кроме 1 слота не используется по техническим причинам) и удваивается каждый раз, когда это требуется из-за роста высоты терминала ( но никогда не сжимается). Например, с высотой по умолчанию в 24 строки кольцо содержит последние 31 строку выходных данных, остальная часть отправляется в поток (в конечном итоге в /tmp). Если вы увеличите высоту окна, скажем, до 40 строк, кольцо в памяти увеличится, чтобы вместить не более 63 записей одновременно.

То, что вы испытываете, это то, что gnome-terminalпытается открыть файл /tmpдля сохранения потока и завершает работу из-за непредвиденной ошибки здесь. Попробуйте с более высоким окном, чем по умолчанию; он потерпит крах после нажатия Enter 63 (или, может быть, 127) раз.

Это, как говорится, /tmpдолжно быть исправлено, чтобы быть доступным для записи (с разрешения 1777).

Эгмонт
источник
1

Моя проблема заключалась в том, что процесс работал со 100% процессором и, вероятно, занимал все ресурсы диска (некоторый процесс резервного копирования: Ur-Backup).

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

(Raspberry Pi с Джесси 18/03/16)

YoniXw
источник