"$(translate "Select the disk you want to format:")"20$TOTAL_WIDTH10"${FREE_DISKS[@]}" 3>&1 1>&2 2>&3)
if[ -z "$SELECTED"];then
whiptail --title "$(translate "Error")" --msgbox "$(translate "No disks were selected.")"1064
clear
exit1
fi
SELECTED=$(echo"$SELECTED"| tr -d '"')
SELECTED_DISK="$SELECTED"
REAL_PATH=$(readlink -f "$SELECTED")
CT_MATCH=""
VM_MATCH=""
whileread -r CT_ID CT_NAME;do
if pct config "$CT_ID"| grep -q "$REAL_PATH";then
STATUS=$(pct status "$CT_ID"| awk '{print $2}')
if[["$STATUS"=="running"]];then
CT_MATCH="CT $CT_ID ($CT_NAME)"
break
fi
fi
done < <(pct list | awk 'NR>1 {print $1, $3}')
whileread -r VM_ID VM_NAME;do
if qm config "$VM_ID"| grep -q "$REAL_PATH";then
STATUS=$(qm status "$VM_ID"| awk '{print $2}')
if[["$STATUS"=="running"]];then
VM_MATCH="VM $VM_ID ($VM_NAME)"
break
fi
fi
done < <(qm list | awk 'NR>1 {print $1, $2}')
if[[ -n "$CT_MATCH"|| -n "$VM_MATCH"]];then
whiptail --title "$(translate "Disk In Use")" --msgbox "$(translate "The selected disk is currently assigned to:")\n\n$CT_MATCH$VM_MATCH\n\n$(translate "You must power off the VM or CT before formatting.")"1270
if lsblk -no FSTYPE "$SELECTED_DISK"| grep -q "linux_raid_member";then
WARNING_FLAGS+=" RAID"
fi
if lsblk -no FSTYPE "$SELECTED_DISK"| grep -q "LVM2_member";then
WARNING_FLAGS+=" LVM"
fi
if lsblk -no FSTYPE "$SELECTED_DISK"| grep -q "zfs_member";then
WARNING_FLAGS+=" ZFS"
fi
if[ -n "$WARNING_FLAGS"];then
whiptail --title "$(translate "Warning")" --msgbox "$(translate "This disk appears to have the following metadata:")$WARNING_FLAGS\\n\\n$(translate "They will be erased during formatting.")"1060
fi
whiptail --title "$(translate "Confirm Format")" --yesno "$(translate "WARNING: You are about to erase all data on")\\n$SELECTED_DISK\\n\\n$(translate "Are you sure you want to continue?")"1070||exit0
whiptail --title "$(translate "Final Confirmation")" --yesno "$(translate "FINAL WARNING: This operation will completely format the disk")\\n$SELECTED_DISK\\n\\n$(translate "ALL DATA WILL BE LOST. Proceed?")"1070||exit0
########################################
echo -e "$(translate "Stopping residual RAID or device mappings...")"
mdadm --misc --stop /dev/md* >/dev/null 2>&1
dmsetup remove_all >/dev/null 2>&1
echo -e "$(translate "Wiping disk metadata and old RAID signatures...")"
sgdisk --zap-all "$SELECTED_DISK" >/dev/null 2>&1
wipefs -a "$SELECTED_DISK" >/dev/null 2>&1
udevadm settle
partprobe "$SELECTED_DISK"
sleep 2
echo -e "$(translate "Creating partition table and partition...")"
parted -s "$SELECTED_DISK" mklabel gpt
parted -s "$SELECTED_DISK" mkpart primary 0% 100%
udevadm settle
partprobe "$SELECTED_DISK"
sleep 2
###########################################
udevadm settle
partprobe "$SELECTED_DISK"
sleep 2
PARTITION=$(lsblk -rno NAME "$SELECTED_DISK"| awk -v disk="$(basename "$SELECTED_DISK")"'$1 != disk {print $1; exit}')
if[ -z "$PARTITION"];then
whiptail --title "$(translate "Partition Error")" --msgbox "$(translate "Failed to create partition on disk.")"860
exit1
fi
PARTITION="/dev/$PARTITION"
FORMAT_TYPE=$(whiptail --title "$(translate "Select Filesystem")" --menu "$(translate "Choose the filesystem for the disk:")"15605\