Update doc/getting-started/gsg_quick_setup.sh
Co-Authored-By: lirui34 <48583653+lirui34@users.noreply.github.com>
This commit is contained in:
parent
64f74b76d6
commit
1312fc6f33
|
@ -3,37 +3,46 @@
|
|||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
#
|
||||
# This script provides a quick and automatic setup of the SOS or UOS.
|
||||
# You can also upgrade the SOS or UOS with a specified Clear Linux version.
|
||||
# Also you should know that system may have boot problems once the script is running failed
|
||||
# since it will modify various system parameters with full root access.
|
||||
# You should run this script with root privilege since it will modify various system parameters.
|
||||
#
|
||||
# Note:
|
||||
# This script is using /dev/sda1 as default EFI System Partition (ESP).
|
||||
# The ESP may be different based on your hardware.
|
||||
# It will typically be something like /dev/mmcblk0p1 on platforms that have an on-board eMMC
|
||||
# Or /dev/nvme0n1p1 if your system has a non-volatile storage media attached via a PCI Express (PCIe) bus (NVMe).
|
||||
# You should edit it to the right ESP before running this script.
|
||||
# For example, you should change 'efi_partition' as following if you are using NVMe:
|
||||
# efi_partition=/dev/nvme0n1p1
|
||||
#
|
||||
# Usages:
|
||||
# Upgrade sos to 28100
|
||||
# sudo <script> -t 28100
|
||||
# Upgrade sos to 28100 with specified proxy server
|
||||
# sudo <script> -t 28100 -p <your proxy server>:<port>
|
||||
# Upgrade uos to 28100 with specified proxy server
|
||||
# sudo <script> -t 28100 -p <your proxy server>:<port> -u
|
||||
# Upgrade uos to 28100 without downloading uos image, you should put uos image in /root directory previously.
|
||||
# sudo <script> -t 28100 -u -s
|
||||
|
||||
# Upgrade SOS to 28100 without reboot, it's highly recommended so that you can check configurations after upgrade SOS.
|
||||
# sudo <script> -s 28100 -d
|
||||
# Upgrade SOS to 28100 with specified proxy server
|
||||
# sudo <script> -s 28100 -p <your proxy server>:<port>
|
||||
# Upgrade UOS to 28100 with specified proxy server
|
||||
# sudo <script> -u 28100 -p <your proxy server>:<port>
|
||||
# Upgrade UOS to 28100 without downloading UOS image, you should put UOS image in /root directory previously.
|
||||
# sudo <script> -u 28100 -k
|
||||
|
||||
function print_help()
|
||||
{
|
||||
echo "Usage:"
|
||||
echo "Launch this script as: sudo $0 -t 28100"
|
||||
echo -e "\t-t to specify clear linux version for upgrading"
|
||||
echo -e "\t-p to specify a proxy server"
|
||||
echo -e "\t-m to use swupd mirror url"
|
||||
echo -e "\t-u to upgrade UOS."
|
||||
echo -e "\t-s, skip downloading uos; if enabled, you have to download uos img firstly before upgrading, default is off"
|
||||
exit 1
|
||||
echo "Usage:"
|
||||
echo "Launch this script as: sudo $0 -s 28100"
|
||||
echo -e "\t-s to upgrade SOS"
|
||||
echo -e "\t-u to upgrade UOS"
|
||||
echo -e "\t-p to specify a proxy server"
|
||||
echo -e "\t-m to use swupd mirror url"
|
||||
echo -e "\t-k to skip downloading UOS; if enabled, you have to download UOS img firstly before upgrading, default is off"
|
||||
echo -e "\t-d to disable reboot device so that you can check the configurations after upgrading SOS"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# switch for download uos function
|
||||
# get clear linux version previously
|
||||
source /etc/os-release
|
||||
# switcher for download UOS function
|
||||
skip_download_uos=0
|
||||
# turn on if you need to setup uos
|
||||
upgrade_uos=0
|
||||
# switcher for disabling reboot device
|
||||
disable_reboot=0
|
||||
|
||||
# acrn.conf path
|
||||
acrn_conf_path=/usr/share/acrn/samples/nuc/acrn.conf
|
||||
|
@ -42,208 +51,188 @@ acrn_efi_path=/usr/lib/acrn/acrn.efi
|
|||
|
||||
function upgrade_sos()
|
||||
{
|
||||
# setup mirror and proxy url while specified with m and p options
|
||||
if [[ -n $mirror ]]; then
|
||||
echo "Setting swupd mirror to: $mirror"
|
||||
swupd mirror -s $mirror
|
||||
fi
|
||||
if [[ -n $proxy ]]; then
|
||||
echo "Setting proxy to: $proxy"
|
||||
export https_proxy=$proxy
|
||||
fi
|
||||
# Check SOS version
|
||||
[[ `echo $sos_ver | awk '{print length($0)}'` -ne 5 ]] && echo "Please input right SOS version to upgrade" && exit 1
|
||||
[[ $VERSION_ID -gt $sos_ver ]] && echo "You're trying to install an older version of Clear Linux." && exit 1
|
||||
|
||||
# get partitions
|
||||
type_efi=EFI\ System
|
||||
partition_number=`fdisk -l | grep "$type_efi" | awk -F' ' '{print $1}' | wc -l`
|
||||
if [ $partition_number != "1" ]; then
|
||||
echo "Multiple partitions detected."
|
||||
c=0
|
||||
for i in `fdisk -l | grep "$type_efi" | awk -F' ' '{print $1}'`; do
|
||||
if [[ ! -z $efi_partition ]]; then break; fi
|
||||
c=$((c+1))
|
||||
echo "$c. $i"
|
||||
while true; do
|
||||
read -p "Do you wish to setup on this partition ? (Y/N)" yn
|
||||
case $yn in
|
||||
[Yy]* ) efi_partition=$i; break;;
|
||||
[Nn]* ) break;;
|
||||
* ) echo "Please input yes or no.";;
|
||||
esac
|
||||
done
|
||||
done
|
||||
else
|
||||
efi_partition=`fdisk -l | grep "$type_efi" | awk -F' ' '{print $1}'`
|
||||
fi
|
||||
echo "Upgrading SOS..."
|
||||
|
||||
if [[ -z $efi_partition ]]; then echo "You didn't choose a partition, please try it again."; exit 1; fi
|
||||
efi_mount_point=`findmnt $efi_partition -n | cut -d' ' -f1`
|
||||
root_partition=`echo $efi_partition | sed 's/[0-9]$/3/g'`
|
||||
partition=`echo $efi_partition | sed 's/[0-9]$//g'`
|
||||
# unmount efi partition if it's already mounted
|
||||
if [[ -n $efi_mount_point ]]; then
|
||||
echo "Unmount EFI partition: $efi_mount_point..."
|
||||
umount $efi_mount_point
|
||||
fi
|
||||
# setup mirror and proxy url while specified with m and p options
|
||||
[[ -n $mirror ]] && echo "Setting swupd mirror to: $mirror" && swupd mirror -s $mirror
|
||||
[[ -n $proxy ]] && echo "Setting proxy to: $proxy" && export https_proxy=$proxy
|
||||
|
||||
echo "Disable auto update..."
|
||||
swupd autoupdate --disable
|
||||
# You should set EFI path before upgrading SOS.
|
||||
efi_partition=/dev/sda1
|
||||
# Check EFI path exists.
|
||||
[[ ! -b $efi_partition ]] && echo "Please choose the right EFI path firstly." && exit 1
|
||||
efi_mount_point=`findmnt $efi_partition -n | cut -d' ' -f1`
|
||||
root_partition=`echo $efi_partition | sed 's/1$/3/g'`
|
||||
partition=`echo $efi_partition | sed 's/1$//g;s/p$//g'`
|
||||
|
||||
# Compare with current clear linux and skip upgrade sos if get the same version.
|
||||
source /etc/os-release
|
||||
if [[ $VERSION_ID -eq $target_version ]]; then
|
||||
echo "Clear Linux version $target_version is already installed. Continuing to setup SOS..."
|
||||
else
|
||||
echo "Upgrading Clear Linux version from $VERSION_ID to $target_version ..."
|
||||
swupd verify --fix --picky -m $target_version
|
||||
fi
|
||||
echo "Disable auto update..."
|
||||
swupd autoupdate --disable 2>/dev/null
|
||||
|
||||
# Do the setups if previous process succeed.
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo "Add service-os kernel-iot-lts2018 bundle"
|
||||
swupd bundle-add service-os kernel-iot-lts2018
|
||||
|
||||
mount $efi_partition /mnt
|
||||
echo "Add /mnt/EFI/acrn folder"
|
||||
mkdir -p /mnt/EFI/acrn
|
||||
echo "Copy $acrn_conf_path /mnt/loader/entries/"
|
||||
if [[ ! -f $acrn_conf_path ]]; then
|
||||
echo "Missing acrn.conf file in folder: $acrn_conf_path"
|
||||
umount /mnt && sync
|
||||
exit 1
|
||||
fi
|
||||
cp -r $acrn_conf_path /mnt/loader/entries/
|
||||
if [[ $? -ne 0 ]]; then echo "You didn't choose an right EFI partition." && exit 1; fi
|
||||
echo "Copy $acrn_efi_path to /mnt/EFI/acrn"
|
||||
if [[ ! -f $acrn_efi_path ]]; then
|
||||
echo "Missing acrn.efi file in folder: $acrn_efi_path"
|
||||
umount /mnt && sync
|
||||
exit 1
|
||||
fi
|
||||
cp -r $acrn_efi_path /mnt/EFI/acrn/
|
||||
echo "Check ACRN efi boot event"
|
||||
check_acrn_bootefi=`efibootmgr | grep ACRN`
|
||||
if [[ "$check_arcn_bootefi" -ge "ACRN" ]]; then
|
||||
echo "Clean all ACRN efi boot event"
|
||||
efibootmgr | grep ACRN | cut -d'*' -f1 | cut -d't' -f2 | xargs -i efibootmgr -b {} -B
|
||||
fi
|
||||
echo "Check linux bootloader event"
|
||||
number=$(expr `efibootmgr | grep 'Linux bootloader' | wc -l` - 1)
|
||||
if [[ $number -ge 1 ]]; then
|
||||
echo "Clean all Linux bootloader event"
|
||||
efibootmgr | grep 'Linux bootloader' | cut -d'*' -f1 | cut -d't' -f2 | head -n$number | xargs -i efibootmgr -b {} -B
|
||||
fi
|
||||
|
||||
echo "Add new ACRN efi boot event"
|
||||
efibootmgr -c -l "\EFI\acrn\acrn.efi" -d $partition -p 1 -L "ACRN"
|
||||
|
||||
echo "Create loader.conf"
|
||||
mv /mnt/loader/loader.conf /mnt/loader/loader.conf.bck && touch /mnt/loader/loader.conf
|
||||
echo "Add default boot wait time"
|
||||
echo "timeout 5" > /mnt/loader/loader.conf
|
||||
echo "Add default boot to ACRN"
|
||||
echo "default acrn" >> /mnt/loader/loader.conf
|
||||
|
||||
new_kernel=`ls /mnt/EFI/org.clearlinux/*sos* -tl | grep kernel | head -n1 | awk -F'/' '{print $5}'`
|
||||
echo "Getting latest Service OS kernel version: $new_kernel"
|
||||
cur_kernel=`cat /mnt/loader/entries/acrn.conf | sed -n 2p | cut -d'/' -f4`
|
||||
echo "Getting current Service OS kernel version: $cur_kernel"
|
||||
|
||||
echo "Replacing root partition uuid in acrn.conf"
|
||||
sed -i "s/<UUID of rootfs partition>/`blkid -s PARTUUID -o value $root_partition`/g" /mnt/loader/entries/acrn.conf
|
||||
|
||||
if [[ "$cur_kernel" == "$new_kernel" ]]; then
|
||||
echo "No need to replace kernel conf info"
|
||||
# Compare with current clear linux and skip upgrade SOS if get the same version.
|
||||
if [[ $VERSION_ID -eq $sos_ver ]]; then
|
||||
echo "Clear Linux version $sos_ver is already installed. Continuing to setup SOS..."
|
||||
else
|
||||
echo "Replace with new sos kernel in acrn.conf"
|
||||
sed -i "s/$cur_kernel/$new_kernel/g" /mnt/loader/entries/acrn.conf
|
||||
echo "Upgrading Clear Linux version from $VERSION_ID to $sos_ver ..."
|
||||
swupd verify --fix --picky -m $sos_ver 2>/dev/null
|
||||
fi
|
||||
|
||||
echo "Service OS setup done!"
|
||||
echo "Rebooting Service OS to taking effect changes."
|
||||
else
|
||||
echo -e "Fail to upgrade sos $target_clearlinux from mirror url."
|
||||
fi
|
||||
# Do the setups if previous process succeed.
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo "Adding the service-os and kernel-iot-lts2018 bundles..."
|
||||
swupd bundle-add service-os kernel-iot-lts2018 2>/dev/null
|
||||
|
||||
umount /mnt
|
||||
sync
|
||||
reboot
|
||||
mount $efi_partition /mnt
|
||||
echo "Add /mnt/EFI/acrn folder"
|
||||
mkdir -p /mnt/EFI/acrn
|
||||
echo "Copy $acrn_conf_path /mnt/loader/entries/"
|
||||
if [[ ! -f $acrn_conf_path ]]; then
|
||||
echo "Missing acrn.conf file in folder: $acrn_conf_path"
|
||||
umount /mnt && sync
|
||||
exit 1
|
||||
fi
|
||||
cp -r $acrn_conf_path /mnt/loader/entries/
|
||||
if [[ $? -ne 0 ]]; then echo "Fail to copy $acrn_conf_path" && exit 1; fi
|
||||
echo "Copy $acrn_efi_path to /mnt/EFI/acrn"
|
||||
if [[ ! -f $acrn_efi_path ]]; then
|
||||
echo "Missing acrn.efi file in folder: $acrn_efi_path"
|
||||
umount /mnt && sync
|
||||
exit 1
|
||||
fi
|
||||
cp -r $acrn_efi_path /mnt/EFI/acrn/
|
||||
if [[ $? -ne 0 ]]; then echo "Fail to copy $acrn_efi_path" && exit 1; fi
|
||||
echo "Check ACRN efi boot event"
|
||||
check_acrn_bootefi=`efibootmgr | grep ACRN`
|
||||
if [[ "$check_arcn_bootefi" -ge "ACRN" ]]; then
|
||||
echo "Clean all ACRN efi boot event"
|
||||
efibootmgr | grep ACRN | cut -d'*' -f1 | cut -d't' -f2 | xargs -i efibootmgr -b {} -B >/dev/null
|
||||
fi
|
||||
echo "Check linux bootloader event"
|
||||
number=$(expr `efibootmgr | grep 'Linux bootloader' | wc -l` - 1)
|
||||
if [[ $number -ge 1 ]]; then
|
||||
echo "Clean all Linux bootloader event"
|
||||
efibootmgr | grep 'Linux bootloader' | cut -d'*' -f1 | cut -d't' -f2 | head -n$number | xargs -i efibootmgr -b {} -B >/dev/null
|
||||
fi
|
||||
|
||||
echo "Add new ACRN efi boot event"
|
||||
efibootmgr -c -l "\EFI\acrn\acrn.efi" -d $partition -p 1 -L "ACRN" >/dev/null
|
||||
|
||||
echo "Create loader.conf"
|
||||
mv /mnt/loader/loader.conf /mnt/loader/loader.conf.bck && touch /mnt/loader/loader.conf
|
||||
echo "Add default (5 seconds) boot wait time"
|
||||
echo "timeout 5" > /mnt/loader/loader.conf
|
||||
echo "Add default boot to ACRN"
|
||||
echo "default acrn" >> /mnt/loader/loader.conf
|
||||
|
||||
new_kernel=`ls /mnt/EFI/org.clearlinux/*sos* -tl | grep kernel | head -n1 | awk -F'/' '{print $5}'`
|
||||
echo "Getting latest Service OS kernel version: $new_kernel"
|
||||
cur_kernel=`cat /mnt/loader/entries/acrn.conf | sed -n 2p | cut -d'/' -f4`
|
||||
echo "Getting current Service OS kernel version: $cur_kernel"
|
||||
|
||||
echo "Replacing root partition uuid in acrn.conf"
|
||||
sed -i "s/<UUID of rootfs partition>/`blkid -s PARTUUID -o value $root_partition`/g" /mnt/loader/entries/acrn.conf
|
||||
# test replacing succeed or not.
|
||||
if [[ -z `grep $(blkid -s PARTUUID -o value $root_partition) /mnt/loader/entries/acrn.conf` ]]; then
|
||||
echo "Fail to replace root uuid in this file: /mnt/loader/entries/acrn.conf"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$cur_kernel" == "$new_kernel" ]]; then
|
||||
echo "No need to replace kernel conf info"
|
||||
else
|
||||
echo "Replace with new SOS kernel in acrn.conf"
|
||||
sed -i "s/$cur_kernel/$new_kernel/g" /mnt/loader/entries/acrn.conf
|
||||
fi
|
||||
|
||||
echo "Service OS setup done!"
|
||||
else
|
||||
echo "Fail to upgrade SOS to $sos_ver."
|
||||
echo "Please try upgrade SOS with this command:"
|
||||
echo "swupd update -m $sos_ver"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
umount /mnt
|
||||
sync
|
||||
[[ $disable_reboot == 0 ]] && echo "Rebooting Service OS to take effects." && reboot -f
|
||||
}
|
||||
|
||||
function upgrade_uos()
|
||||
{
|
||||
# UOS download link
|
||||
uos_image_link="https://download.clearlinux.org/releases/$target_version/clear/clear-$target_version-kvm.img.xz"
|
||||
# Check UOS version
|
||||
[[ `echo $uos_ver | awk '{print length($0)}'` -ne 5 ]] && echo "Please input right UOS version to upgrade" && exit 1
|
||||
|
||||
# Set proxy if needed.
|
||||
if [[ -n $proxy ]]; then
|
||||
echo "Setting proxy to: $proxy"
|
||||
export https_proxy=$proxy
|
||||
fi
|
||||
echo "Upgrading UOS..."
|
||||
|
||||
if [[ ! -z `findmnt /mnt -n` ]]; then umount /mnt; fi
|
||||
# UOS download link
|
||||
uos_image_link="https://download.clearlinux.org/releases/$uos_ver/clear/clear-$uos_ver-kvm.img.xz"
|
||||
|
||||
# Do upgrade uos process.
|
||||
if [[ $skip_download_uos == 1 ]]; then
|
||||
uos_img_xz=$(find ~/ -name clear-$target_version-kvm.img.xz)
|
||||
uos_img=$(find ~/ -name clear-$target_version-kvm.img)
|
||||
if [[ ! -f $uos_img_xz ]] && [[ ! -f $uos_img ]]; then
|
||||
echo "You should download uos clear-$target_version-kvm.img.xz file firstly." && exit 1
|
||||
# Set proxy if needed.
|
||||
[[ -n $proxy ]] && echo "Setting proxy to: $proxy" && export https_proxy=$proxy
|
||||
# Corrupt script if /mnt is already mounted.
|
||||
if [[ ! -z `findmnt /mnt -n` ]]; then
|
||||
echo "/mnt is already mounted, please unmount it if you want to continue upgrade UOS."
|
||||
exit 1
|
||||
fi
|
||||
if [[ -f $uos_img_xz ]]; then
|
||||
echo "Unxz uos file: $uos_img_xz"
|
||||
unxz $uos_img_xz
|
||||
uos_img=`echo $uos_img_xz | sed 's/.xz$//g'`
|
||||
fi
|
||||
echo "get uos img file: $uos_img"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
uos_partition=`losetup -f -P --show $uos_img`p3
|
||||
|
||||
# Do upgrade UOS process.
|
||||
if [[ $skip_download_uos == 1 ]]; then
|
||||
uos_img_xz=$(find ~/ -name clear-$uos_ver-kvm.img.xz)
|
||||
uos_img=$(find ~/ -name clear-$uos_ver-kvm.img)
|
||||
if [[ -f $uos_img ]] && [[ -f $uos_img.xz ]]; then echo "Moving $uos_img to $uos_img.old."; mv $uos_img $uos_img.old; fi
|
||||
if [[ ! -f $uos_img_xz ]] && [[ ! -f $uos_img ]]; then
|
||||
echo "You should download UOS clear-$uos_ver-kvm.img.xz file firstly." && exit 1
|
||||
fi
|
||||
if [[ -f $uos_img_xz ]]; then
|
||||
echo "Unxz UOS file: $uos_img_xz"
|
||||
unxz $uos_img_xz
|
||||
uos_img=`echo $uos_img_xz | sed 's/.xz$//g'`
|
||||
fi
|
||||
else
|
||||
echo "fail to losetup uos img, please check uos img status" && exit 1
|
||||
cd ~
|
||||
echo "Downloading UOS image: $uos_image_link"
|
||||
curl $uos_image_link -o clear-$uos_ver-kvm.img.xz || echo "Download UOS failed." && rm clear-$uos_ver-kvm.img.xz && exit 1
|
||||
uos_img=clear-$uos_ver-kvm.img
|
||||
if [[ -f $uos_img ]] && [[ -f $uos_img.xz ]]; then echo "Moving $uos_img to $uos_img.old."; mv $uos_img $uos_img.old; fi
|
||||
echo "Unxz UOS image: clear-$uos_ver-kvm.img.xz"
|
||||
unxz clear-$uos_ver-kvm.img.xz
|
||||
fi
|
||||
mount $uos_partition /mnt
|
||||
cp -r /usr/lib/modules/"`readlink /usr/lib/kernel/default-iot-lts2018 | awk -F '2018.' '{print $2}'`.iot-lts2018" /mnt/lib/modules
|
||||
else
|
||||
cd ~
|
||||
echo "Downloading UOS image: $uos_image_link"
|
||||
curl $uos_image_link -o clear-$target_version-kvm.img.xz
|
||||
uos_img=clear-$target_version-kvm.img
|
||||
if [[ -f $uos_img ]] && [[ -f $uos_img.xz ]]; then echo "Moving $uos_img to $uos_img.old."; mv $uos_img $uos_img.old; fi
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo "Unxz UOS image: clear-$target_version-kvm.img.xz"
|
||||
unxz clear-$target_version-kvm.img.xz
|
||||
fi
|
||||
if [[ $? -eq 0 ]]; then
|
||||
uos_partition=`losetup -f -P --show $uos_img`p3
|
||||
else
|
||||
echo "Missing UOS file: $uos_img, please check if UOS is exist." && exit 1
|
||||
fi
|
||||
mount $uos_partition /mnt
|
||||
cp -r /usr/lib/modules/"`readlink /usr/lib/kernel/default-iot-lts2018 | awk -F '2018.' '{print $2}'`.iot-lts2018" /mnt/lib/modules
|
||||
fi
|
||||
umount /mnt
|
||||
losetup -D
|
||||
sync
|
||||
|
||||
cp -r /usr/share/acrn/samples/nuc/launch_uos.sh ~/
|
||||
sed -i "s/\(virtio-blk.*\)\/home\/clear\/uos\/uos.img/\1$(echo $uos_img | sed "s/\//\\\\\//g")/" ~/launch_uos.sh
|
||||
echo "Upgrade UOS done..."
|
||||
echo "Now you can run this command to start UOS..."
|
||||
echo "# cd ~/ && ./launch_uos.sh"
|
||||
echo "Get UOS image: $uos_img"
|
||||
uos_partition=`losetup -f -P --show $uos_img`p3
|
||||
mount $uos_partition /mnt
|
||||
[[ $? -ne 0 ]] && echo "Fail to mount UOS partition" && exit 1
|
||||
cp -r /usr/lib/modules/"`readlink /usr/lib/kernel/default-iot-lts2018 | awk -F '2018.' '{print $2}'`.iot-lts2018" /mnt/lib/modules
|
||||
umount /mnt
|
||||
sync
|
||||
|
||||
cp -r /usr/share/acrn/samples/nuc/launch_uos.sh ~/
|
||||
sed -i "s/\(virtio-blk.*\)\/home\/clear\/uos\/uos.img/\1$(echo $uos_img | sed "s/\//\\\\\//g")/" ~/launch_uos.sh
|
||||
[[ -z `grep $uos_img ~/launch_uos.sh` ]] && echo "Fail to replace uos image in launch script: ~/launch_uos.sh" && exit 1
|
||||
echo "Upgrade UOS done..."
|
||||
echo "Now you can run this command to start UOS..."
|
||||
echo "# cd ~/ && ./launch_uos.sh"
|
||||
exit
|
||||
}
|
||||
|
||||
# Set script options.
|
||||
while getopts "t:p:m:huso" opt
|
||||
while getopts "s:u:p:m:kdh" opt
|
||||
do
|
||||
case "$opt" in
|
||||
t) target_version="$OPTARG"
|
||||
s) sos_ver="$OPTARG"
|
||||
;;
|
||||
u) uos_ver="$OPTARG"
|
||||
;;
|
||||
p) proxy="$OPTARG"
|
||||
;;
|
||||
m) mirror="$OPTARG"
|
||||
;;
|
||||
u) upgrade_uos=1
|
||||
k) skip_download_uos=1
|
||||
;;
|
||||
s) skip_download_uos=1
|
||||
d) disable_reboot=1
|
||||
;;
|
||||
h) print_help
|
||||
;;
|
||||
|
@ -252,26 +241,8 @@ do
|
|||
esac
|
||||
done
|
||||
|
||||
# -t opt is must
|
||||
if [[ -z $1 || $EUID -ne 0 ]]; then
|
||||
print_help
|
||||
fi
|
||||
|
||||
# You need to specify the correct clear linux ver number.
|
||||
if [[ `echo $target_version | awk '{print length($0)}'` -ne 5 ]]; then
|
||||
echo 'Please input right clearlinux version to upgrade' && exit 1
|
||||
fi
|
||||
|
||||
if [[ $upgrade_uos == 1 ]]; then
|
||||
echo "Upgrading UOS to: $target_version ..."
|
||||
upgrade_uos
|
||||
exit
|
||||
fi
|
||||
|
||||
# Exit script if you specified an older clear linux version.
|
||||
if [[ $(echo -e `swupd info` | cut -d' ' -f3) -gt $target_version ]]; then
|
||||
echo -e 'No need to upgrade Service OS.' && exit
|
||||
else
|
||||
upgrade_sos
|
||||
exit
|
||||
fi
|
||||
# Check args
|
||||
[[ $EUID -ne 0 ]] && echo "You have to run script as root." && exit 1
|
||||
[[ -z $1 ]] && print_help
|
||||
[[ -n $sos_ver && -n $uos_ver ]] && echo "You should select upgrading SOS or UOS" && exit 1
|
||||
[[ -n $uos_ver ]] && upgrade_uos || upgrade_sos
|
||||
|
|
Loading…
Reference in New Issue