Juniper SRX (Junos OS)如何利用USB隨身碟來備份與還原Junos作業系統


Juniper SRX (Junos OS)如何利用USB隨身碟來備份與還原Junos作業系統


一般我們所使用的個人電腦或是筆記型電腦,在電腦軟體或是系統故障時,可透過備份與還原系統來將電腦快速恢復正常,解決我們的問題。而在Juniper SRX系列防火牆,我們也可以透過USB隨身碟來備份與還原JUNOS系統,從而達到讓SRX防火牆在系統故障時能快速恢復正常的目的。

推薦用於SRX設備升級/降級的USB隨身碟的大小
我們建議使用具有以下SRX系列設備存儲容量的USB隨身碟:
    4 GB
    8 GB
    16 GB
    32 GB
我們強烈建議您僅使用上述USB隨身碟大小。
SRX系列設備上使用的所有USB隨身碟必須具備以下功能:
    USB 2.0或更高版本。
    使用FAT / FAT 32MS-DOS文件系統格式化。


其簡單的步驟如下:
SRX內部儲存媒體的資料全部備份到USB隨身碟上:
root@srx100> request system snapshot
而備份完成的USB隨身碟我們將其稱作USB快照碟(USB Snapshot Sticks)

USB快照碟的資料全部還原到SRX設備的內部儲存媒體上:
root@srx100> request system reboot media usb
root@srx100> request system snapshot media internal
root@srx100> request system reboot media internal



下列為接下來我們所要示範的相關命令及其說明:
執行系統快照功能,將SRX設備內部媒體裝置(FLASH)的資料全部備份到USB隨身碟上(USB隨身碟上的資料會全部消失),整個過程約10分鐘左右:
root@srx100> request system snapshot
製作完成的USB快照碟能用來將資料還原到SRX設備上,或是在SRX系統故障時(boot loader必須正常能運作)當作緊急開機碟來使用。
製作完成的USB快照碟也能用來當作大量佈署同型號SRX設備時的安裝碟,在一台SRX設備上安裝好所需要的JUNOS軟體與設定好系統環境,然後執行系統快照功能,將SRX設備內部媒體裝置(FLASH)上的資料全部備份到USB隨身碟上,再拿此USB快照碟將其資料還原到其他SRX設備上,因此可以讓我們節省了大量的設備佈署時間。

注意:在開始前請先準備一顆小於16GB的空白USB隨身碟(基本上根據您設備內部媒體的容量大小來決定,但是不能小於您SRX設備內部媒體的容量),因為因為過程中會將整顆隨身碟格式化成FreeBSD的檔案格式,所以USB隨身碟裡面的資料都會消失的。

注意:SRX100設備上製作完成的USB快照碟只能使用在原來所備份的SRX100設備上,即使是相同型號的設備也不能相互套用。
其原因說明如下:
我們可以透過在SRX100H上執行下列的命令來查詢系統授權訊息:
root@srx100> show system license
License usage:
                                 Licenses     Licenses    Licenses    Expiry
  Feature name                       used    installed      needed
  dynamic-vpn                           0            2           0    permanent
  ax411-wlan-ap                         0            2           0    permanent
  mem-upg                               0            1           0    permanent

Licenses installed:
  License identifier: JUNOS238247  
  License version: 2
  Valid for device: AU.........6      /* 此為設備的序號,且授權只對此設備有效 */
  Features:
    mem-upg          - Memory Upgrade  /* 記憶體升級授權,沒有此授權設備就變成了SRX100B */
      permanent

root@srx100> show system license keys
JUNOS238247 aeaqe.............................j4a4ug
            3arka.............................rn45
            njmvy.............................c6t i

root@srx100>

我們可以發現系統只安裝了JUNOS238247(mem-upg - Memory Upgrade)一個授權,且只對設備AU.........6才有效(系統授權碼為唯一)
所以一旦SRX100H透過USB快照碟來啟動,由於沒有mem-upg許可證,系統將恢復為SRX100B,它將自動重啟,並在console顯示以下訊息:
*** FINAL System shutdown message from root@srx100 ***
System going down IMMEDIATELY
mem-upg license not present. System downgraded to low memory; System going down  IMMEDIATELY.


