#!/usr/bin/env bash # Copyright The containerd Authors. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -eu -o pipefail # Rocky Linux doesn't have growpart by default. (growpart -h > /dev/null) || dnf -y install cloud-utils-growpart df_line=$(df -T / | grep '^/dev/') if [[ "$df_line" =~ ^/dev/([a-z]+)([0-9+]) ]]; then dev="${BASH_REMATCH[1]}" part="${BASH_REMATCH[2]}" growpart "/dev/$dev" "$part" fstype=$(echo "$df_line" | awk '{print $2}') if [[ "$fstype" = 'btrfs' ]]; then btrfs filesystem resize max / elif [[ "$fstype" = 'xfs' ]]; then xfs_growfs -d / else echo "Unknown filesystem: $df_line" exit 1 fi elif [[ "$df_line" =~ ^/dev/mapper/ ]]; then echo "TODO: support device mapper: $df_line" else echo "Failed to parse: $df_line" exit 1 fi