Поиск по этому блогу

03.09.2010

Junos. Копирование Туда и Обратно

Глава 1. Установка обновлений на SRX с USB stick.
На борту Juniper SRX имеется USB разъем для подключения флешек. Согласно рекомендациям производителя поддерживаются следующие носители:
Unigen 4 GB
Trancend JetFlash 1GB, 2GB
Kingston Datatraveller 2GB
Lexar 1GB, 2GB, 4 GB
У меня работал Kingston Datatraveler 512M, на который я скопировал образ junos junos-srxsme-10.0R4.7-domestic.tgz и конфигурационные файлы с работающих устройств. Новые версии junos доступны на сайте производителя при наличии действующих сервисных контрактов. Еще я использую Card Reader с CompactFlash 1Gb для создания бекапов.

При подключении флешки на консоли появляются соответствующие сообщения:
umass1: Kingston DataTraveler 2.0, rev 2.00/1.00, addr 4
da1 at umass-sim1 bus 1 target 0 lun 0
da1: Removable Direct Access SCSI-0 device
da1: 40.000MB/s transfers
da1: 490MB (1003520 512 byte sectors: 64H 32S/T 490C)
которые свидетельствуют об успешном определении устройства. Если при подключении устройство не определилось, как это произошло с DataTraveler 4Gb, то попытки рекомендую прекратить во избежание траты времени и нервов.
Далее необходимо подмонтировать устройство. Всем знакомым с FreeBSD или Linux это будет просто и понятно.
root@srx> exit

root@srx% mount_msdosfs /dev/da1 /mnt
root@srx% ls /mnt
srx1-srx_juniper.conf.gz_20100831_015647
srx2-srx_juniper.conf.gz_20100831_085035
junos-srxsme-10.0R4.7-domestic.tgz
root@enisey-srx%
Далее устанавливается софт:
root@srx> request system software add partition reboot /mnt/junos-srxsme-10.0R4.7-domestic.tgz
Опция partition означает, что внутренний диск будет разбит на разделы и переформатирован. Опцию no-copy применять смысла нет, так как есть желание оставить образ на флешке, а не перемещать на внутренний носитель. После перезагрузки имеем:
root@srx> show system software detail
Information for junos:

Comment:
JUNOS Software Release [10.0R4.7]


Depends on:
Description:
JUNOS Software Release
Copyright (c) 1996-2010, Juniper Networks, Inc.
All rights reserved.

Software version: 10.0R4.7

This package contains OS components.




root@srx> show system software backup
Backup JUNOS package information:
File name: /altroot/cf/packages/junos-10.0R4.7-domestic
File size: 183860355
Самое приятное во всем обновлении с форматированием, что конфигурация сохраняется, чего я поначалу не ожидал.
В любом случае, конфигурации были на USB. Можно без проблем залить любую из них. Для этого монтируем флешку как ранее. Поскольку все конфигурации junos пакует gzip'ом, то предварительно их следует распаковать. Сделать это можно следующим образом:
root@srx% cd /mnt
root@srx% ls
srx1-srx_juniper.conf.gz_20100831_015647
srx2-srx_juniper.conf.gz_20100831_085035
junos-srxsme-10.0R4.7-domestic.tgz
root@srx%zcat srx1-srx_juniper.conf.gz_20100831_015647 > srx1.cfg
root@% cli
root> edit
Entering configuration mode

[edit]
root# load override /mnt/srx1.cfg
load complete

[edit]
root# commit
Далее необходимо выйти обратно в shell и отмонтировать и извлечь флешку:
root@srx1% umount /mnt
umount: unmount of /mnt failed: Device busy
root@srx1% pwd
/mnt
root@srx1% cd /
root@srx1%
root@srx1% umount /mnt
root@srx1%
wumass1: at uhub1 port 2 (addr 4) disconnected
(da1:umass-sim1:1:0:0): lost device
(da1:umass-sim1:1:0:0): removing device entry
umass1: detached

Глава 2. Создание резервной копии и восстановление с нее.

Для создания резервной копии использую CompactFlash 1Gb, подключаемую через card reader, что совпадает с размером внутреннего носителя SRX100.
Подключается флешка в USB, выполняются команды:
umass1: Generic Mass Storage Device, rev 2.00/1.00, addr 4
da1 at umass-sim1 bus 1 target 0 lun 0
da1: Removable Direct Access SCSI-0 device
da1: 40.000MB/s transfers
da1: 955MB (1957536 512 byte sectors: 64H 32S/T 955C)

root@% cli
root@> request system snapshot media usb partition
Clearing current label...
Partitioning usb media (/dev/da1) ...
Partitions on snapshot:

Partition Mountpoint Size Snapshot argument
s1a / 278M none
s2a /altroot 278M none
s3e /config 22M none
s3f /var 331M none
s4a recovery 29M none
Copying '/dev/da0s1a' to '/dev/da1s1a' .. (this may take a few minutes)
Copying '/dev/da0s2a' to '/dev/da1s2a' .. (this may take a few minutes)
Copying '/dev/da0s3e' to '/dev/da1s3e' .. (this may take a few minutes)
Copying '/dev/da0s3f' to '/dev/da1s3f' .. (this may take a few minutes)
Copying '/dev/da0s4a' to '/dev/da1s4a' .. (this may take a few minutes)
The following filesystems were archived: / /altroot /config /var recovery

root@> umass1: at uhub1 port 2 (addr 4) disconnected
(da1:umass-sim1:1:0:0): lost device
(da1:umass-sim1:1:0:0): removing device entry
umass1: detached