注意:已經執行mount(掛載)命令的USB隨身碟被拔除之前,請先手動執行umount /var/tmp/usb(卸載)命令來移除device entry,以避免產生下列的情況:
/* 下面為沒有被掛載或是已經卸載USB隨身碟被拔除時所出現的訊息 */
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   /* 因為沒有被掛載或是已經卸載,所以能自動移除device entry da1 */
umass1: detached

/* 下面為已經掛載USB隨身碟在沒有卸載的情形下被拔除時所出現的訊息 */
root@srx100>
umass1: at uhub1 port 2 (addr 4) disconnected
(da1:umass-sim1:1:0:0): lost device
umass1: detached
   /* 因為已經被掛載,所以無法自動移除device entry da1,拔除USB隨身碟之前必須先手動執行umount /var/tmp/usb卸載命令才能自動移除device entry da1 */

root@srx100>    
/* 已經掛載USB隨身碟在沒有卸載的情形下被拔除後,再插入USB隨身碟時所出現的訊息 */
umass1: SanDisk Ultra, rev 2.10/1.00, addr 4
da2 at umass-sim1 bus 1 target 0 lun 0
da2: <SanDisk Ultra 1.00> Removable Direct Access SCSI-6 device
da2: 40.000MB/s transfers
da2: 14663MB (30031250 512 byte sectors: 255H 63S/T 1869C)
   /* 因為device entry da1並沒有被移除,所以新插入的USB隨身碟的裝置代號會成為da2 */
root@srx100> request system snapshot   /* 將內部儲存媒體的資料備份到USB隨身碟上 */
error: usb (/dev/da1) media missing or invalid
/* 命令的預設USB裝置代號為da1,而插入的USB隨身碟裝置代號為da2,所以系統會找不到USB裝置 */
root@srx100>

關於USB隨身碟的掛載(mount)與卸載(umount)請參考下面的示範:
方法一:此為標準做法,比較麻煩一些。
root@srx100% mkdir /var/tmp/usb
root@srx100% mount -t msdos /dev/da1s1 /var/tmp/usb
root@srx100% ls /var/tmp/usb/
root@srx100% cli
root@srx100> file copy /var/tmp/usb/srx100-ok.conf /var/tmp/
root@srx100> file list /var/tmp/
root@srx100> exit
root@srx100% umount /var/tmp/usb
root@srx100%

方法二:此方法較為簡單方便。
root@srx100% mount -t msdos /dev/da1s1 /mnt
root@srx100% ls /mnt/
root@srx100% cli
root@srx100> file copy /mnt/srx100-ok.conf /var/tmp/
root@srx100> file list /var/tmp/
root@srx100> exit
root@srx100% umount /mnt


注意:在執行系統快照功能之前,請先檢查與清除/var/tmp目錄中的無用檔案,讓全部檔案大小小於200MB,以避免產生下列的情況:
root@srx100> request system snapshot media internal   /* USB快照碟上的資料全部還原到SRX設備上 */
Clearing current label...
Partitioning internal media (/dev/da0) ...   /* 對內部儲存媒體進行分割及格式化 */
error: Not enough space to copy /var (/dev/da0s3f) partition.
/* 分割及格式化完成後卻發現切割出來的空間不夠使用,造成系統只能開機到loader>下,無法正常載入Junos系統 */
root@srx100>
幸好SRX設備依然可以利用USB快照碟來開機,並在開機後刪除USB快照碟內/var/tmp目錄中的無用檔案,然後再次執行還原命令即可。


