Linux установил на диске USB, данные могут быть потеряны во время завершения работы?

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

Поскольку я думал об установке Ubuntu на съемном диске (USB), я хотел бы знать, необходимо ли выполнить эту команду.

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

Действительно ли необходимо работать sync прежде, чем закрыться или перезапуск система?

Кто-либо объясняет больше об этом?

4
задан 7 January 2019 в 11:42

2 ответа

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

, Другими словами, нормальные завершения работы/перезагрузки в порядке. Существует, также что-то знает как halt состояние - куда машина все еще работает, но ОС имеет, прошел процесс завершения работы и оставил управление аппаратных средств. В таком случае, выключая машину также в порядке. То, что не в порядке, является аварийным питанием offs и завершениями работы.

7
ответ дан 1 December 2019 в 09:06

Нормальное завершение работы включает sync в конец, после того, как диски были размонтированы (или повторно смонтированы только для чтения, в случае корневой файловой системы). Обычно, это ничего не должно делать, поскольку файловые системы уже синхронизируются на umount, таким образом, данные должны были быть записаны во время "Размонтировавшихся файловых систем" этап.

, поскольку сетевые файловые системы могут взять произвольно долго для размонтирования, когда сервер недостижим, определенные init системы реализуют тайм-аут на umount, и потому что диски не могут быть размонтированы, если точки монтирования в них все еще смонтированы, это может вызвать каскадный отказ размонтировать файловые системы чисто, в этом случае могут все еще быть незаписанные данные, когда точка завершения работы достигнута. Заключительная синхронизация затем удостоверяется, что никакие данные не потеряны, даже если файловая система чисто не размонтирована. Проверка файловой системы и/или воспроизведение журнала (в зависимости от файловой системы) на следующей начальной загрузке должны очистить это затем.

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

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

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

1
ответ дан 1 December 2019 в 09:06

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

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