Πίσω στο blog

English  ·  Ελληνικά

Cisco / IOS  ·  Tutorial  ·  Αυγουστος 2026

Cisco IOS
Ασφαλης Αναβαθμιση

Η δουλειά που κανείς δεν θέλει να κάνει απομακρυσμένα: η αντικατάσταση του λειτουργικού σε μια ζωντανή συσκευή. Κάν' το λάθος και οδηγείς στο site με ένα καλώδιο console. Κάν' το σωστά — επιβεβαίωσε την εικόνα, όρισε τη μεταβλητή boot, κράτα την παλιά — και είναι ένα προγραμματισμένο reboot. Ορίστε η πειθαρχημένη εκδοχή.

Cisco IOS IOS Upgrade Boot System IOS-XE install mode Maintenance

1 · CHECKχώρος + έκδοση 2 · COPYεικόνα σε flash 3 · VERIFYhash md5 4 · BOOT VAR+ save 5 · RELOADσε παράθυρο Παράλειψε το βήμα 3 και ένα κατεστραμμένο download καίει τη συσκευή στο reboot. Η παλιά εικόνα μένει στη flash ως το αλεξίπτωτό σου.

Μια αναβάθμιση IOS είναι εννοιολογικά απλή — βάλε ένα νέο αρχείο εικόνας στη flash, πες στη συσκευή να κάνει boot από αυτό, reboot — αλλά ο τρόπος αστοχίας είναι σοβαρός: μια συσκευή που δεν κάνει boot χρειάζεται φυσική πρόσβαση από console και ανάκτηση ROMMON, που για ένα απομακρυσμένο site σημαίνει ταξίδι. Η πειθαρχία που το αποτρέπει είναι εξολοκλήρου το να κάνεις πράγματα με τη σωστή σειρά και να επιβεβαιώνεις σε κάθε βήμα: επιβεβαίωσε ότι υπάρχει χώρος, επιβεβαίωσε ότι το download δεν καταστράφηκε, δείξε τη μεταβλητή boot στη νέα εικόνα, κράτα την παλιά, και κάνε reboot μέσα σε παράθυρο συντήρησης με έτοιμο rollback.

Υπάρχει επίσης μια διχάλα στον δρόμο. Το κλασικό IOS και οι παλιότεροι Catalyst κάνουν boot από μία μοναδική εικόνα bundle με boot system — αυτό είναι το μεγαλύτερο μέρος αυτού του post. Οι νεότερες πλατφόρμες IOS-XE (Catalyst 9000, ISR 4000, πολλά τρέχοντα switch) προτιμούν το install mode με install add/activate/commit, που είναι πιο ασφαλές και έχει ενσωματωμένο rollback. Καλύπτουμε και τα δύο, και ποιο έχεις εσύ. Αυτό είναι το λειτουργικό αδέρφι του post Backup & Restore — ίδια νοοτροπία «κράτα ένα αλεξίπτωτο», εφαρμοσμένη στο ίδιο το OS.

Προαπαιτουμενα

01

Πριν Αγγιξεις Οτιδηποτε Ασφαλες να το Τρεξεις

Τρεις ερωτήσεις, όλες read-only: τι τρέχω, υπάρχει χώρος για τη νέα εικόνα, και έχω κάνει backup το config. Απάντησέ τες πριν αντιγράψεις έστω ένα byte.

IOS — οι ελεγχοι πριν την απογειωση
# Ποιο μοντέλο, τρέχουσα έκδοση, και πώς κάνει boot;
SW1# show version | include IOS|System image|Model
Cisco IOS Software, C2960X Software ... Version 15.2(7)E3
System image file is "flash:c2960x-universalk9-mz.152-7.E3.bin"
Model number : WS-C2960X-24TS-L

# Υπάρχει χώρος; Σύγκρινε τα "bytes free" με το μέγεθος της νέας εικόνας.
SW1# dir flash: | include bytes
128169984 bytes total (39124992 bytes free)

# Κάνε πρώτα backup το config εκτός συσκευής (δες το post Backup)
SW1# copy running-config tftp:
# και ιδανικά αντίγραψε έξω και την ΤΡΕΧΟΥΣΑ εικόνα, ώστε να μπορείς να την επαναφέρεις.
⚠ Παγιδα — Η Ελλειπης Flash Ειναι το Πιο Συχνο Τειχος

