USB Pendrive: копирование занимает около 3 минут, но размонтирование занимает очень много времени: от 10 до 12 минут

Я использую Ubuntu 17.10.

Я отформатировал USB-накопитель в NTFS для подготовки установщика USB для Windows7.

Я установил загрузочный флаг на этом флеш-накопителе и скопировал в него файлы.

РЕДАКТИРОВАТЬ 1: USB-флеш-накопитель автоматически устанавливается udev.

umount /dev/sdb1 занимает от 10 до 12 минут.

Вот параметры монтирования:

$ mount | grep sdb
/dev/sdb1 on /media/mansfeld/Win7_USB_Installer type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)

РЕДАКТИРОВАТЬ 2: Операция cp не является мгновенной, копирование файлов на USB-накопитель заняло 3 минуты.

РЕДАКТ. 3: Операция sync (выполненная сразу после cp) заняла 12 минут! Но тогда umount будет мгновенным.

Для FAT32 (с синхронизацией, также отключенной во время монтирования), я замечаю то же самое поведение.

Есть идеи, почему для отключения NTFS USB Pendrive требуется так много времени?

12
задан 26 March 2018 в 21:05

2 ответа

Вы, вероятно, страдаете от буферизации кеширования . Чтобы ускорить запись на USB-накопители (и жесткие диски в целом), Linux использует кеш файловой системы:

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

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

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

Таким образом, у вас есть три варианта после копирования больших или многих файлов на карту памяти:

  • umount и подождите 10 минут. для его завершения
  • синхронизация , подождите 10 минут для завершения, а затем umount (вернется почти сразу)
  • просто подождите 10 минут (возможно, немного больше) и ничего не делайте (или что-то не имеющее отношения к флешке) и затем проблема umount . Поскольку запись в кеш выполняется автоматически в фоновом режиме, umount также будет возвращаться почти сразу.
7
ответ дан 23 November 2019 в 07:37

Когда вы копируете файлы на свой флеш-накопитель, они не записываются на него напрямую. Синхронизация файловой системы происходит по команде размонтирования, фактические данные записываются, пока вы ждете размонтирования. Если вы выполните sync перед umount , umount будет мгновенным.

5
ответ дан 26 March 2018 в 21:05

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

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