■SSG5にUSBメモリを接続、flashにあるすべてをバックアップ 「imagekey.cer」は書式が異なるファイル単位になってしまうので基本的に一方通行。 ScreenOS Image Certification Key http://www.juniper.net/techpubs/hardware/netscreen-certifications.html BOOT LOADERと$NSBOOT$.BINは、flashに保存されていればちゃんとバックアップ出来る。 USBメモリの1GBの制限のオーバーフローしたマイナス表記で切り分けたところも書いておく。 ■結論だけ言うと、以下で隠しファイルも含めて1GBのUSBメモリに保存出来る。 「imagekey.cer」は別途ダウンロード。 ssg5-isdn-> debug filesys all ssg5-isdn-> get file ssg5-isdn-> get dbuf stream ssg5-isdn-> save file flash:/[隠しor通常ファイル] to usb [隠しor通常ファイル] ■まずは8GBのパーティションのままテスト。 $ sudo fdisk -lu /dev/sdb Disk /dev/sdb: 8086 MB, 8086617600 bytes 18 heads, 3 sectors/track, 292484 cylinders, total 15794175 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00078168 Device Boot Start End Blocks Id System /dev/sdb1 2048 15794174 7896063+ c W95 FAT32 (LBA) $ sudo mkfs.vfat -F 32 /dev/sdb1 mkfs.vfat 3.0.13 (30 Jun 2012) ■SSG5の背面に接続。 「save software」で空き容量不足と出る。 「get file info」の出力がマイナス表記。 PQI PQI USB Flash Drive, rev 2.00/1.00, addr 2, SCSI over Bulk-Only Mount usb device. Please wait... usb device ready. ssg5-isdn-> ssg5-isdn-> get chassis status USB: Inserted Total Size: 8,069,787,648 bytes Free Size: 8,069,783,552 bytes ssg5-isdn-> get file info There are 51007488 bytes free (62623744 total) on disk "flash:" There are -520151040 bytes free (-520146944 total) on disk "usb:" ssg5-isdn-> save software from flash to usb device.save save software from flash to usb Load image from 0x020d1f60 to usb in : device.save. there are not enough free spaces in usb device.save failed! Write error, please check usb flash. ssg5-isdn-> get file | include usb USB flash device : usb:/ssg5-isdn_log.txt 589 ssg5-isdn-> exec usb-device stop The "USB Mass Storage Device"can now be safely removed from system ssg5-isdn-> ■7GBあふれたというより、1GBあふれたすべてがオーバーフローした結果のようだ。 $ echo "$(((8086617600-520146944)/1024/1024/1024))" 7 $ echo "$(((8086617600-520146944)/7))" | awk '{print $1,$1/1024/1024/1024}' 1080924379 1.00669 ■オーバーフローしている状態だと、 「save config」やUSBログは問題無く保存されるが、「save software」が出来ない。 なんとなく1GB未満になるようなセクタを計算する。 $ echo "$(((15794175/8)-2048-1))" | awk '{print $1,$1-($1%100)}' 1972222 1972200 ■とりあえずパーティションは1つとした。他は未使用領域。 $ sudo fdisk -lu /dev/sdb Disk /dev/sdb: 8086 MB, 8086617600 bytes 1 heads, 1 sectors/track, 15794175 cylinders, total 15794175 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00078168 Device Boot Start End Blocks Id System /dev/sdb1 2048 1972200 985076+ 83 Linux $ sudo mkfs.vfat -F 32 /dev/sdb1 mkfs.vfat 3.0.13 (30 Jun 2012) ■SSG5に1GBフォーマットで再接続。正しく認識したようだ。 ssg5-isdn-> PQI PQI USB Flash Drive, rev 2.00/1.00, addr 2, SCSI over Bulk-Only Mount usb device. Please wait... usb device (usb) ready. ssg5-isdn-> get file info There are 35471360 bytes free (62623744 total) on disk "flash:" There are 1006723072 bytes free (1006727168 total) on disk "usb:" ssg5-isdn-> get chassis status USB: Inserted Total Size: 1,006,727,168 bytes Free Size: 1,006,723,072 bytes ■コンフィグをバックアップ flash -> usb ssg5-isdn-> save Save System Configuration ... Done ssg5-isdn-> save config from flash to usb usb.cfg System config (1303 bytes) loaded Done. Save config to usb :usb.cfg Save ....Done ■ScreenOSをバックアップ flash -> usb save software from flash to usb Load image from 0x029b28c0 to usb in : software.bin. platform = 25, cpu = 12, version = 18 offset = 20, address = 5800000, size = 13294941 date = 1b96, sw_version = 31808000, cksum = afe47a3e Save ............................................................................ ....................Done ssg5-isdn-> ssg5-isdn-> get file flash:/crashdump.dmp 32768 flash:/burnin_log1 20480 flash:/burnin_log0 20480 flash:/prngseed.bin 32 flash:/envar.rec 85 flash:/ns_sys_config 1303 flash:/dhcpservl.txt 0 flash:/cli-log 49952 flash:/dnstb.rec 83 flash:/pkidatabase.digest 20 flash:/ns_sys_cfg.sig 20 USB flash device : usb:/usb.cfg 3741 usb:/software.bin 13303808 ssg5-isdn-> ■「save image-key」は一方通行なので、flashからのバックアップは出来ない。 一方通行なのは以下の3種類。 ssg5-isdn-> save image-key ? tftp load image key from tftp server usb load image key from usb ssg5-isdn-> save attack-db from ? tftp load attack database from tftp server ssg5-isdn-> save patch from ? tftp load patch from tftp server ■他のメニューは以下。 ssg5-isdn-> save ? <return> attack-db save attack database config save configurations file save file image-key save image key patch save hot patch file software save software ■「file」として保存してあれば出来そう。 ssg5-isdn-> get file flash:/crashdump.dmp 32768 flash:/burnin_log1 20480 flash:/burnin_log0 20480 flash:/prngseed.bin 32 flash:/envar.rec 85 flash:/ns_sys_config 1302 flash:/dhcpservl.txt 0 flash:/cli-log 49952 flash:/dnstb.rec 83 flash:/pkidatabase.digest 20 flash:/ns_sys_cfg.sig 20 USB flash device : usb:/usb.cfg 3741 usb:/software.bin 13303808 ssg5-isdn-> save file flash:/crashdump.dmp to to save file to tftp server or usb ■コマンドを全部打つのは面倒なので。 $ echo ' flash:/crashdump.dmp 32768 flash:/burnin_log1 20480 flash:/burnin_log0 20480 flash:/prngseed.bin 32 flash:/envar.rec 85 flash:/ns_sys_config 1302 flash:/dhcpservl.txt 0 flash:/cli-log 49952 flash:/dnstb.rec 83 flash:/pkidatabase.digest 20 flash:/ns_sys_cfg.sig 20 ' | grep -v "^\$" | awk '{print $1}' | awk -F/ '{print "save file flash:/"$2 " to usb " $2}' save file flash:/crashdump.dmp to usb crashdump.dmp save file flash:/burnin_log1 to usb burnin_log1 save file flash:/burnin_log0 to usb burnin_log0 save file flash:/prngseed.bin to usb prngseed.bin save file flash:/envar.rec to usb envar.rec save file flash:/ns_sys_config to usb ns_sys_config save file flash:/dhcpservl.txt to usb dhcpservl.txt save file flash:/cli-log to usb cli-log save file flash:/dnstb.rec to usb dnstb.rec save file flash:/pkidatabase.digest to usb pkidatabase.digest save file flash:/ns_sys_cfg.sig to usb ns_sys_cfg.sig ■一気に流し込み。 flash -> usb ssg5-isdn-> save file flash:/crashdump.dmp to usb crashdump.dmp read file flash:/crashdump.dmp from flash,please wait... save file flash:/crashdump.dmp to usb (file: crashdump.dmp). Save .....Done ssg5-isdn-> save file flash:/burnin_log1 to usb burnin_log1 read file flash:/burnin_log1 from flash,please wait... save file flash:/burnin_log1 to usb (file: burnin_log1). Save .....Done ssg5-isdn-> save file flash:/burnin_log0 to usb burnin_log0 read file flash:/burnin_log0 from flash,please wait... save file flash:/burnin_log0 to usb (file: burnin_log0). Save .....Done ssg5-isdn-> save file flash:/prngseed.bin to usb prngseed.bin read file flash:/prngseed.bin from flash,please wait... save file flash:/prngseed.bin to usb (file: prngseed.bin). Save ....Done ssg5-isdn-> save file flash:/envar.rec to usb envar.rec read file flash:/envar.rec from flash,please wait... save file flash:/envar.rec to usb (file: envar.rec). Save ....Done ssg5-isdn-> save file flash:/ns_sys_config to usb ns_sys_config read file flash:/ns_sys_config from flash,please wait... save file flash:/ns_sys_config to usb (file: ns_sys_config). Save ....Done ssg5-isdn-> save file flash:/dhcpservl.txt to usb dhcpservl.txt Open flash:/dhcpservl.txt failed! ssg5-isdn-> save file flash:/cli-log to usb cli-log read file flash:/cli-log from flash,please wait... save file flash:/cli-log to usb (file: cli-log). Save .......Done ssg5-isdn-> save file flash:/dnstb.rec to usb dnstb.rec read file flash:/dnstb.rec from flash,please wait... save file flash:/dnstb.rec to usb (file: dnstb.rec). Save ....Done ssg5-isdn-> save file flash:/pkidatabase.digest to usb pkidatabase.digest read file flash:/pkidatabase.digest from flash,please wait... save file flash:/pkidatabase.digest to usb (file: pkidatabase.digest). Save ....Done ssg5-isdn-> save file flash:/ns_sys_cfg.sig to usb ns_sys_cfg.sig read file flash:/ns_sys_cfg.sig from flash,please wait... save file flash:/ns_sys_cfg.sig to usb (file: ns_sys_cfg.sig). Save ....Done ssg5-isdn-> ■確認。 ssg5-isdn-> get file flash:/crashdump.dmp 32768 flash:/burnin_log1 20480 flash:/burnin_log0 20480 flash:/prngseed.bin 32 flash:/envar.rec 85 flash:/ns_sys_config 1302 flash:/dhcpservl.txt 0 flash:/cli-log 49952 flash:/dnstb.rec 83 flash:/pkidatabase.digest 20 flash:/ns_sys_cfg.sig 20 USB flash device : usb:/usb.cfg 3741 usb:/software.bin 13303808 usb:/crashdump.dmp 32768 usb:/burnin_log1 20480 usb:/burnin_log0 20480 usb:/prngseed.bin 32 usb:/envar.rec 85 usb:/ns_sys_config 1302 usb:/cli-log 49952 usb:/dnstb.rec 83 usb:/pkidatabase.digest 20 usb:/ns_sys_cfg.sig 20 ssg5-isdn-> ■scriptログから「debug filesys all;get file;get dbuf stream」の結果を抜き出す。 $ sed s/".* name "//g dbuf.log | grep ^flash | awk '{print $1}' | sort -u flash:/$NSBOOT$.BIN flash:/LOADSSG5.D flash:/SSG5SSG2.0 flash:/burnin_log0 flash:/burnin_log1 flash:/certfile.cfg flash:/certfile.dsc flash:/cli-log flash:/crashdump.dmp flash:/dhcpservl.txt flash:/dnstb.rec flash:/envar.rec flash:/golerd.rec flash:/node_secret.ace flash:/ns_sys_cfg.sig flash:/ns_sys_config flash:/pkidatabase.digest flash:/prngseed.bin flash:/syscert.cfg ■もう一回。 $ echo ' flash:/$NSBOOT$.BIN flash:/LOADSSG5.D flash:/SSG5SSG2.0 flash:/burnin_log0 flash:/burnin_log1 flash:/certfile.cfg flash:/certfile.dsc flash:/cli-log flash:/crashdump.dmp flash:/dhcpservl.txt flash:/dnstb.rec flash:/envar.rec flash:/golerd.rec flash:/node_secret.ace flash:/ns_sys_cfg.sig flash:/ns_sys_config flash:/pkidatabase.digest flash:/prngseed.bin flash:/syscert.cfg ' | grep -v "^\$" | awk -F/ '{print "save file flash:/"$2 " to usb " $2}' save file flash:/$NSBOOT$.BIN to usb $NSBOOT$.BIN save file flash:/LOADSSG5.D to usb LOADSSG5.D save file flash:/SSG5SSG2.0 to usb SSG5SSG2.0 save file flash:/burnin_log0 to usb burnin_log0 save file flash:/burnin_log1 to usb burnin_log1 save file flash:/certfile.cfg to usb certfile.cfg save file flash:/certfile.dsc to usb certfile.dsc save file flash:/cli-log to usb cli-log save file flash:/crashdump.dmp to usb crashdump.dmp save file flash:/dhcpservl.txt to usb dhcpservl.txt save file flash:/dnstb.rec to usb dnstb.rec save file flash:/envar.rec to usb envar.rec save file flash:/golerd.rec to usb golerd.rec save file flash:/node_secret.ace to usb node_secret.ace save file flash:/ns_sys_cfg.sig to usb ns_sys_cfg.sig save file flash:/ns_sys_config to usb ns_sys_config save file flash:/pkidatabase.digest to usb pkidatabase.digest save file flash:/prngseed.bin to usb prngseed.bin save file flash:/syscert.cfg to usb syscert.cfg ■最終的な結果だけ。 これで3台目は安心して遊べますね。。。 ssg5-isdn-> get file flash:/crashdump.dmp 32768 flash:/burnin_log1 20480 flash:/burnin_log0 20480 flash:/prngseed.bin 32 flash:/envar.rec 85 flash:/ns_sys_config 1302 flash:/dhcpservl.txt 0 flash:/cli-log 49952 flash:/dnstb.rec 83 flash:/pkidatabase.digest 20 flash:/ns_sys_cfg.sig 20 USB flash device : usb:/usb.cfg 3741 usb:/software.bin 13303808 usb:/crashdump.dmp 32768 usb:/burnin_log1 20480 usb:/burnin_log0 20480 usb:/prngseed.bin 32 usb:/envar.rec 85 usb:/ns_sys_config 1302 usb:/cli-log 49952 usb:/dnstb.rec 83 usb:/pkidatabase.digest 20 usb:/ns_sys_cfg.sig 20 usb:/boot.bin 13303808 usb:/loadssg5.d 408395 usb:/$NSBOOT$.BIN 13303808 usb:/SSG5SSG2.0 13295019 usb:/certfile.cfg 3398 usb:/certfile.dsc 504 usb:/golerd.rec 1220 usb:/syscert.cfg 1166 ssg5-isdn->