Τα access switch έρχονται συχνά με μικρή flash, και μια νέα εικόνα συν την παλιά μπορεί να μη χωράνε. Μην διαγράφεις τυφλά την τρέχουσα εικόνα για να κάνεις χώρο — αν το νέο αντίγραφο είναι κατεστραμμένο, μόλις αφαίρεσες το μόνο λειτουργικό OS σου. Αντ' αυτού: επιβεβαίωσε το μέγεθος της νέας εικόνας, και αν ο χώρος είναι στενός, αφαίρεσε παλιά αρχεία crash ή αχρησιμοποίητες εικόνες (delete flash:old-image.bin) — ποτέ αυτή από την οποία κάνεις αυτή τη στιγμή boot — και ξανακάνε dir. Σε stacked switch, κάθε μέλος χρειάζεται την εικόνα· αυτό χειρίζεται καθαρά το install mode (ενότητα 05).

02

Αντεγραψε & Επιβεβαιωσε την Εικονα

Βάλε την εικόνα στη flash, μετά — το βήμα που παραλείπει ο κόσμος και μετανιώνει — επιβεβαίωσε το hash της έναντι της δημοσιευμένης τιμής της Cisco. Ένα κομμένο ή κατεστραμμένο download που κάνει boot είναι πολύ χειρότερο από ένα που δεν κάνει.

IOS — αντιγραψε μεσα, μετα επιβεβαιωσε το MD5
SW1# copy tftp: flash:
Address or name of remote host []? 192.168.1.50
Source filename []? c2960x-universalk9-mz.152-7.E12.bin
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
23891456 bytes copied in 74.2 secs

# ΤΟ βήμα που σε σώζει: επιβεβαίωσε έναντι του δημοσιευμένου MD5/SHA της Cisco.
SW1# verify /md5 flash:c2960x-universalk9-mz.152-7.E12.bin
verify /md5 (flash:...E12.bin) = a3f5c9...  ✓ ταιριάζει με Cisco.com
# Αν αυτό το hash ΔΕΝ ταιριάζει με τη σελίδα download, ΣΤΑΜΑΤΑ. Ξανακατέβασέ το.
# Μια κατεστραμμένη εικόνα που κάνει μερικό boot μπορεί να κολλήσει σε ROMMON — επίσκεψη στο site.

03

Ορισε τη Μεταβλητη Boot

Το να αντιγράψεις την εικόνα δεν κάνει τη συσκευή να τη χρησιμοποιεί — αυτό το κάνει η μεταβλητή boot. Δείξε την στη νέα εικόνα, κράτα την παλιά ως fallback, αποθήκευσε, και επιβεβαίωσε πριν κάνεις reload.

IOS — boot πρωτα το νεο, το παλιο ως fallback
SW1(config)# boot system flash:c2960x-universalk9-mz.152-7.E12.bin
# Μια ΔΕΥΤΕΡΗ δήλωση boot = αυτόματο fallback αν αποτύχει η πρώτη εικόνα
SW1(config)# boot system flash:c2960x-universalk9-mz.152-7.E3.bin
SW1(config)# exit

# Επιβεβαίωσε ότι το config register κάνει κανονικό boot (0x2102) — ΟΧΙ 0x2142
SW1# show boot | include register|BOOT
BOOT path-list : flash:...E12.bin;flash:...E3.bin
Configuration Register is 0x2102

# ΑΠΟΘΗΚΕΥΣΕ — μια μη αποθηκευμένη δήλωση boot ξεχνιέται στο reload
SW1# write memory
⚠ Παγιδα — Η Σειρα των Δηλωσεων boot = Σειρα Boot

Το IOS δοκιμάζει τις γραμμές boot system από πάνω προς τα κάτω, οπότε η νέα εικόνα πρέπει να είναι πρώτη και η παλιά δεύτερη. Δύο λάθη καίνε εγκαταστάσεις: το να ξεχάσεις write memory (η συσκευή κάνει reload σε ό,τι είχε το startup-config, αγνοώντας την αλλαγή σου), και το να έχει το config register οριστεί σε 0x2142 από παλιά ανάκτηση κωδικού (αγνοεί εντελώς το startup-config και ανεβαίνει κενή). Και τα δύο είναι μία εντολή show μακριά από το να πιαστούν — επιβεβαίωσε show boot και το register πριν κάνεις reload, όχι μετά.

04

Κανε Reload & Επιβεβαιωσε Επιδραση σε Υπηρεσια

