Question

ONIE install failure

  • 5 September 2019
  • 10 replies
  • 220 views

Hi,

Trying to do an ONIE install with a Cumulus VX 3.7.8 image (for vsphere), the ONIE installer boots, I receive an IP address from the DHCP and the installer is fetching the image I am trying to install from my http server.

The initial checks are ok : checksum, archive, compatibility, ram however when trying to setup the installer it gives an error msg that he can't find a storage device for the file-system with name ONIE-BOOT.

Any hints where I need to be looking at to resolve this?

cheers

Alexander


10 replies

Userlevel 3
What version of VX was already running when you tried the ONIE upgrade to 3.7.8?

And what ONIE version (get it from onie-sysinfo, if I remember right)?

The complaint is that the virtual disk doesn't appear to be partitioned correctly, or if partitioned, doesn't have the expected partition labels.

What does 'sgdisk -p /dev/sda' show?

VX ONIE installs should work, but it's not widely used, so it's possible that we missed some bug.
Hi Dave,

Thanks for the feedback!

The current version that is running is 3.7.8 (just simulating an ONIE-install and the steps to take) and one version :

cumulus@cumulus:~$ grep ^onie_version /mnt/onie/grub/grub.cfg
onie_version=2018.08

cumulus@cumulus:~$ sudo sgdisk -p /dev/sda
[sudo] password for cumulus:
Disk /dev/sda: 12582912 sectors, 6.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 8DFB4D2E-058E-44D8-B421-89C161E03DB0
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 12582878
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02 GRUB-BOOT
2 6144 268287 128.0 MiB 3000 ONIE-BOOT
3 268288 530431 128.0 MiB 8300 CL-BOOT
4 530432 12582878 5.7 GiB 8300 CL-SYSTEM

As mentioned I am simulating booting into ONIE and do an update to learn.

cheers

Alexander
Userlevel 3
Hmm. All of that looks right.

I'd suggest using wget or curl (I forget which is present in onie) to download the install image, and then run the install image as

./onie-installer --debug

That might provide insight into what is failing.
Hey Dave,

Just tried executing the file with --debug and it fails with the same msg. :/



cheers

Alexander
Userlevel 3
Please capture the entire upgrade output. The tail end in a picture isn't enough, unfortunately.

