Я использую файл тома TrueCrypt с синхронизацией в Dropbox. Я заметил, что dropbox синхронизируется только при размонтировании файла тома, поэтому я думаю, что TrueCrypt обновляет файл только тогда, когда он размонтирован. Я отключаю громкость только когда покидаю свой компьютер, поэтому было бы плохо, если бы однажды мой компьютер внезапно выключился по каким-то неожиданным причинам, я, вероятно, потерял бы все файлы прогресса.
Итак, мне интересно, могу ли я обновлять файл тома всякий раз, когда в томе что-то изменяется, тогда файл тома всегда будет обновляться до последней версии?
1 ответ
Это, вероятно, не то поведение, которого вы легко можете достичь, но может быть взлом.
Когда файл открывается для записи, и в него записываются данные, в конечном итоге блокировка записи для файла снимается. В это время метаданные файла, такие как Дата изменения, обновляются.
Когда файлы создаются, удаляются, переименовываются или в них сохраняются изменения, запускается событие ОС , подробно описывающее тип изменения и каталог, на который оно повлияло. Такие программы, как Dropbox Sync, устанавливают "наблюдатели" в определенных каталогах, поэтому они уведомляются, когда что-то меняется. Синхронизация замечает изменение и запускает его процедуру. Изменение размера не будет обнаружено, поскольку том имеет статический размер. Важный вывод заключается в том, что только когда изменение файла завершено, оно запускает событие каталога, которое заметит синхронизация.
При подключении тома Truecrypt на томе устанавливается блокировка чтения / записи , если только он не подключен только для чтения. Эта блокировка сохраняется до тех пор, пока файл тома не будет отключен. После подключения тома ваш компьютер может получить доступ к файлу на томе, используя собственную файловую систему томов, и открыть его для записи. Когда этот файл сохраняется или закрывается, метаданные обновляются и запускается событие каталога, но оно указывает на файл, который был изменен в соответствии с его подключенным расположением (например, z:\MyFiles\File1.doc). Dropbox никогда не слышал об этом каталоге и не ожидает изменений в нем. Однако блокировка записи самого файла тома не снята, поскольку том все еще подключен для доступа к записи, а его метаданные не изменились.
Обратите внимание, что даже если синхронизация будет отслеживать изменения в z:\MyFiles\ (расположение файла в томе), она расшифрует файл и сохранит его в виде открытого текста в Dropbox.
В вашем случае вы обновляете файловую систему в своем томе truecrypt, и данные записываются в двоичный двоичный объект внутри вашего файла тома. Это изменяет состояние файла, но делает это таким образом, чтобы не вызывать событие каталога. только когда файл демонтирован, блокировка записи снимается и запускается событие каталога.
Изучив проблему, у меня появилась теория, что вы можете обойти эту проблему, создав или отредактировав файл в синхронизированной папке. Я понятия не имею, сработает ли это, и это грязный хак, так что пользуйтесь на свое усмотрение.
Этот поток указывает, что Dropbox Sync использует rsync и rdiff для выполнения различий в папке и может обновлять двоичные двоичные объекты на месте, не заменяя весь файл. Это означает, что в теории, если событие Directory было запущено во время монтирования тома, изменения, внесенные после монтирования, будут загружены.
Однако этот подход опасен, поскольку может происходить неполное сохранение, что может привести к синхронизации усеченных или поврежденных данных. Кэширование записи на диск на внутреннем томе может затруднить определение момента полной записи данных на диск. Это одна из причин, почему ожидание размонтирования - очень хорошая идея, поскольку размонтирование немедленно очищает кэш записи. Даже если кэш дисков отключен, существует опасность того, что внутренняя файловая система не находится в стабильном состоянии покоя в том случае, когда вычисляется различие, что может повредить ваш том на конце Dropbox.