В примере будет использоваться 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_msdos
insmod ext2
set root=(hd0,2)
loopback loop /image.iso
echo '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.8
echo '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 up
ip a add ip.ad.dr.ess/mask dev eth1
ip 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/source
cp -a /mnt/source/etc/network/interfaces /backup
cp -a /mnt/source/etc/udev/rules.d/70-persistent-net.rules /backup
umount /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/dest
cp -a /backup/interfaces /mnt/dest/etc/network/interfaces
cp -a /backup/70-persistent-net.rules /mnt/dest/etc/udev/rules.d/70-persistent-net.rules
umount /mnt/dest
8) Перезагружаем серверreboot
Ссылки по теме: