Недавно я установил SSD в свою систему и перенес на него часть своей установки Linux. Чтобы быть уверенным, я хочу сделать резервную копию всей корневой файловой системы с помощью rsync (просто клон, без управления версиями, без инкрементального резервного копирования или чего-то еще), но у меня есть некоторые проблемы в голове.
- Моя файловая система распределена. /var и /tmp находятся на разных дисках.
- Я знаю, что некоторые корневые каталоги являются виртуальными, но нужно ли их исключить? (/proc, /dev и т. д.)
- Если я их исключил, нужно ли мне создавать фиктивные/пустые версии на резервном диске?
- Или есть какой-то простой инструмент для автоматизации этого процесса?
Вопрос в том, могу ли я просто использовать rsync с кучей ключей и исключений для резервного копирования работающей системы Linux или мне следует использовать какие-либо другие инструменты для этого?
Заранее спасибо.
PS: Я свободно владею Linux. Продвинутые/сложные методы не проблема.
решение1
Я знаю, что некоторые корневые каталоги являются виртуальными, но нужно ли мне их исключить? (/proc, /dev и т. д.) Если я их исключаю, нужно ли мне создавать фиктивные / пустые версии на резервном диске?
Да, вам придется их исключить.
В плане того, должны ли быть фиктивные версии - для того, чтобы ваши скрипты инициализации могли их смонтировать, эти каталоги должны существовать как пустые папки. Так что да - вам нужно будет включить заглушки или пустые каталоги.
Вопрос в том, могу ли я просто использовать rsync с кучей ключей и исключений для резервного копирования работающей системы Linux или мне следует использовать какие-либо другие инструменты для этого?
Тыможет, например, я часто запускаю резервное копирование с помощью rsync -av --delete /src /dst
; однако имейте в виду, чтоrsync вообще не обрабатывает блокировку/одновременный доступ. Вы получите всевозможные результаты, если будете писать в файлы, которые в данный момент используются.
Конечно, есть один способ обойти это. Предполагая, что в данный момент записи не происходят, вы можете выполнить:
/bin/mount -no remount,ro /dev/rootdevice
перед rsync, то:
/bin/mount -no remount,rw /dev/rootdevice
впоследствии (как root).
Если вы хотите делать резервные копии действительно работающей файловой системы, поддерживающей запись, вам нужно что-то, что может выполнять копирование при записи, напримерСнимки томов Linux.
решение2
Я бы сказал, используйте cpio для создания архива и скопируйте его. Я говорю cpio, потому что он используется для начальных ramdisk, поэтому он понимает виртуальные каталоги. Попробуйте
find / -depth -name | cpio -o >/path/archive.cpio
:)