This Is Not The Flash You Are Looking For

A while back, I was trying to install an IOS-XE update on an ASR1001 and run into something weird.

asr1001#request platform software package expand file ?
 bootflash: RP-relative file path
 flash: RP-relative file path

OK, sounds good, right? Nothing obviously weird, until you discover that only bootflash: actually works… Let me show why this is really confusing.

asr1001#request platform software package expand file flash:?
flash:.installer
flash:.prst_sync
flash:.rollback_timer
flash:archive
flash:asr1000-rommon.153-1r.S.pkg
flash:asr1001-universalk9.03.09.00.S.153-2.S.bin
flash:asr1001-universalk9.03.11.00.S.154-1.S-std.bin
flash:core
flash:lost+found
flash:pp-adv-asr1k-153-1.S-14-4.0.0.pack
flash:pp-adv-asr1k-154-1.S-17-8.0.0.pack
flash:tracelogs
flash:vman_fdb

asr1001#request platform software package expand file bootflash:?
bootflash:.installer
bootflash:.prst_sync
bootflash:.rollback_timer
bootflash:archive
bootflash:asr1000-rommon.153-1r.S.pkg
bootflash:asr1001-universalk9.03.09.00.S.153-2.S.bin
bootflash:asr1001-universalk9.03.11.00.S.154-1.S-std.bin
bootflash:core
bootflash:lost+found
bootflash:pp-adv-asr1k-153-1.S-14-4.0.0.pack
bootflash:pp-adv-asr1k-154-1.S-17-8.0.0.pack
bootflash:tracelogs
bootflash:vman_fdb

It looks like either one should work, doesn’t it? Let’s see what happens if you choose incorrectly.

asr1001#request platform software package expand file \
     flash:asr1001-universalk9.03.11.00.S.154-1.S-std.bin to flash:test
/usr/binos/conf/provfunc.sh: line 1991: cd: flash: No such file or directory
Verifying parameters
  FAILED: Specified package file flash:asr1001-universalk9.03.11.00.S.154-1.S-std.bin does not exist

This can lead to a bunch of wasted time replacing images, verifying checksums, and scratching your head. Then you finally try bootflash…

asr1001#request platform software package expand \
     file bootflash:asr1001-universalk9.03.11.00.S.154-1.S-std.bin to bootflash:test
Verifying parameters
Validating package type
Copying package files
SUCCESS: Finished expanding all-in-one software package.

Yep. Pretty annoying. Check out the directory listings. (I’m doing the directory listings in this odd way so they fit my WordPress theme better, just in case you were wondering.)

asr1001#dir bootflash:test/?
bootflash:test/asr1001-espbase.03.11.00.S.154-1.S-std.pkg
bootflash:test/asr1001-packages-universalk9.03.11.00.S.154-1.S-std.conf
bootflash:test/asr1001-rpaccess.03.11.00.S.154-1.S-std.pkg
bootflash:test/asr1001-rpbase.03.11.00.S.154-1.S-std.pkg
bootflash:test/asr1001-rpcontrol.03.11.00.S.154-1.S-std.pkg
bootflash:test/asr1001-rpios-universalk9.03.11.00.S.154-1.S-std.pkg
bootflash:test/asr1001-sipbase.03.11.00.S.154-1.S-std.pkg
bootflash:test/asr1001-sipspa.03.11.00.S.154-1.S-std.pkg
bootflash:test/packages.conf

asr1001#dir flash:test/?
flash:test/asr1001-espbase.03.11.00.S.154-1.S-std.pkg
flash:test/asr1001-packages-universalk9.03.11.00.S.154-1.S-std.conf
flash:test/asr1001-rpaccess.03.11.00.S.154-1.S-std.pkg
flash:test/asr1001-rpbase.03.11.00.S.154-1.S-std.pkg
flash:test/asr1001-rpcontrol.03.11.00.S.154-1.S-std.pkg
flash:test/asr1001-rpios-universalk9.03.11.00.S.154-1.S-std.pkg
flash:test/asr1001-sipbase.03.11.00.S.154-1.S-std.pkg
flash:test/asr1001-sipspa.03.11.00.S.154-1.S-std.pkg
flash:test/packages.conf

So, just remember to use bootflash and you’ll save yourself some headache and confusion!

FIN