Как загрузить скачанный ранее образ?
Надёжность, доступная каждому

Как загрузить скачанный ранее образ?

В примере будет использоваться 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


Ссылки по теме:

https://wiki.grml.org/doku.php?id=rescueboot

http://grml.org/cheatcodes/