執行系統快照(system snapshot)功能,將USB快照碟上的資料全部還原到SRX設備的內部媒體裝置(FLASH)(內部媒體裝置上的資料會全部消失),但前提是SRX系統必須是從USB快照碟來啟動才行:
root@srx100> request system snapshot media internal
注意:在若您要還原的對象不是原來所備份的設備,那麼在開始進行還原動作之前,您還有一件最重要的事要先做,那就是對要還原的目標設備進行資料備份的工作。最好的辦法當然是為每一台設備準備一顆USB快照碟,這樣就算是搞壞了系統也能還原回去。
其次就是要備份系統的軟體授權,將
show system license keys命令所產生的訊息全部複製到以該設備序型號+序號為名的文字檔中,這樣就算是在還原佈署過程中將授權搞丟了,我們也可以透過request system license add命令來將軟體授權重新加入。
如果您要為不同設備型號的SRX設備進行還原佈署,建議您不要這麼做,因為不同型號的設備擁有不同的軟體授權,其授權能否在您要還原佈署的設備上使用也未可知,您可執行
show system license命令來查看軟體授權,除非您十分確定其軟體授權是相同的,要不然不要對不同設備型號的SRX設備進行還原佈署的動作。

注意:若SRX系統是從內部儲存媒體來啟動,則會出現如下的訊息:
root@srx220> request system snapshot media internal
error: Cannot snapshot to current boot device


SRX JUNOS系統從usb系統快照碟來開機:
root@srx100> request system reboot media usb

SRX JUNOS系統從設備內部儲存媒體來開機:
root@srx100> request system reboot media internal

查看系統快照資訊,檢視設備內部儲存媒體裝置根分區的JUNOS資訊:
root@srx100> show system snapshot media internal

查看系統快照資訊,檢視USB快照根分區的JUNOS資訊:
root@srx100> show system snapshot media usb

查看開機媒體裝置以及根分區資訊等訊息,但僅對低端SRX設備支持:
root@srx100> show system storage partitions

執行系統快照功能,同步主要與備份根分區的JUNOS版本:
root@srx100> request system snapshot slice alternate
此命令在執行時可分成兩種情形:
若系統從主要根分區(primary root partition)來啟動:此為一般正常的開機情況,會將主根分區中的JUNOS系統複製到備份根分區中。
若系統從備份根分區(backup root partition)來啟動:此為主根分區中的JUNOS系統疑似故障所產生的開機情況,會將備份根分區中的JUNOS系統複製到主根分區中。



接下來為實際操作示範及說明:
由於此範例只是用來說明與示範,其中過程中加入了拷貝資料與安裝舊版的JUNOS系統的非必要步驟,請您在實際操作中將其省略。
srx100 (ttyu0)
login: root
Password:

--- JUNOS 12.1X46-D81 built 2018-09-19 05:54:41 UTC
root@srx100% cli
root@srx100> show system storage partitions   /* 查看開機儲存媒體以及分割區資訊 */
Boot Media: internal (da0)
Active Partition: da0s1a
Backup Partition: da0s2a
Currently booted from: active (da0s1a)

Partitions information:
  Partition  Size   Mountpoint
  s1a        292M   /           /* 主根分區 */
  s2a        293M   altroot     /* 備份根分區 */
  s3e        24M    /config  
  s3f        342M   /var     
  s4a        27M    recovery 
  s4e        2.7M 
           /* SRX設備為1GB FLASH,而全部分割區大小加起來總共980.7MB */

root@srx100> show system snapshot media internal
Information for snapshot on       internal (/dev/da0s1a) (primary)
Creation date: Dec 15 00:06:57 2018
JUNOS version on snapshot:
  junos  : 12.1X46-D81-domestic
Information for snapshot on       internal (/dev/da0s2a) (backup)
Creation date: Dec 13 03:40:26 2018
JUNOS version on snapshot:
  junos  : 12.1X46-D81-domestic

root@srx100>
umass1: SanDisk Ultra, rev 2.10/1.00, addr 4
da1 at umass-sim1 bus 1 target 0 lun 0
da1: <SanDisk Ultra 1.00> Removable Direct Access SCSI-6 device
da1: 40.000MB/s transfers
da1: 14663MB (30031250 512 byte sectors: 255H 63S/T 1869C)
/* 插入16GB USB隨身碟時所出現的訊息,其裝置代號為da1,且不用執行mount命令 */