В загрузчике (loader), куда можно попасть, надавив "Пробел" во время загрузки, можно указать устройство, с которого предстоит загрузиться:
Loading /boot/defaults/loader.conf
/kernel data=0x917724+0xc6d30 syms=[0x4+0x74ce0+0x4+0xa56e9]
Hit [Enter] to boot immediately, or space bar for command prompt.

[давится "Пробел"]

Type '?' for a list of commands, 'help' for more detailed help.
loader> nextboot usb
Setting next boot dev usb
Un-Protected 1 sectors
writing to flash...
Protected 1 sectors
loader> reboot
Resetting...


U-Boot 1.1.6 (Build time: Nov 19 2009 - 07:52:31)

SRX_100_LOWMEM board revision major:0, minor:0, serial #: AT1610AF0206
OCTEON CN5020-SCP pass 1.1, Core clock: 500 MHz, DDR clock: 266 MHz (532 Mhz data rate)
DRAM: 512 MB
Starting Memory POST...
Checking datalines... OK
Checking address lines... OK
Checking 512K memory for U-Boot... OK.
Running U-Boot CRC Test... OK.
Flash: 4 MB
USB: scanning bus for devices... 4 USB Device(s) found
scanning bus for storage devices... 2 Storage Device(s) found
Clearing DRAM....... done
BIST check passed.
Net: pic init done (err = 0)octeth0
POST Passed
Press SPACE to abort autoboot in 1 seconds
ELF file is 32 bit
Loading .text @ 0x8f000078 (241008 bytes)
Loading .rodata @ 0x8f03ade8 (13908 bytes)
Loading .rodata.str1.4 @ 0x8f03e43c (15972 bytes)
Loading set_Xcommand_set @ 0x8f0422a0 (96 bytes)
Loading .rodata.cst4 @ 0x8f042300 (20 bytes)
Loading .data @ 0x8f043000 (5572 bytes)
Loading .data.rel.ro @ 0x8f0445c4 (120 bytes)
Loading .data.rel @ 0x8f04463c (136 bytes)
Clearing .bss @ 0x8f0446c8 (8304 bytes)
## Starting application at 0x8f000078 ...
Consoles: U-Boot console
Found compatible API, ver. 1.6

FreeBSD/MIPS U-Boot bootstrap loader, Revision 1.6
(builder@ormonth.juniper.net, Thu Nov 19 07:07:59 UTC 2009)
Memory: 512MB
[1]Booting from usb slice 1
Un-Protected 1 sectors
writing to flash...
Protected 1 sectors
Loading /boot/defaults/loader.conf
[skip]
da0 at umass-sim0 bus 0 target 0 lun 0
da0: Removable Direct Access SCSI-2 device
da0: 40.000MB/s transfers
da0: 1000MB (2048000 512 byte sectors: 64H 32S/T 1000C)
da1 at umass-sim1 bus 1 target 0 lun 0
da1: Removable Direct Access SCSI-0 device
da1: 40.000MB/s transfers
da1: 955MB (1957536 512 byte sectors: 64H 32S/T 955C)
После загрузки операционной системы выполняется процедура восстановления, после чего выполняется команда перезагрузки:
root@srx> request system snapshot media internal partition
Clearing current label...
Partitioning internal media (/dev/da0) ...
Partitions on snapshot:

Partition Mountpoint Size Snapshot argument
s1a / 293M none
s2a /altroot 293M none
s3e /config 24M none
s3f /var 342M none
s4a recovery 30M none
Copying '/dev/da1s1a' to '/dev/da0s1a' .. (this may take a few minutes)
Copying '/dev/da1s2a' to '/dev/da0s2a' .. (this may take a few minutes)
Copying '/dev/da1s3e' to '/dev/da0s3e' .. (this may take a few minutes)
Copying '/dev/da1s3f' to '/dev/da0s3f' .. (this may take a few minutes)
Copying '/dev/da1s4a' to '/dev/da0s4a' .. (this may take a few minutes)
The following filesystems were archived: / /altroot /config /var recovery

root@srx> request system reboot
Reboot the system ? [yes,no] (no) yes

Shutdown NOW!
[pid 1446]

root@srx>


FreeBSD/MIPS U-Boot bootstrap loader, Revision 1.6
(builder@ormonth.juniper.net, Thu Nov 19 07:07:59 UTC 2009)
Memory: 512MB
[0]Booting from nand-flash slice 1


Послесловие

В junos предусмотрен как основной корень "/", где располагаетcя ядро и пр, так и альтернативный. Иногда после того, как пользователь залогинился, выдается что-то типа Message of the Day (MOTD)
login: root
Password:
***********************************************************************
** **
** WARNING: THIS DEVICE HAS BOOTED FROM THE BACKUP JUNOS IMAGE **
** **
** It is possible that the active copy of JUNOS failed to boot up **
** properly, and so this device has booted from the backup copy. **
** **
** Please re-install JUNOS to recover the active copy in case **
** it has been corrupted. **
** **
***********************************************************************
Здесь рекомендуется, как понятно из текста, переустановить операционную систему, либо, как еще предлагает документация, выполнить команду:
root@srx>request system snapshot slice alternate

Хорошей идеей будет создать резервную конфигурацию, об отсутствии которой сигнализирует устройство:
root@srx> show system alarms
1 alarms currently active
Alarm time Class Description
2010-09-03 18:52:18 KRAST Minor Rescue configuration is not set


root@srx> request system configuration rescue save

root@srx> show system alarms
No alarms currently active