#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # shellcheck source=00_env.sh source "$SCRIPT_DIR/00_env.sh" parse_common_args "$@" require_inputs disks missing=0 for cmd in vxdisk vxdisksetup awk; do require_cmd "$cmd" || missing=1 done if (( missing != 0 )); then exit 2 fi status=0 for disk in $DISKS; do if ! vxdisk list "$disk" >/dev/null 2>&1; then critical "disk not found in vxdisk list: $disk" status=1 continue fi info="$(disk_status_line "$disk")" disk_status="${info#*|}" if [[ "$disk_status" != *"online invalid"* ]]; then critical "disk '$disk' is not safe to initialize; status is '${disk_status:-unknown}', expected 'online invalid'" status=1 continue fi ok "disk '$disk' validated as online invalid" done if (( status != 0 )); then critical "one or more disks failed validation; no initialization attempted" exit 1 fi confirm_execute "This will initialize VxVM metadata on disk(s): $DISKS" for disk in $DISKS; do run_cmd "Initialize VxVM disk $disk" vxdisksetup -i "$disk" done for disk in $DISKS; do capture_cmd "Post-initialization VxVM disk state for $disk" vxdisk list "$disk" done ok "disk initialization step completed"