Использование разности, aka overlay, aka union, файловая система с возможностью фиксации

Я работаю на двух ПК, и я синхронизирую все свои файлы с моего основного ПК на флеш-память USB. На моем втором ПК я монтирую флэш-память USB по тому же пути, что и для работы с моими файлами, когда я был на моем основном ПК.

Теперь, ради производительности и срока службы флеш-памяти, мне нужно использовать любой тип разностей, например, наложение, aka union, файловую систему (например, unionfs или aufs), чтобы позволить мне использовать флэш-диск USB как только для чтения и записывать изменения в каталог temp и в конце позволяет мне сразу же записать изменения на USB-флешку.

  • CUPS libusbx-devel требуется ошибка при попытке создать чашки-1.7.1 из источника
  • Скопируйте раздел BTRFS на внешний раздел BTRFS на жестком диске, включая моментальные снимки
  • Чтение данных SIM через файловые менеджеры с использованием USB datamodem
  • Каков надлежащий способ установки внешних устройств на NixOS
  • Что может вызвать «кроссовер» между двумя веб-камерами USB2 при использовании движения?
  • udev GROUP и MODE для символической ссылки не действуют
  • Любая помощь? Любая надежда?

    Обновить:

    Спасибо за ваши ответы и комментарии. Меня интересует Linux, и мой вопрос: позволяет ли какая-либо из вышеперечисленных файловых систем записывать записи в более низкую файловую систему? Если да, то как?

  • Не удалось загрузить драйвер USB-клавиатуры на машине Debian
  • Чтение с USB-последовательного порта под Cygwin
  • Эквивалент Telnet для USB-устройств?
  • Как обеспечить файловую систему с включенным «atime»?
  • Как установить драйверы rtlwifi на установочный USB-диск Debian?
  • Непрерывный каталог резервных копий на USB-накопителе
  • 5 Solutions collect form web for “Использование разности, aka overlay, aka union, файловая система с возможностью фиксации”

    Существует новая цель dm, называемая «snapshot-merge».

    Если вы отформатируете флеш-память USB как физический том LVM, а затем найдите нужную файловую систему поверх логического тома, вы можете

    1. Активируйте группу томов, содержащую флеш-память USB и другой физический том LVM на локальном диске.
    2. Создайте снимок логического тома на локальном диске.
    3. Смонтируйте снимок, сделайте все, что хотите, и запустите его.
    4. Слейте снимок обратно в начало.

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


    При необходимости замените детали, заключенные в {скобки}.

     # Первоначальная настройка USB-накопителя.
     pvcreate / dev / {USB}
     vgcreate {сменный} / dev / {USB}
     lvcreate -n {base} -l 100% PVS {съемный} / dev / {USB}
     mkfs -t {fs} {...} / dev / mapper / {removeable} - {base}
    
     # Первоначальная настройка устройства для царапин.
     pvcreate / dev / {SCRATCH}
    
     # Установка устройства.
     vgextend {removeable} / dev / {SCRATCH}
     lvcreate -s -n {snap} -l 100% ORIGIN / dev / mapper / {removeable} - {base} / dev / {SCRATCH}
     mount -t {fs} -o {...} / dev / mapper / {removeable} - {snap} {MOUNTPOINT}
    
     # Отсоединение устройства.
     umount {MOUNTPOINT}
     lvconvert --merge / dev / mapper / {removeable} - {snap}
     vgreduce {съемный} / dev / {SCRATCH}
     vgchange -an {сменный}
    

    Неподтвержденный, но все команды LVM имеют manpages, чтобы вы могли понять, что отсюда. Возможно, вам понадобится вызов vgscan где-нибудь, если группа томов не будет автоматически обнаружена при подключении USB-накопителя.

    Это, по-видимому, используется для dm-userspace + cowd : по сути, вы должны установить цель DM (блочное устройство), состоящую из файла COW (copy-on-write) и блочного устройства, соответствующего вашему USB-накопителю, и использовать он для размещения файловой системы. Все обновления будут отправлены в файл COW; считывания, которые не находятся в файле COW, будут поданы с USB-накопителя; после того, как вы размонтируете файловую систему, объедините изменения из файла COW в USB-накопитель.

    К сожалению, это специфический Linux, и разработка, похоже, прекратилась в 2007 году.

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

    1. подключите USB-накопитель;
    2. обновить репозиторий исходного каталога, вытащив последние изменения с USB-накопителя;
    3. делай свои вещи;
    4. зафиксировать изменения в системе управления версиями и обновить репозиторий на USB-накопителе.

    Это только одна запись на USB-накопитель. (Хотя я согласен с тем, что говорили другие, что к тому моменту, когда USB-накопитель yoru изнашивается, вы, вероятно, купили еще один – более крупный).

    Я рекомендую использовать инструменты синхронизации файлов. Решение уровня файловой системы для вашей проблемы может оказаться невозможным. Проверьте унисон и кабель . Насколько я понимаю, у вас уже есть копия файлов на вашем основном компьютере. Вот рабочий процесс, который я использую:

    1. Работайте и меняйте файлы на PC_1. После того, как вы закончите синхронизацию с USB Stick.

    2. Подключите USB-накопитель к ПК_2 и синхронизируйте содержимое с ПК_2.

    3. Работайте и меняйте файлы на PC_2. После того, как вы закончите синхронизацию с USB Stick.

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

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

    Возможно, вы могли бы использовать функцию посева btrfs (указана в http://en.wikipedia.org/wiki/Btrfs#cite_ref-16 ) – для того, чтобы засеять f-файл чтения-записи с базой только для чтения.

    Тогда вы столкнетесь с проблемой синхронизации его со съемным хранилищем.

    Я не знаю о функции уровня lvconvert --merge похожей на lvconvert --merge ; поэтому вы можете использовать некоторые инструменты более высокого уровня (например, rsync ), чтобы объединить ваши изменения, но это было бы не так эффективно вычислительно, как поддержка уровня fs для этого.

    Кроме того, имеется команда btrfs subvolume find-new для помощи копирующим инструментам в поиске вещей, которые были изменены и их необходимо отправить обратно.

    (Не проверено на практике.)

    Я предполагаю, что это для ОС Unix, но на случай, если вас интересует решение на базе Windows, я использовал Microsoft Mesh, который является бесплатным инструментом для синхронизации различных файлов и папок в течение ряда компьютеры. Еще одна интересная функция – возможность доступа к этому «облачному» (их термину, а не моему) через веб-интерфейс. Это пригодится, когда вы находитесь на удаленном компьютере, который не синхронизирован, но вы хотите получить доступ к некоторым файлам или загрузить их.

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