Потеря данных при установке в петлю файла на съемном USB-накопителе

Если я подключу USB и изменю файлы и отключу его, я не потеряю данные. Однако, если я использую mount в файле на USB, я проиграю данные. Что с этим? Есть ли что-нибудь, что я могу сделать, чтобы предотвратить потерю данных? Странно, что я могу написать файл и вытащить свой usb вне потери данных, но при использовании mount я потеряю данные. Вот пример

 echo "Data Data Data" > /media/your-usb/data #unplug your usb. plug into another computer #you'll see you didn't lose any data #Create a file, put ext4 filesystem on it dd if=/dev/zero of='/media/your-usb/test.bin' count=100000; losetup /dev/loop0 /media/your-usb/test.bin mkfs.ext4 /dev/loop0 losetup -d /dev/loop0 #Mount FS mkdir m mount -o loop /media/your-usb/test.bin m echo Test > m/test umount m #No loss of data mount -o loop ./test.bin m echo Test2 > m/test2 #wait a moment. You'd think the data will flush #unplug your USB umount m #plug your USB mount -o loop ./test.bin m cat m/test2 #error test2 is not a file 

  • отключить порт USB в Linux
  • Сломанный считыватель карт. Dmesg получает спам
  • Разрешение отклонено для доступа пользователя к монтированию
  • Проблемы с драйверами USB-адаптера BackTrack USB
  • Где в Linux-источниках ядра можно найти список различных клавиатурных сканнодов?
  • Что может привести к изменению скорости порта USB?
  • Какой USB-слот 2.0 или 3.0? Откуда мне знать?
  • Предпочтительные точки монтирования для внутренних жестких дисков
  • Mimo 2G USB-монитор и дешевый компьютер (малина Pi?)
  • Как безопасно извлечь usb hardrive - udisks возвращает «detach failed: ..»
  • Как отлаживать принтеры с проблемами USB через CUPS?
  • Виртуальный терминал переключился при подключении USB-мыши к Linux
  • 2 Solutions collect form web for “Потеря данных при установке в петлю файла на съемном USB-накопителе”

    Когда Linux обнаруживает съемный диск, он достаточно умен, чтобы знать, что он должен часто очищать данные. Когда вы устанавливаете loopback, он не знает, что фоновое устройство является файлом, который можно удалить в любое время.

    Вы можете заставить систему не кэшировать записи, используя:

     mount -o loop,sync /media/your-usb/test.bin m 

    Это приведет к более низкой производительности, а также обратите внимание на это предупреждение о износе на странице man mount :

      sync All I/O to the filesystem should be done synchronously. In case of media with limited number of write cycles (eg some flash drives) "sync" may cause life-cycle shortening. 

    Альтернативой было бы, по крайней мере, выполнить sync перед удалением устройства, если вы не захотите, по какой-то причине, umount .

    Если я подключу USB и изменю файлы и отключу его, я не потеряю данные.

    Коррекция: вы еще не потеряли данные. Это вы заметили.

    Предположительно, вы, ваш дистрибутив или сторонник программы автомонтирования, которые вы используете, настроили съемные USB-устройства хранения данных, которые будут смонтированы с опцией sync , что немедленно выведет данные. Опция sync имеет то преимущество, что записывает все данные, чтобы она не терялась, если носитель данных внезапно выталкивается или система выходит из строя, но имеет много недостатков:

    • Хранилище Flash-типа будет изнашиваться раньше, потому что данные записываются в несколько байтов за раз, но память может быть обновлена ​​только путем записи довольно больших блоков каждый раз, поэтому каждый блок в конечном итоге переписывается много раз. Это может привести к быстрому сбою основных USB-накопителей.
    • Файловая система, которая не размонтирована правильно, будет отмечена как грязная. Вы не можете отличить файловую систему, которая была помечена как грязная, но содержит согласованные данные из той, которая была вытащена в середине записи и содержит несогласованные данные. Это не относится к файловым системам, таким как FAT, которые не имеют «грязного» индикатора.
    • Это медленнее – возможно, намного медленнее.

    Не используйте sync . Отключите свои устройства, прежде чем отключать их.

    Linux и Unix - лучшая ОС в мире.