Почему сделал выключение моей машины после того, как плохая 'комната' сохранила мои файлы?

Некоторые возможности:

  • Как предложенный Alan, плохая память частая причина проблем.
  • плохие источники питания могут также вызвать случайные замораживания и катастрофические отказы.
  • низкокачественная материнская плата. или из-за дрянного производства или из-за плохих/изворотливых частей (например, нестандартная или дешевая версия NIC, который утверждает, что был конкретным видом/моделью, но не является - драйвер Windows производителя, может компенсировать его несоответствия, но драйвер Linux, полагает, что это - устройство XYZ, потому что это - то, чем это утверждает, что было),
  • так же для плат расширения

Там какие-либо общие шаблоны к катастрофическим отказам? Например:

  • это происходит чаще, когда Вы делаете определенные вещи или запускаете конкретные программы (если так, каковы они?)
  • или после того, как Вы посетили определенные веб-сайты (например, плохо записали, что код JavaScript может пропустить память как решето),
  • или в определенное время суток (когда?)
  • или когда другое оборудование управляется поблизости (например, двигатель холодильника, включающий - хороший UPS может защитить от колебаний переходного напряжения).
31
13.04.2017, 15:36
2 ответа

Похоже, вы хорошо понимаете, что произошло.

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

Система кэширует все записи перед сбросом на диск. Есть несколько опций, которые управляют этим поведением, все они расположены в / proc / sys / vm / dirty _ * [ kernel doc ] . Если сброс явно не выполняется приложением через fsync () [ man 2 fsync ] , данные фиксируются, когда они либо достаточно стары, либо кэш записи заполнен.
Вышеупомянутое определение «данных» включает изменение записи каталога для удаления файла.

Что касается журнала, это одно из распространенных заблуждений относительно того, для чего журнал предназначен. Цель журнала не в том, чтобы гарантировать, что изменения будут воспроизведены или данные не потеряны. Цель журнала - предотвратить повреждение самой файловой системы, а не файлов в ней. Журнал просто содержит информацию о вносимых изменениях, а не (как правило) полные данные о самом изменении. Точные детали зависят от файловой системы и режима журнала. Для ext3 / 4 см. Параметр монтирования data в man 8 mount .


Чтобы ответить на ваш дополнительный вопрос о том, есть ли способ предотвратить отложенные записи без перезагрузки:

После быстрого чтения исходного кода ядра, похоже, вы можете использовать волшебный sysrq u команда ([ wikipedia ], [ документ ядра ]) для выполнения аварийной операции повторного монтирования только для чтения. Похоже, это немедленно перемонтирует все тома только для чтения без операции синхронизации.

Чтобы использовать это, просто нажмите Alt + SysRq + u .

22
27.01.2020, 19:38

От: https://www.kernel.org/doc/Documentation/filesystems/ext4.txt

commit = nrsec (*) Ext4 можно приказать синхронизировать все свои данные и метаданные. каждые nrsec секунд. Значение по умолчанию - 5 секунд. Это означает, что если вы потеряете свою силу, вы потеряете столько же, сколько последние 5 секунд работы (ваш файловая система не будет повреждена благодаря ведение журнала). Это значение по умолчанию (или любое низкое значение) снизит производительность, но это хорошо для безопасности данных. Установка его на 0 будет иметь тот же эффект, что и оставление это по умолчанию (5 секунд). Установка очень больших значений улучшит спектакль.

Также см. Здесь, как их очистить: Как очистить буферы и кеш в системе Linux?

Цитата из приведенной выше ссылки:

ПРИМЕЧАНИЕ: очистите память от ненужных вещей (Kernerl 2.6.16 или новее). Всегда обязательно сначала запускайте синхронизацию, чтобы выгружать полезные вещи на диск !!!

To free pagecache:

$ echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:

$ echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:

$ echo 3 > /proc/sys/vm/drop_caches
2
27.01.2020, 19:38

Теги

Похожие вопросы