Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
home:favogt:combustionusr
openSUSE-MicroOS
onie-installer
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File onie-installer of Package openSUSE-MicroOS
#!/bin/sh # SPDX-FileCopyrightText: 2021 Fabian Vogt <fvogt@suse.de> # SPDX-License-Identifier: GPL-2.0-or-later # busybox supports pipefail set -euo pipefail BASEURL="http://192.168.43.1/" targetdisk=$(blkid | awk -F: '/LABEL="ONIE-BOOT"/ { print $1 }' | sed 's/[0-9]*$//') echo "Installing MicroOS on ${targetdisk}3" echo "Creating partition" if [ "$(onie-sysinfo -t)" = "gpt" ] || [ "$(onie-sysinfo -t)" = "uefi" ]; then if [ -e "${targetdisk}3" ]; then # Drop the old partition gdisk "${targetdisk}" <<EOF >/dev/null d 3 w Y q EOF fi # Create a new partition with max size. gdisk "${targetdisk}" <<EOF >/dev/null p n 3 +0 -0 8300 p w Y q EOF else # msdos not implemented yet exit 1 fi partprobe if ! [ -e "${targetdisk}3" ]; then echo "No partition 3?" exit 1 fi echo "Writing root partition..." wget -O - "${BASEURL}/rootpart.xz" | xz -d | dd "of=${targetdisk}3" bs=1M 2>/dev/null echo "Writing bootloader..." if [ "$(onie-sysinfo -l)" = "bios" ]; then # Write the grub core image into the bios boot partition wget -O /tmp/biospart "${BASEURL}/biospart" dd if=/tmp/biospart of=${targetdisk}1 2>/dev/null else # Call shim-install inside a chroot mnt="$(mktemp -d)" mount -o ro "${targetdisk}3" "${mnt}" dirs="tmp dev sys proc sys/firmware/efi/efivars boot/efi" for i in $dirs; do mount --bind "/${i}" "${mnt}/${i}" done # grub2-install needs write access, but calling it is actually not needed here mount --bind "${mnt}/usr/bin/true" "${mnt}/usr/sbin/grub2-install" chroot $mnt shim-install >/dev/null # Busybox does not support umount -R :-( umount "${mnt}/usr/sbin/grub2-install" for i in $(printf '%s\n' $dirs | tac); do umount "${mnt}/${i}" done umount "${mnt}" fi onie-nos-mode -s echo "Installation complete!"
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor