I was upgrading the Cisco SD-WAN routers recently. According the Cisco, to manually up upgrade the ASR1002-HX via USB stick. The USB must not bigger than 32GB and must be formatted in FAT32 format.
Anyways I have I spare USB 32GB laying around and planning to upgrade my VyOS router/firewall via USB stick. I thought I would post how to create a partition and format the USB stick to FAT32.
Plug the USB stick to the laptop then locate the location of the USB stick. We can use lsblk or fdisk -l. This post we are working on /dev/sdb
. Yours is probably different, so make sure you pick the correct one.
fdisk -l ... ... omitted for brevity ... Disk /dev/sdb: 57.72 GiB, 61958258688 bytes, 121012224 sectors Disk model: USB 3.0 FD Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x6e460c94 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 121012223 121010176 57.7G b W95 FAT32
Back to partitioning and formating using fdisk
. Just in case, Ubuntu flavors should already have the dosfstools installed if you do not have it. It can be install via apt.
sudo apt install -y dosfstools
Ensure that USB stick has been unmounted: sudo umount /dev/sdb1
; otherwise, continue and select the current USB stick
fdisk /dev/sdb # The p option would print the partition of /dev/sdb Command (m for help): p Disk /dev/sdb: 57.72 GiB, 61958258688 bytes, 121012224 sectors Disk model: USB 3.0 FD Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x6e460c94 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 121012223 121010176 57.7G b W95 FAT32
Now that we know that this is the USB stick, delete the partition by entering d
Command (m for help): d Selected partition 1 Partition 1 has been deleted. Command (m for help):
Create a new partition by using the n option. Keep all the default options
Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): First sector (2048-121012223, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-121012223, default 121012223): Created a new partition 1 of type 'Linux' and of size 57.7 GiB. Partition #1 contains a vfat signature. Do you want to remove the signature? [Y]es/[N]o: Y The signature will be removed by a write command. Command (m for help):
Change the partition type by selecting t.
Command (m for help): t Selected partition 1 Hex code (type L to list all codes): b Changed type of partition 'Linux' to 'W95 FAT32'. Command (m for help):
Write the changes by entering w. If you get the message below, it means that the USB is mounted. Make to unmount the USB first and redo the process from fdisk /dev/sdb section of this post.
# Output with error Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Device or resource busy The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8). # Must unmount the USB stick sudo umount /dev/sdb1 # This should be the correct output Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
Verify the US stick using the fdisk -l command.
sudo fdisk -l /dev/sdb Disk /dev/sdb: 57.72 GiB, 61958258688 bytes, 121012224 sectors Disk model: USB 3.0 FD Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x6e460c94 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 121012223 121010176 57.7G b W95 FAT32
Now that we have partitioned the USB stick, we need to format it to FAT32.
sudo mkfs -t fat -F 32 /dev/sdb1 mkfs.fat 4.1 (2017-01-24)
And we are done. Below is optional, but if you want to change the label of the USB stick, install mtools from the apt repository. This will allow us to rename the USB stick with the FAT32 format.
# Install mtools sudo apt install -y mtools # Check the current label sudo mlabel -i /dev/sdb1 -s :: # Change the label sudo mlabel -i /dev/sdb1 ::fat32_usb
Cheers!