Κάνε reboot μέσα σε παράθυρο συντήρησης, με οπλισμένο timer ασφαλείας σε περίπτωση που η νέα εικόνα δεν γυρίσει όπως περιμένεις. Μετά επιβεβαίωσε ότι πραγματικά τρέχεις τη νέα έκδοση.

IOS — το reload, με αλεξιπτωτο
# Προαιρετικό αλλά σοφό σε απομακρυσμένο εξοπλισμό: όπλισε ένα δίχτυ ασφαλείας ΠΡΙΝ κάνεις reload.
# Αν η συσκευή γυρίσει λάθος και δεν μπορείς να τη διορθώσεις, αυτό την κάνει reload ξανά
# στην (ακόμα παρούσα) παλιά εικόνα μετά το παράθυρο. Ακύρωσέ το αν όλα είναι εντάξει.
SW1# reload in 15          # κράτα ένα re-reload για 15 λεπτά μπροστά
# ... μετά κάνε το πραγματικό reload:
SW1# reload
System configuration has been modified. Save? [yes/no]: yes
Proceed with reload? [confirm]

# --- η συσκευή κάνει reboot στη νέα εικόνα ---

# Επιβεβαίωσε ότι πραγματικά έπιασε η αναβάθμιση, μετά ακύρωσε το δίχτυ ασφαλείας
SW1# show version | include Version
Cisco IOS Software ... Version 15.2(7)E12   ← νέο!
SW1# reload cancel     # όλα καλά — αφόπλισε το αλεξίπτωτο
💡 Αν Γυρισει Λαθος — Κανε Rollback

Επειδή κράτησες την παλιά εικόνα και την έβαλες ως δεύτερη δήλωση boot, το rollback είναι γρήγορο: no boot system flash:...E12.bin για να ρίξεις τη νέα (αφήνοντας την παλιά), write memory, reload — είσαι πίσω στη γνωστή-καλή έκδοση με ένα reboot. Γι' αυτό ακριβώς δεν διαγράφεις την παλιά εικόνα για να κάνεις χώρο. Αν η συσκευή δεν κάνει καθόλου boot, το console + ROMMON (boot flash:...E3.bin από το prompt rommon>) είναι η τελευταία ελπίδα — γι' αυτό ένα καλώδιο console είναι πάντα στην τσάντα.

05

IOS-XE Install Mode — Ο Συγχρονος Δρομος

Τα Catalyst 9000, ISR 4000 και τρέχουσες πλατφόρμες IOS-XE αντικαθιστούν το ζογκλάρισμα boot-system με ένα πακεταρισμένο workflow install που στήνει, ενεργοποιεί, και κάνει commit — με ενσωματωμένο χρονισμένο rollback. Αν το show version λέει IOS-XE, προτίμησε αυτό.

IOS-XE — add, activate (auto-reload), commit
# Επιβεβαίωσε ότι είσαι σε INSTALL mode (όχι BUNDLE) — οι εντολές install το χρειάζονται
SW1# show version | include INSTALL|BUNDLE

# 1. Στήσε το πακέτο σε όλα τα μέλη του stack (καμία επίδραση σε υπηρεσία)
SW1# install add file flash:cat9k_iosxe.17.09.05.SPA.bin

# 2. Ενεργοποίησε — αυτό κάνει reload το switch. "prompt-level none" για scripted·
#    ξεκινάει έναν timer rollback μέσα στον οποίο πρέπει να επιβεβαιώσεις, αλλιώς επαναφέρεται.
SW1# install activate

# --- κάνει reload στη νέα εικόνα ---

# 3. Ικανοποιημένος; Κάνε commit για να το μονιμοποιήσεις και να σταματήσεις το auto-rollback.
SW1# install commit

# Δεν είσαι ικανοποιημένος; Πριν κάνεις commit, γύρνα στην προηγούμενη εικόνα:
SW1# install rollback to committed
SW1# install remove inactive   # αργότερα: πάρε πίσω χώρο από παλιά πακέτα
⚠ Παγιδα — Μην Αναμειγνυεις τα Δυο Modes

Το install-mode και το bundle-mode είναι διαφορετικοί κόσμοι. Σε μια συσκευή IOS-XE που τρέχει σε install mode, το boot system που δείχνει σε ένα ακατέργαστο .bin μπορεί να την αφήσει ασυνεπή· αντίστροφα οι εντολές install δεν κάνουν τίποτα χρήσιμο σε bundle mode. Έλεγξε πρώτα με show version και χρησιμοποίησε το αντίστοιχο workflow. Το μεγάλο πλεονέκτημα του install mode είναι το βήμα commit: η ενεργοποίηση είναι προσωρινή και κάνει auto-rollback αν δεν επιβεβαιώσεις — οπότε μια κακή αναβάθμιση σε απομακρυσμένο switch αναιρείται μόνη της αντί να σε αφήσει κολλημένο. Αυτή η ασφάλεια είναι ο λόγος που είναι το σύγχρονο default.

