Vyatta recovery procedure

Материал из Linkintel wiki
Перейти к: навигация, поиск

На этой странице я выписываю процедуру разворачивания роутера на vyatta с образа, отложенного в наш бэкап.

Работаем на виртуалке код kvm. Создаем машину с сетевухами, имеющими те же маки, что и у исходной машины.

(На всякий случай - среди файлов бэкапа есть vyattaX.config.tar.gz, если его развернуть, внутри есть config/config.boot - из него можно взять маки)

На одной из сетевух настраиваем сеть с bridge-ом в сеть с DHCP. Через нее мы будем скачивать образ с бэкапника.

Качаем iso-ник с vyos ([1])

Грузимся с него, входим (vyos:vyos)

Конфигурируем минимальную сеть

 configure 
 show interfaces

(смотрим, какой из интерфейсов мы зарулили в локалку. У меня - eth0)

 set interfaces ethernet eth0 address dhcp
 commit
 exit

Идем (отсюда!) на бэкапник (заодно удостоверяемся, что сеть настроена и работает) (сперва - генерируем и кладем на бэкапник ключи, чтобы потом не вводить пароль на каждый чих)

 ssh-keygen -t rsa
 ssh-copy-id mick@192.168.100.220
 ssh mick@192.168.100.220

Делаем временную папочку

 mkdir test
 cd test 

Смотрим, какие бэкапы у нас есть

 ls -la /var/backup/vyatta/vyatta0/

Разворачиваем /etc во временную папочку

 tar -xvzf /var/backup/vyatta/vyatta0/2015-12-24__09_57_53/vyatta0.etc.tar.gz 

Смотрим в /etc/fstab - нам теперь понадобится воспроизвести все разделы оттуда:

 cat etc/fstab

(у меня для vyatta0 получилось такое:

 # UNCONFIGURED FSTAB FOR BASE SYSTEM
 UUID=40c3465e-37e2-4185-8d27-cb3be034bb85       /       ext4    noatime 0 1
 /dev/sda2 /var/log/sw ext4 rw 0 0
На других будет vyatta c lvm

)

Подготавливаем файлики с важными переменными

 echo wd=/var/backup/vyatta/vyatta0/2015-12-24__09_57_53/ > vars.sh
 . vars.sh
 ls $wd > list.txt

Уходим с бэкапа, забираем fstab и файлики с собой:

 exit
 scp mick@192.168.100.220:test/etc/fstab .
 scp mick@192.168.100.220:test/vars.sh .
 scp mick@192.168.100.220:test/list.txt .

Создаем разделы (на физике - /dev/vda заменить на /dev/sda !)

 sudo su
 fdisk /dev/vda
 n
 p
 1
 1 
 +10G
 n 
 p
 2
 (Enter)
 +10G (или по вкусу - это место под логи коммутаторов!) 
 w

Выдергиваем UUID из fstab

 cat fstab | awk '{print $1; };' | grep UUID > uuid.sh
 . uuid.sh
 echo $UUID

Создаем файловую систему

 mkfs.ext4 -U $UUID /dev/vda1
 mkfs.ext4 /dev/vda2

Делаем и монтируем папочку

 mkdir /target
 mount /dev/vda1 /target
 mkdir -p /target/var/log/sw
 mount /dev/vda2 /target/var/log/sw

Идем туда и разворачиваем

 . vars.sh
 for i in `cat list.txt`; do (cd /target; ssh mick@192.168.100.220 dd if=$wd$i | tar -xvz ); done

Устанавливаем grub

 mkdir /target/proc ; mount proc /target/proc -t proc
 mkdir /target/sys ; mount sysfs /target/sys -t sysfs
 mkdir /target/dev ; mount /dev /target/dev -o bind 
 chroot /target
 update-grub
 grub-install /dev/vda

(Если тут груб ругается - поправить /boot/grub/device.map, поменять sda на vda)

(Если на физической машине - этот шаг можно пропустить) Открываем /etc/fstab, меняем sda2 на vda2

Выходим из chroot, отмонтируем всё,

 umount /target/proc
 umount /target/sys
 umount /target/dev
 umount /target

Перезагружаемся

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты