Dd. Создание образа системного диска работающей системы Linux (Centos/AlmaLinux) в сетевое хранилище "налету": различия между версиями

Материал из Wiki
Перейти к навигации Перейти к поиску
 
Строка 23: Строка 23:


=== SMB ===
=== SMB ===
<code>mount -t cifs -o username=avc,password=Clever34 //192.168.10.249/Rutoken /mnt/tmp/</code>
<code>mount -t cifs -o username=avc,password=PassWord#1 //192.168.10.249/Rutoken /mnt/tmp/</code>


<code>dd if=/dev/mmcblk0 | gzip > /mnt/tmp/rvpn.img.gz</code>
<code>dd if=/dev/mmcblk0 | gzip > /mnt/tmp/rvpn.img.gz</code>

Текущая версия на 09:20, 25 декабря 2023

Cоздание образа

SSH

Логинимся в ssh linux

Необходимо остановить все критичные службы или сделать снэпшот LVM, чтобы сохранить консистентность содержимого диска

Создаем большой файл чтобы забить свободное место нулями и, таким образом, уменьшить объем создаваемого образа, создаем образ системного диска sda, сжатие gz, отправка на sftp (ssh) сервер

dd if=/dev/zero of=zero.small.file bs=1024 count=102400

cat /dev/zero > zero.file

sync

rm -rf zero.small.file

rm -rf zero.file

rpiAlertServerHostname=`hostname`;

Вариант 1. DD (при физических ошибках падает или пытается считать бесконечно)

dd if=/dev/sda | gzip -1 - | sshpass -p "PassWord#1" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@192.168.17.12 dd of=/mnt/raid/usersadm/img/dd/${rpiAlertServerHostname}/${rpiAlertServerHostname}_`date +%Y-%m-%d_%H-%M`.gz;

Вариант 2. DD_RESCUE (пропускает физические невосстановимые ошибки диска)

dd_rescue /dev/sda - | gzip -1 - | sshpass -p "PassWord#1" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@192.168.17.12 "dd of=/mnt/raid/usersadm/img/dd/${rpiAlertServerHostname}/${rpiAlertServerHostname}_`date +%Y-%m-%d_%H-%M`.gz";

SMB

mount -t cifs -o username=avc,password=PassWord#1 //192.168.10.249/Rutoken /mnt/tmp/

dd if=/dev/mmcblk0 | gzip > /mnt/tmp/rvpn.img.gz

Вариант 3. Автоматическое создание образа и отправка по SSH на сервер

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
cat /dev/zero > zero.file
sync
rm -rf zero.small.file
rm -rf zero.file

linuxLocalHostname=`hostname`;\
serverSshPassword="PassWord";\
sshpass -p "${serverSshPassword}" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@192.168.17.12 "mkdir -p /mnt/raid/usersadm/img/dd/${linuxLocalHostname}/"; \
dd if=/dev/sdb |\
gzip -1 - |\
sshpass -p "${serverSshPassword}" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@192.168.17.12 dd of=/mnt/raid/usersadm/img/dd/${linuxLocalHostname}/${linuxLocalHostname}_`date +%Y-%m-%d_%H-%M`.gz;

Разворачивание образа

Диск, на который разворачиваем образ должен быть немного большего размера чем диск-источник

Windows

Используем ETCHER 1.5.x

Разворачиваем образ *.gz на HDD-диск

При проверке образа, после разворачивания, etcher напишет "Failed", Однако система загрузится корректно с диска, на который развернули образ

Linux

Следующие действия проводим на системе-цели, на диск которой разворачиваем образ

Загружаемся с systemrescuecd на целевой системе

Здесь будем разворачивать образ на локальный диск

192.168.17.169 - IP целевой системы

/dev/sda - диск на новой системы, на который будем разворачивать образ

192.168.17.12 - NAS, на котором хранится образ

SSH

НЕархивированный образ

ssh root@192.168.17.12 cat /path/to/image.img | dd of=/dev/sda

Архивированный образ

ssh root@192.168.17.12 cat /path/to/image.img.gz | gunzip | sudo dd of=/dev/sda

SMB

mount -t cifs -o username=avc,password=PassWord#1 //192.168.10.249/Rutoken /mnt/tmp/

cat /mnt/tmp/rvpn.img.gz | gzip -dc | dd of=/dev/sda