Создание снимка системы Linux

11

Я хочу сделать следующее - Сохранить текущее состояние моей ОС Linux (centOS6.5). Внесите некоторые изменения (точнее, введите ошибку и протестируйте службу, чтобы проверить, как она ведет себя при возникновении этого конкретного типа ошибки). Затем верните систему обратно в сохраненное состояние. Я не могу понять, как это сделать в системе Linux. У меня есть машина с centOS 6.5 с файловой системой ext4. Также это физический сервер, а не виртуальная машина.

Есть идеи или предложения?

Bruta
источник
Физический сервер или виртуальная машина?
Стив
1
Я рекомендую запускать вашу ОС на программном обеспечении для виртуализации, таком как VirtualBox. Это приятно поддерживает снимки.
yaegashi
Это физический сервер. Я должен сделать это на нескольких машинах (физических серверах) и не могу изменить конфигурацию для запуска моей ОС на программном обеспечении виртуализации.
bRuta
Обычно для поддержки системных снимков требуется дополнительный мета-слой, такой как виртуализация. Было бы очень трудно заставить физические серверы вести себя так, как если бы они находились под контролем со стороны прошивки и уровня загрузчика.
yaegashi

Ответы:

8

Я хотел бы сохранить это простым и клонировать это. Загрузите живую систему с USB (проще всего Ubuntu с флэш-накопителя USB, я нахожу), а затем выгрузите жесткий диск в другой раздел (или внешний жесткий диск и т. Д.), Например

dd if=/dev/sda1 bs=64M of=/mnt/my_mounted_backup_drive/backup-sda1

где вам нужно заменить /dev/sda1на ваш /раздел root ( ). Сделайте то же самое с другими разделами (например, один для /boot, /boot/efi, /home) , где это применимо.

Если вам нужно сэкономить место, вы можете сделать

dd if=/dev/sda1 bs=64M | gzip --fast | dd bs=32M of=/mnt/my_mounted_backup_drive/backup-sda1.gz

или, что сложнее, гораздо медленнее, но экономит еще несколько байтов,

mkdir -p /mnt/linux
mount -o ro /dev/sda1 /mnt/linux
cd /mnt/linux
tar cvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz .??* *

Затем вы можете восстановить наоборот, например,

mkdir -p /mnt/linux
mount /dev/sda1 /mnt/linux
cd /mnt/linux
tar xvJf /mnt/my_mounted_backup_drive/linux-backup.tar.xz

или

dd /mnt/my_mounted_backup_drive/backup-sda1.gz bs=32M | gzip --decompress | dd bs=64M of=/dev/sda1

(осторожно, когда вы пишете свои данные, это удаляет все /dev/sda1, так что сделайте это правильно с первого раза :-)

Ned64
источник
PS: Если вы ожидаете, что что-то пойдет не так, сделайте резервную копию таблицы разделов, например dd if=/dev/sda bs=64M count=2 of=/mnt/my_mounted_backup_drive/backup-sda. При восстановлении вы должны быть осторожны, чтобы не записывать слишком много блоков обратно на диск - не можете сказать, сколько их, не глядя на структуру вашего раздела. Восстановить до (не включая) блок, где начинается ваш первый раздел в соответствии с gdiskили fdisk.
Нед64
5

Вы можете использовать rsync для резервного копирования всей системы.

rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /path/to/backup/folder

В Arch Linux Wiki есть отличная статья об этом

Хьюго Родригес
источник
Это довольно коротко, чтобы быть лучшим вариантом для меня. Конечно, если у вас нет, rsyncвы можете использовать то, ddчто я использую для резервного копирования моих USB-дисков.
m3nda
3

Как насчет использования rsync или rsnapshot для резервного копирования локальной машины? Как только вы закончите тестирование, просто восстановите резервную копию.

http://rsnapshot.org/

http://www.mikerubel.org/computers/rsync_snapshots/

Точно так же вы можете использовать LVM:

http://www.tldp.org/HOWTO/LVM-HOWTO/snapshots_backup.html

ventsyv
источник
1

Вы можете использовать FSArchiver , который сохранит содержимое файловой системы в сжатый файл и восстановит файловую систему при извлечении данных.

Вот пример из документации :

fsarchiver savefs /mnt/backup/gentoo-rootfs.fsa /dev/sda1

Вы также можете использовать многопоточное сжатие, и восстановление выполняется просто:

fsarchiver restfs /mnt/backup/gentoo-rootfs.fsa id=0,dest=/dev/sda1
Пауло Алмейда
источник
-1

Чтобы вернуться в предыдущее состояние, вы можете смонтировать текущую файловую систему в новый каталог. Это монтирует файловую систему в новый корневой каталог, указанный следующей командой:

mount DIR DIR

Чтобы восстановить это состояние, измените корень файловой системы из каталога, указанного в команде mount.

umount DIR

user346623
источник