root@srx100>
root@srx100> request system snapshot  /* 執行系統快照命令,將內部儲存媒體的資料全部備份到USB隨身碟上 */
Clearing current label...
Partitioning usb media (/dev/da1) ...    /* da1重新分割並格式化 */
Partitions on snapshot:

  Partition  Mountpoint  Size    Snapshot argument
      s1a    /           4.6G    none
      s2a    /altroot    4.7G    none
      s3e    /config     355M    none
      s3f    /var        4.0G    none  /* var目錄被綁定在分割區s3f並分配到4GB空間 */
      s4a    /recovery/software 409M none
      s4e    /recovery/state 38M none   /* da0代表內部儲存媒體,da1代表USB隨身碟 */
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/da0s4e' to '/dev/da1s4e' .. (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/state /recovery/software
  /* 系統快照命令將整顆USB隨身碟重新分割及格式化,然後將da0的資料全部複製到da1 */
root@srx100>

root@srx100> show system snapshot media usb      /* 查詢USB快照碟的根分區資訊 */
Information for snapshot on       usb (/dev/da1s1a) (primary)
Creation date: Dec 15 00:48:52 2018
JUNOS version on snapshot:
  junos  : 12.1X46-D81-domestic
Information for snapshot on       usb (/dev/da1s2a) (backup)
Creation date: Dec 15 00:50:02 2018
JUNOS version on snapshot:
  junos  : 12.1X46-D81-domestic

root@srx100>

root@srx100> file list /var/tmp/ | no-more     /* 查詢檔案內容以供後面實驗比較之用 */

/var/tmp/:
cleanup-pkgs.log
eedebug_bin_file
gksdchk.log
gres-tp/
idp_license_info
install/
junos-srxsme-12.1X46-D81-domestic.tgz*
kmdchk.log
krt_gencfg_filter.txt
pics/
policy_status
rtsdb/
sec-download/
spu_kmd_init
srx100-cos.conf
srx100-ok.conf
usb/
vi.recover/
vpn_tunnel-_orig.id
vpn_tunnel_orig.id

root@srx100>

root@srx100>      /* 拔除USB快照碟時出現的訊息 */
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


root@srx100>      /* 插入另一顆USB隨身碟用來拷貝資料,以供還原後比較 */
umass1: Sony Storage Media, rev 2.00/2.00, addr 4
da1 at umass-sim1 bus 1 target 0 lun 0
da1: <Sony Storage Media 1.00> Removable Direct Access SCSI-2 device
da1: 40.000MB/s transfers
da1: 3824MB (7831552 512 byte sectors: 255H 63S/T 487C)

root@srx100> exit

root@srx100% mount -t msdos /dev/da1s1 /var/tmp/usb
    /* 因為要拷貝資料所以要執行mount命令 */
root@srx100% cli
root@srx100> file copy /var/tmp/usb/junos-srxsme-12.1X46-D76-domestic.tgz /var/tmp/

root@srx100> file list /var/tmp/ | no-more

/var/tmp/:
cleanup-pkgs.log
eedebug_bin_file
gksdchk.log
gres-tp/
idp_license_info
install/
junos-srxsme-12.1X46-D76-domestic.tgz*   /* 多出了這個檔案 */
junos-srxsme-12.1X46-D81-domestic.tgz*
kmdchk.log
krt_gencfg_filter.txt
pics/
policy_status
rtsdb/
sec-download/
spu_kmd_init
srx100-cos.conf
srx100-ok.conf
usb/
vi.recover/
vpn_tunnel-_orig.id
vpn_tunnel_orig.id

root@srx100>

root@srx100>
    /* 因為要比較系統還原後的差異,所以將Junos重新安裝為12.1X46-D65.4版本 */
