Issue mount USB drive while trying to do a serial console install of OpernWrt on a Ubiquiti EdgeRouter 4

Hello,
I ran into the issue to mount the USB drive with the sysupgrade image for running sysupgrade.
I have

I did
Easy installation via Serial and USB

Get the appropriate RJ45 Console Port cable (see below for details)
Create a USB Drive with a single FAT32 partition (32MB should be adequate).
Download octeon-er-initramfs-kernel.bin from either current or snapshot release onto the USB Drive – You can rename the file to initramfs-kernel.bin
Download octeon-er-squashfs-sysupgrade.tar from either current or snapshot release onto the USB Drive - You can rename the file to sysupgrade.tar

Note: I did the rename's.

Connect the Console Cable
Start a Terminal-Client (8N1 115200 Baud), for example by running screen /dev/ttyUSB0 115200

Note:

  • I used putty - worked fine

  • I connected as "ubnt" user and did a "reboot" command and then did hold the enter key while the device was rebooting.

    Immediately hold down the enter key on your keyboard.
    This should halt the boot process and give you a Bootloader-Prompt Octeon ubnt_e200# (If the device continues to boot try again).

Yup - got this
Read the initramfs-kernel.bin file from USB into RAM as below:

Octeon ubnt_e200# usb start
(Re)start USB...
USB:   USB EHCI 1.00
scanning bus for devices... 2 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Octeon ubnt_e200# usb part 0

Partition Map for USB device 0  --   Partition Type: DOS

Partition     Start Sector     Num Sectors     Type
    1                 2048        15824896       b
Octeon ubnt_e200# fatload usb 0:1 0x20000000 initramfs-kernel.bin
reading initramfs-kernel.bin

14688528 bytes read
Octeon ubnt_e200# bootoctlinux 0 numcores=2 endbootargs mem=0

Did "bootoctlinux 0 numcores=4 endbootargs mem=0"

A minimal OpenWrt environment will boot from RAM. Wait until the boot finishes and hit Enter. It should appear similar to below:

BusyBox v1.30.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 19.07.4, r11208-ce6496d796
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------

Yup, got this.
Now I did:

  • boot process should finish and you will be greeted with console after pressing enter
    • create directory to mount usb flash drive to by typing:
      mkdir /tmp/sda
    • mount flash drive to that directory by typing:
      mount /dev/sda1 /tmp/sda

NOW here is the problem: the mount command couldn't find the "/dev/sda1" device.
My assumption is, that the name of my USB drive is different from "/dev/sda1".
How can I find the name of my USB drive?

Or do I use the wrong USB drive? But why can I read "initramfs-kernel.bin" from it and can boot from it?

Any ideas/suggestion are appreciated!
Thanks very much!
Gunter

Are there partitions created on the drive?
If not, the name might be /dev/sda

Otherwise ls -l /dev/sd*

Hello Frollic,
Thanks very much for your reply.
I actually bought a new Kingston DataTraveler 100 G3 USB stick today, because I thought maybe there is an issue with the USB stick from yesterday.
Anyway the Kingston came with a single fat32 partition.
Anyways same effects like yesterday,
Booting "initramfs-kernel" was fine, but couldn't mount "/dev/sda"
Of course there was no sd? device file in "/dev".

Sorry too lazy to post a picture.
Then it struck me: the RamFS is a FULL OpenWRT system.
SO I change the IP Number of my laptop to "192.168.1.4" and SCP "openwrt-21.02.0-octeon-ubnt_edgerouter-4-squashfs-sysupgrade.tar" to "/tmp" of the Memory and then run "sysupdate /tmp/penwrt-21.02.0-octeon-ubnt_edgerouter-4-squashfs-sysupgrade.tar"

This worked fine. Now I have a Ubiquiti EdgeRouter 4 router running OpenWrt:

System

Hostname OpenWrt
Model Ubiquiti EdgeRouter 4
Architecture UBNT_E300 (CN7030p1.2-1000-AAP)
Firmware Version OpenWrt 21.02.0 r16279-5cc0535800 / LuCI openwrt-21.02 branch git-21.231.26241-422c175
Kernel Version 5.4.143

Thanks very much for your help!
Thanks,
Gunter

1 Like

Had same issue applying 21.02.2 to ER4. Used this method to complete the install but found that 21.02.2 was unstable, failing to retain configuration changes such as configuring new network interface or VPN settings. Interface appeared to be installed but after rebooting, config appeared with default settings as on first install.
Any clues please?

Thanks,
Andrew

The initramfs build stores everything in RAM thus it will go back to defaults every boot. Make sure you have upgraded to the sysupgrade build.

If it is running the sysupgrade, try a firstboot command to re-format the flash. Then check the log for any flash related errors.

Thank you very much. I think something went wrong with the initial flash so I am now successfully saving config changes. However, I am finding that all VLAN settings are unsuccessful. I am wondering whether there are any software modules that need additionally installing in order for the VLAN functionality to be enabled on the ER4 or perhaps there are basic settings needed that cannot be performed via LUCI.

I don't know if this platform is DSA or swconfig. Is there a Network->Switch page?

In either case, everything you need to run VLANs will be in the release build and operable through LuCI, but it is set up differently.

DSA.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.