Я не уверен, что вы подразумеваете под этим:
Дает мне резервную копию, которая подходит для полного или частичного восстановления системы (исключая большинство программ обработки изображений, даже если они могут работать, пока система загружается через своего рода теневую копию voodoo)
Но я могу дать почти все остальное, что вы просили с помощью VShadow.exe (находится в Windows SDK) и strarc.exe. Strarc является открытым исходным кодом, хотя я никогда не удосужился найти его источник.
Вот рецепт:
- Создайте теневую копию, чтобы получить согласованное состояние. Для этого запустите
VShadow.exe -p volumename
где volumename
-тома - это том, который вы хотите сделать резервную копию. Примерами являются C:\
, C:\Mounts\D
(если это точка монтирования для тома) или \\?\Volume{edbed95e-7e8d-11d8-9d01-505054503030}
для постоянного имени тома. VShadow сделает свое дело, но в конце он выдаст вам строку с SNAPSHOT ID
. Возьмите GUID от этого.
- Присвойте букву диска снимку. Запустите
VShadow.exe -el=ShadowCopyId,UnusedDriveLetter:
где ShadowCopyId
- это идентификатор моментального снимка, полученный на последнем шаге. UnusedDriveLetter - это, конечно, неиспользуемая буква диска.
- Выполните резервное копирование. Запустите
strarc -cjd:UnusedDriveLetter:\ 1>MyBackup.strarc 2>MyBackup.err.txt
. UnusedDriveLetter
должен быть таким же, как на последнем шаге, так как это говорит strarc, с чего начать резервное копирование.
- Восстановите резервную копию. Запустите
strarc -xjd:Destination MyBackup.strarc
где Destination
очевиден.
strarc не сжимает свои файлы, поэтому, если вы хотите это сделать, передайте свои выходные данные в вашу любимую программу сжатия потоков, такую как bzip2 или gzip. Это опция -z
позволяет вам указать.
Одно из предостережений заключается в том, что Microsoft считает, что опция -p
VShadow для предоставления снимка доступна только для операционных систем серверного класса. Я обнаружил, что это на самом деле неправильно, поскольку мне удалось создать букву диска с параметром -p
в Windows 7 Enterprise. Это работало отлично.
Обратите внимание, что strarc использует API резервного копирования NT (и поддерживает очень длинные имена путей NT), но не включает SeBackupPrivilege. Это означает, что вы можете создавать резервные копии только тех вещей, к которым у вас есть доступ (и вы делаете, верно? Вы администратор, верно?). Вы можете заставить это с открытым исходным кодом ProcessHacker; или, так как это с открытым исходным кодом, вы можете добавить опцию, чтобы включить SeBackupPrivilege. Если вы делаете последнее, я призываю вас поделиться. :)
Рекомендации: