Path: blob/master/pkg/cidata/cidata.TEMPLATE.d/boot/05-lima-disks.sh
2678 views
#!/bin/bash12# SPDX-FileCopyrightText: Copyright The Lima Authors3# SPDX-License-Identifier: Apache-2.045set -eux -o pipefail67test "$LIMA_CIDATA_DISKS" -gt 0 || exit 089get_disk_var() {10diskvarname="LIMA_CIDATA_DISK_${1}_${2}"11eval echo \$"$diskvarname"12}1314for i in $(seq 0 $((LIMA_CIDATA_DISKS - 1))); do15DISK_NAME="$(get_disk_var "$i" "NAME")"16DEVICE_NAME="$(get_disk_var "$i" "DEVICE")"17FORMAT_DISK="$(get_disk_var "$i" "FORMAT")"18FORMAT_FSTYPE="$(get_disk_var "$i" "FSTYPE")"19FORMAT_FSARGS="$(get_disk_var "$i" "FSARGS")"2021test -n "$FORMAT_DISK" || FORMAT_DISK=true22test -n "$FORMAT_FSTYPE" || FORMAT_FSTYPE=ext42324# first time setup25if [[ ! -b "/dev/disk/by-label/lima-${DISK_NAME}" ]]; then26if $FORMAT_DISK; then27if [ "$FORMAT_FSTYPE" == "swap" ]; then28echo 'type=swap' | sfdisk --label gpt "/dev/${DEVICE_NAME}"29# shellcheck disable=SC208630mkswap $FORMAT_FSARGS -L "lima-${DISK_NAME}" "/dev/${DEVICE_NAME}1"31else32echo 'type=linux' | sfdisk --label gpt "/dev/${DEVICE_NAME}"33# shellcheck disable=SC208634mkfs.$FORMAT_FSTYPE $FORMAT_FSARGS -L "lima-${DISK_NAME}" "/dev/${DEVICE_NAME}1"35fi36fi37fi3839if [ "$FORMAT_FSTYPE" == "swap" ]; then40swapon "/dev/${DEVICE_NAME}1"41else42mkdir -p "/mnt/lima-${DISK_NAME}"43mount -t "$FORMAT_FSTYPE" "/dev/${DEVICE_NAME}1" "/mnt/lima-${DISK_NAME}"44fi45if command -v growpart >/dev/null 2>&1 && command -v resize2fs >/dev/null 2>&1; then46growpart "/dev/${DEVICE_NAME}" 1 || true47# Only resize when filesystem is in a healthy state48if command -v "fsck.$FORMAT_FSTYPE" -f -p "/dev/disk/by-label/lima-${DISK_NAME}"; then49if [[ $FORMAT_FSTYPE == "ext2" || $FORMAT_FSTYPE == "ext3" || $FORMAT_FSTYPE == "ext4" ]]; then50resize2fs "/dev/disk/by-label/lima-${DISK_NAME}" || true51elif [ "$FORMAT_FSTYPE" == "xfs" ]; then52xfs_growfs "/dev/disk/by-label/lima-${DISK_NAME}" || true53else54echo >&2 "WARNING: unknown fs '$FORMAT_FSTYPE'. FS will not be grew up automatically"55fi56fi57fi58done596061