root@srx100> request system software add /var/tmp/usb/junos-srxsme-12.1X46-D65.4-domestic.tgz no-copy no-validate reboot
Formatting alternate root (/dev/da0s2a)...   /* 因為s1a主根分區已被運行中的系統使用中,所以新的系統被安裝到s2a備份根分區上 */
/dev/da0s2a: 297.9MB (610044 sectors) block size 16384, fragment size 2048
    using 4 cylinder groups of 74.47MB, 4766 blks, 9600 inodes.

... 過程省略 ...
JUNOS 12.1X46-D65.4 will become active at next reboot
Saving state for rollback ...
Rebooting ...
shutdown: [pid 2916]
Shutdown NOW!

... 重開機過程省略 ...
srx100 (ttyu0)
login: root
Password:

--- JUNOS 12.1X46-D65.4 built 2016-12-30 01:34:30 UTC
    /* 開機Junos系統版本為12.1X46-D65.4 */
root@srx100% cli
root@srx100>
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
    /* 拔除USB資料碟 */

root@srx100> show system snapshot media internal      /* 查詢內部媒體的根分區資訊 */
Information for snapshot on       internal (/dev/da0s1a) (backup)
Creation date: Dec 13 03:38:31 2018

JUNOS version on snapshot:
  junos  : 12.1X46-D81-domestic
Information for snapshot on       internal (/dev/da0s2a) (primary)
Creation date: Dec 15 01:08:14 2018
JUNOS version on snapshot:
  junos  : 12.1X46-D65.4-domestic
   /* 新安裝的系統s2a變成主根分區,而s1a變成了備份根分區 */
root@srx100>

root@srx100> request system snapshot slice alternate     /* 執行系統快照,同步根分區Junos系統版本 */
Formatting alternate root (/dev/da0s1a)...     /* 格式化s1a備份根分區 */
Copying '/dev/da0s2a' to '/dev/da0s1a' .. (this may take a few minutes)
The following filesystems were archived: /

root@srx100>

root@srx100> show system snapshot media internal      /* 查詢內部媒體的根分區資訊 */

Information for snapshot on       internal (/dev/da0s1a) (backup)
Creation date: Dec 15 01:17:23 2018
JUNOS version on snapshot:
  junos  : 12.1X46-D65.4-domestic
Information for snapshot on       internal (/dev/da0s2a) (primary)
Creation date: Dec 15 01:08:14 2018
JUNOS version on snapshot:
  junos  : 12.1X46-D65.4-domestic
   /* 根分區Junos系統版本已同步 */
root@srx100>

root@srx100>
umass1: SanDisk Ultra, rev 2.10/1.00, addr 4
da1 at umass-sim1 bus 1 target 0 lun 0
da1: <SanDisk Ultra 1.00> Removable Direct Access SCSI-6 device
da1: 40.000MB/s transfers
da1: 14663MB (30031250 512 byte sectors: 255H 63S/T 1869C)
/* 插入16GB USB快照碟時所出現的訊息,其裝置代號為da1,且不用執行mount命令 */

root@srx100>
root@srx100> request system snapshot media internal   /* USB快照碟上的備份系統還原到設備內部儲存媒體中 */
error: Cannot snapshot to current boot device    /* 無法對開機裝置本身執行系統快照功能,本命令需要讓設備從usb備份碟來啟動系統才能生效 */

root@srx100>

root@srx100> request system reboot media usb     /* 讓設備從usb快照碟來啟動系統 */
Reboot the system ? [yes,no] (no) yes

Shutdown NOW!
[pid 2109]

... 重開機過程省略 ...
srx100 (ttyu0)
login: root
Password:

--- JUNOS 12.1X46-D81 built 2018-09-19 05:54:41 UTC
---
--- NOTICE: System is running on alternate media device      (/dev/da1s1a).
---
/* 若出現此訊息則表示系統從USB快照碟開機,且設備面板上ALARM會亮橘燈 */
root@srx100% cli
root@srx100> show system storage partitions     /* 查詢開機媒體資訊 */
Boot Media: usb (da1)    /* 開機媒體為USB快照碟16GB */
Active Partition: da1s1a
Backup Partition: da1s2a
Currently booted from: active (da1s1a)

