Потеря данных при установке в петлю файла на съемном 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 

  • ADB не признает Samsung GT-I9000
  • Сценарий Bash функционирует должным образом после запуска GUI, но работает по-разному при вызове из Autostart
  • PXE USB BOOT Debian
  • PPP через USB от RJ11
  • (ubuntu 16.04) Как обнаружить независимое от устройства событие вставки USB
  • Как проверить наличие USB-устройства без lsusb?
  • Автоматическое резервное копирование USB-накопителя на компьютер
  • Установка Debian на USB
  • 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 . Отключите свои устройства, прежде чем отключать их.

    Interesting Posts

    Почти не работает команда – ошибка перемещения: символ __getrlimit, версия GLIBC_PRIVATE не определена в libc.so.6

    Как я могу коснуться каждого файла в каталоге?

    Как настроить Ethernet?

    Как создать раздел MBR / dev / nodes FreeBSD для монтажа

    Безопасная папка удаления CentOS 7

    Как извлечь один файл из двух путей в unix?

    SELinux domain_auto_trans ()

    hdparm: SECURITY_SET_PASS: Ошибка ввода / вывода

    Поиск файлов в определенный период и их копирование в другой каталог

    Как перенаправить вывод из команды find (использующей grep) в файл журнала?

    Недокументированная –read-environment в ifup / ifdown / ifquery

    Как разделить FHS только для чтения и читать / писать каталоги на двух дисках с помощью Linux / systemd, без разбиения диска raed / write?

    Как интерактивно удалить все каталоги, соответствующие заданным критериям?

    Почему ядро ​​отбрасывает пакеты?

    сортировка (разность между опцией по умолчанию и числовой опцией -n)

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