06

Η Λιστα Ελεγχου Αναβαθμισης

Όλο το post ως runbook. Τύπωσέ το· ακολούθησέ το κάθε φορά· μην παραλείψεις γραμμή.

ΒημαΕντολη / ενεργεια
1 · Επιβεβαίωσε μοντέλο & έκδοσηshow version — πάρε την ακριβή εικόνα για αυτό το μοντέλο + άδεια.
2 · Έλεγξε χώροdir flash: — αρκετός για νέα + κράτα παλιά.
3 · Κάνε backup config & εικόναcopy run tftp:· αντίγραψε την τρέχουσα εικόνα εκτός συσκευής.
4 · Αντίγραψε νέα εικόναcopy tftp: flash:
5 · Επιβεβαίωσε hashverify /md5 flash:... — πρέπει να ταιριάζει με τη Cisco. Μη διαπραγματεύσιμο.
6 · Μεταβλητή bootboot system πρώτα νέα, παλιά δεύτερη· έλεγξε show boot· register 0x2102.
7 · Αποθήκευσεwrite memory
8 · Reload σε παράθυροΌπλισε reload in· reload· επιβεβαίωσε show version· reload cancel.

Συμπερασματα

  1. Ο κίνδυνος δεν είναι η αναβάθμιση, είναι μια συσκευή που δεν κάνει boot. Κάθε βήμα σε αυτό το post υπάρχει για να κρατήσει ένα εφεδρικό OS στη συσκευή και να πιάσει προβλήματα πριν το reboot, όχι μετά.
  2. Επιβεβαίωσε το hash, πάντα. verify /md5 έναντι της δημοσιευμένης τιμής της Cisco. Μια κατεστραμμένη εικόνα που κάνει μισό boot σε ROMMON είναι επίσκεψη στο site· μια ασυμφωνία που πιάνεται στο CLI είναι ένα ξανακατέβασμα.
  3. Το αντίγραφο δεν είναι boot — όρισε τη μεταβλητή boot. Νέα εικόνα πρώτη, παλιά δεύτερη (auto-fallback), επιβεβαίωσε show boot και register 0x2102, και write memory αλλιώς ξεχνιέται.
  4. Κράτα την παλιά εικόνα. Είναι το rollback σου με ένα reboot (no boot system τη νέα, reload). Ποτέ μην τη διαγράψεις για να κάνεις χώρο — κόψε αντ' αυτού αρχεία crash ή αχρησιμοποίητες εικόνες.
  5. Κάνε reload σε παράθυρο με αλεξίπτωτο. Το reload in 15 πριν το πραγματικό reload σε επαναφέρει αν φερθεί άσχημα η νέα εικόνα και δεν μπορείς να τη φτάσεις· reload cancel μόλις επιβεβαιωθεί ότι είναι καλή.
  6. IOS-XE; Χρησιμοποίησε install mode. Το install add/activate/commit στήνει με ασφάλεια και κάνει auto-rollback μέχρι να κάνεις commit — πολύ πιο ασφαλές για απομακρυσμένο εξοπλισμό από το ζογκλάρισμα boot-system.
  7. Είναι η εκδοχή σε επίπεδο OS της πειθαρχίας backup σου. Ίδια νοοτροπία με τα backups config: ποτέ μην αφαιρείς το μόνο λειτουργικό αντίγραφό σου, κράτα πάντα δρόμο πίσω.

Εκκρεμεις αναβαθμισεις Cisco που φοβασαι να τρεξεις στην Κρητη;

Μια αναβάθμιση IOS δεν πρέπει να είναι αυτό που σε κρατάει ξύπνιο ανήσυχο. Τις σχεδιάζω και τις τρέχω σταδιακά σε παράθυρο συντήρησης, επιβεβαιωμένες πρώτα έναντι γνωστών CVE, με έτοιμη διαδρομή rollback πριν το reboot — μαζί με αυτές που κάνουν τον κόσμο νευρικό να τις κάνει απομακρυσμένα.

Κλεισε μια Discovery Call →