Partitions information:
  Partition  Size   Mountpoint
  s1a        4.6G   /             /* s1a為主根分區, */
  s2a        4.7G   altroot       /* s2a為備份根分區 */
  s3e        355M   /config  
  s3f        4.0G   /var     
  s4a        409M   recovery 
  s4e        38M  

root@srx100> request system snapshot media internal    /* USB快照碟的備份系統還原到設備的FLASH */
Clearing current label...
Partitioning internal media (/dev/da0) ...    /* da0內部儲存媒體重新分割並格式化 */
Partitions on snapshot:

  Partition  Mountpoint  Size    Snapshot argument
      s1a    /           292M    none
      s2a    /altroot    293M    none
      s3e    /config     24M     none
      s3f    /var        342M    none   /* var目錄綁定在分割區s3f並分配到342MB空間 */
      s4a    /recovery/software 27M none
      s4e    /recovery/state 2.7M none   /* da1代表USB隨身碟,da0代表內部儲存媒體 */
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/da1s4e' to '/dev/da0s4e' .. (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/state /recovery/software
  /* 系統快照命令將整個da0重新分割及格式化,然後將da1的資料全部複製到da0 */

root@srx100>

root@srx100> request system reboot media internal    /* 還原成功後重新開機,讓系統從flash正常啟動 */
Reboot the system ? [yes,no] (no) yes

Shutdown NOW!
[pid 2314]

... 重開機過程省略 ...
srx100 (ttyu0)
login: root
Password:

--- JUNOS 12.1X46-D81 built 2018-09-19 05:54:41 UTC
root@srx100%
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
   /* 拔除USB快照碟 */
root@srx100% cli
root@srx100> show system storage partitions   /* 查看開機儲存媒體以及分割區資訊 */
Boot Media: internal (da0)  /* 系統從內部儲存媒體正常開機 */
Active Partition: da0s1a
Backup Partition: da0s2a
Currently booted from: active (da0s1a)

Partitions information:
  Partition  Size   Mountpoint
  s1a        292M   /           /* 主根分區 */
  s2a        293M   altroot     /* 備份根分區 */
  s3e        24M    /config  
  s3f        342M   /var     
  s4a        27M    recovery 
  s4e        2.7M 

root@srx100> show system snapshot media internal      /* 查詢內部媒體的根分區資訊 */
Information for snapshot on       internal (/dev/da0s1a) (primary)
Creation date: Dec 15 01:28:33 2018
JUNOS version on snapshot:
  junos  : 12.1X46-D81-domestic
Information for snapshot on       internal (/dev/da0s2a) (backup)
Creation date: Dec 15 01:30:18 2018
JUNOS version on snapshot:
  junos  : 12.1X46-D81-domestic
  /* 根分區的Junos系統已經恢復成備份前的狀態 */
root@srx100>

root@srx100> file list /var/tmp/ | no-more

/var/tmp/:
cleanup-pkgs.log
eedebug_bin_file
gksdchk.log
gres-tp/
idp_license_info
install/
junos-srxsme-12.1X46-D81-domestic.tgz*
kmdchk.log
krt_gencfg_filter.txt
pics/
policy_status
rtsdb/
sec-download/
spu_kmd_init
srx100-cos.conf
srx100-ok.conf
usb/
vi.recover/
vpn_tunnel-_orig.id
vpn_tunnel_orig.id
  /* /var/tmp/的檔案也已經恢復成備份前的狀態了 */

root@srx100>


大功告成!!!


這個網誌中的熱門文章

如何測試網路連線--網路斷線了怎麼辦?

筆記電腦刷BIOS失敗無法開機—用CH341A編程器重刷BIOS教學!

INTEL XTU使用教學以及對筆電應具備的XTU設定概念