You can login to the VM through a serial console connection, and that way we can see the whole thing. Or you can open a support case, and somebody from support can perhaps watch the whole install with you via screen sharing.
ONIE:/ # ./onie-installer --debug
+ export CL_INSTALLER_DEBUG=yes
+ shift
+ true
+ shift
+ break
+ rc=0
+ realpath ./onie-installer
+ image=/onie-installer
+ installer_default_action
+ local defaction=info
+ test -x /bin/onie-sysinfo
+ defaction=install
+ test -n
+ echo install
+ return 0
+ action=install
+ export CL_INSTALLER_ENV=cumulus
+ test -x /bin/onie-sysinfo
+ export CL_INSTALLER_ENV=onie
+ test 0 -gt 0
+ require_superuser
+ id -u
+ test 0 = 0
+ mktemp -d
+ extractdir=/tmp/tmp.sgm2UQ
+ id -u
+ test 0 = 0
+ mount -t tmpfs tmpfs-installer /tmp/tmp.sgm2UQ
+ payload_install /onie-installer /tmp/tmp.sgm2UQ
+ local image=/onie-installer
+ shift
+ local tmp_dir=/tmp/tmp.sgm2UQ
+ shift
+ local minsize=
+ local rc=
+ payload_extract /onie-installer /tmp/tmp.sgm2UQ yes
+ local image=/onie-installer
+ local extract_dir=/tmp/tmp.sgm2UQ
+ local machine_verify=yes
+ pwd
+ local cwd=/
+ [ -d ]
+ test ! -d /tmp/tmp.sgm2UQ
+ CL_INSTALLER_EXTRACTDIR=/tmp/tmp.sgm2UQ
+ payload_verify /onie-installer
+ local image=/onie-installer
+ loginfo -n Verifying image checksum ...
+ test -n
+ echo -n Verifying image checksum ...
Verifying image checksum ...+ sed -e+ 1,/^exit_marker$/d /onie-installer
sha256sum
+ awk { print $1 }
+ local sha256=842de79a5b05af49223a72929bf411b9101acc3f9e6e18fd3c094faede819902
+ test 842de79a5b05af49223a72929bf411b9101acc3f9e6e18fd3c094faede819902 != 842de79a5b05af49223a72929bf411b9101acc3f9e6e18fd3c094faede819902
+ loginfo OK.
+ test -n
+ echo OK.
OK.
+ return 0
+ cd /tmp/tmp.sgm2UQ
+ loginfo -n Preparing image archive ...
+ test -n
+ echo -n Preparing image archive ...
Preparing image archive ...+ sed -e 1,/^exit_marker$/d /onie-installer
+ tar xf -
+ test 0 -ne 0
+ loginfo OK.
+ test -n
+ echo OK.
OK.
+ cd /
+ test yes = yes
+ machine_verify
+ get_control_field Architecture
+ local fieldname=Architecture
+ grep -e ^Architecture: /tmp/tmp.sgm2UQ/control+
sed -e s/^[[:space:]]*// -e s/[[:space:]]*$//
+ head -n 1
+ awk -F : {print $2}
+ local payload_cpu=amd64
+ get_control_field Switch-Architecture
+ local fieldname=Switch-Architecture
+ grep -e ^Switch-Architecture: /tmp/tmp.sgm2UQ/control
+ sed -e s/^[[:space:]]*// -e s/[[:space:]]*$//
+ awk -F : {print $2}
+ head -n 1
+ local payload_arch=vx-amd64
+ local payload_role=vx
+ local machine_cpu=
+ local machine_role=
+ local machine_arch=
+ uname -m
+ machine_cpu=amd64
+ onie-sysinfo -m
+ machine_role=vx
+ machine_arch=vx-amd64
+ loginfo -n Verifying image compatibility ...
+ test -n
+ echo -n Verifying image compatibility ...
Verifying image compatibility ...+ [ amd64 != amd64 ]
+ image_valid=no
+ [ vx = vx -o vx = ts -o vx = tscloud ]
+ image_valid=yes
+ [ yes = no ]
+ export CL_INSTALLER_ARCH=amd64
+ export CL_INSTALLER_ROLE=vx
+ loginfo OK.
+ test -n
+ echo OK.
OK.
+ loginfo -n Verifying system ram ...
+ test -n
+ echo -n Verifying system ram ...
Verifying system ram ...+ get_control_field Min-Ram-Size
+ local fieldname=Min-Ram-Size
+ grep -e ^Min-Ram-Size: /tmp/tmp.sgm2UQ/control
+ sed -e s/^[[:space:]]*// -e s/[[:space:]]*$//
+ awk -F : {print $2}
+ head -n 1
+ local minram=536870912
+ grep -e ^MemTotal: /proc/meminfo
+ head -n 1
+ awk {print $2}
+ local sysram=1020692
+ sysram=1045188608
+ test -n -a 1045188608 -lt 536870912
+ loginfo OK.
+ test -n
+ echo OK.
OK.
+ return 0
+ return 0
+ export CL_INSTALLER_ROOT=/tmp/tmp.sgm2UQ
+ export CL_INSTALLER_QUIET=
+ get_control_field Min-Disk-Size
+ local fieldname=Min-Disk-Size
+ grep -e ^Min-Disk-Size: /tmp/tmp.sgm2UQ/control
+ sed -e s/^[[:space:]]*// -e s/[[:space:]]*$//
+ awk -F : {print $2}
+ head -n 1
+ minsize=1073741824
+ loginfo -n Setting up installer ...
+ test -n
+ echo -n Setting up installer ...
Setting up installer ...+ /tmp/tmp.sgm2UQ/embedded-installer/install 1073741824
Debug: detected platform from onie-sysinfo: x86_64-cumulus_vx-r0
Debug: detected platform trimmed: cumulus_vx
Debug: Installer Environment:
Debug: CL_INSTALLER_ROOT: '/tmp/tmp.sgm2UQ'
Debug: CL_INSTALLER_ENV: 'onie'
Debug: CL_INSTALLER_QUIET: ''
Debug: CL_INSTALLER_DEBUG: 'yes'
Debug: CL_INSTALLER_DRYRUN: ''
Debug: CL_INSTALLER_ARCH: 'amd64'
Debug: CL_EMBEDDED_ROOT: '/tmp/tmp.sgm2UQ/embedded-installer'
Failure: Unable to find storage device for file system with label 'ONIE-BOOT'
Info: Check the output of 'blkid'.
Info: The full install log is located at /tmp/ei_runlog.XXsewRQF
+ rc=1
+ test 0 -ne 1
+ return 1
+ rc=1
+ test 0 -ne 1
+ cleanup /tmp/tmp.sgm2UQ
+ local tmp_dir=/tmp/tmp.sgm2UQ
+ id -u
+ test 0 = 0
+ umount /tmp/tmp.sgm2UQ
+ rm -rf /tmp/tmp.sgm2UQ
+ exit 1
ONIE:/ #
Userlevel 3
OK, I'd hoped for more info. Since we've already verified with sgdisk that things look right, I don't expect much, but please also run
findfs LABEL=ONIE-BOOT
echo $?
blkid
blkid -k | egrep -i 'btrfs|ext'

Add their output
Hi Dave,

Surprisingly not much output :

ONIE:/ # findfs LABEL=ONIE-BOOT
ONIE:/ # echo $?
1
ONIE:/ # blkid
ONIE:/ # blkid -k | egrep -i 'btrfs|ext'
ONIE:/ #

cheers

Alexander
Userlevel 3
OK, that means something is wrong with the ONIE environment, since explicitly listing /dev/sda with sgdisk works, but blkid can't find sda, and neither can findfs. blkid might be completely broken, since it won't even list the supported filesystem types.

Or perhaps that version ONIE was built incorrectly, although that seems unlikely.

Most likely a hypervisor problem, though.

vsphere should work, but maybe there is an incompatibility with the version you are using. Did you do anything to the OVA image before the install that gave you the ONIE environment you are trying?

You could try under kvm/qemu, or virtualbox (starting from scratch) and see if you get the same results.

Failing that, if you have a support account with Cumulus, open a support case.
Hi Dave,

Just downloaded the .ova file from the Cumulus site, no changes were done when importing the ova. It is unfortunate that this is happening, just simulating and learning the product.

If it is a hypervisor issue, it can be easily reproduced by the Cumulus team and although I agree the use cases that you are running this as a VM and upgrading it might not be often but still they exists.

Anyways thank you for the help Dave,

cheers

Alexander

Reply