В примере будет использоваться ubuntu 18.04 на всех машинах.
Загрузить образ можно по сети, предварительно необходимо загрузиться с iso-образа, располагающегося при копировании в памяти. Понадобится создать сервер, который имеет эквивалентный размеру образа объём диска. Также на клиентском компьютере, содержащем исходный образ (source.raw), необходимо наличие unix-подобного pipe и консольных утилит ssh и gzip.
1) Скачиваем grml small в корень файловой системы целевого сервера.
wget http://download.grml.org/grml64-small_2017.05.iso -O /image.iso
2) Добавляем
Для дистрибутивов, основанных на rhel, понадобится вручную поднимать сеть (ip addr add, ip route add), опция debnet не будет работать.menuentry "Grml Rescue System" {insmod part_msdosinsmod ext2set root=(hd0,2)loopback loop /image.isoecho 'Loading Grml kernel (amd64) ...'linux (loop)/boot/grml64small/vmlinuz noeject noprompt \boot=live \findiso=/image.iso \ssh=StrongPassword \console=tty0 console=ttyS0,9600n8 \ignore_bootid \live-media-path=/live/grml64-small/ \toram=grml64-small.squashfs \net.ifnames=0 biosdevname=0 debnet dns=8.8.8.8echo 'Loading Grml initrd (amd64) ...'initrd (loop)/boot/grml64small/initrd.img}
в конец /etc/grub.d/40_custom и выполняем update-grub
3) Перезагружаем сервер и в меню загрузчика (через веб консоль) выбираем Grml Rescue System
4) Вручную конфигурируем сеть для внешнего интерфейса, при сомнениях в корректности конфигурации сетевых настроек можно взять маску подсети и гейтвей из содержимого файлов конфигурации в пп.5 или воспользоваться любым IP-калькулятором
ip li set dev eth1 upip a add ip.ad.dr.ess/mask dev eth1ip r add default via ga.te.wa.y
5) Сохраняем предыдущую конфигурацию сети, для RHEL-подобных дистрибутивов необходимо сохранить файлы /etc/sysconfig/network и /etc/sysconfig/network-scripts/ifcfg-eth*
mkdir -p /mnt/source /mnt/dest /backup && mount /dev/vda2 /mnt/sourcecp -a /mnt/source/etc/network/interfaces /backupcp -a /mnt/source/etc/udev/rules.d/70-persistent-net.rules /backupumount /mnt/source
6) Копируем образ по сети, при этом надо понимать, что перезагрузка в работающую ОС возможна либо до начала копирования, либо только после успешного завершения копирования образа (пароль задается в grub - ssh=StrongPassword)
cat source.raw | gzip --fast | ssh root@xxx.xxx.xxx.xxx "zcat > /dev/vda"
7) Восстанавливаем файлы конфигурации сети
mount /dev/vda2 /mnt/destcp -a /backup/interfaces /mnt/dest/etc/network/interfacescp -a /backup/70-persistent-net.rules /mnt/dest/etc/udev/rules.d/70-persistent-net.rulesumount /mnt/dest
8) Перезагружаем серверreboot
Ссылки по теме: