-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpart.sh
More file actions
60 lines (43 loc) · 1.5 KB
/
part.sh
File metadata and controls
60 lines (43 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env bash
lsblk
# Check for existing drive
read -p "Enter the disk name (e.g., sda): " DISKSELECTED
# Construct the full path with /dev/ prefix
DISK="/dev/$DISKSELECTED"
if [[ ! -b "$DISK" ]]; then
echo "Error: '$DISK' is not a valid block device."
exit 1
fi
# Get user confirmation before proceeding
echo "This script will partition and format the entire drive '$DISK'."
echo "**WARNING:** All data on the drive will be lost. Proceed (y/N)?"
read -r confirmation
if [[ ! $confirmation =~ ^[Yy]$ ]]; then
echo "Aborting..."
exit 0
fi
# Define partition sizes as percentages
EFI_SIZE=512M
SWAP_SIZE=8G
# Create partitions with GPT labels
#parted /dev/sda mklabel gpt mkpart P1 ext3 1MiB 8MiB
parted "$DISK" mklabel gpt
parted "$DISK" mkpart primary 0% ${EFI_SIZE}
parted "$DISK" mkpart primary ${EFI_SIZE} ${SWAP_SIZE}
parted "$DISK" mkpart primary ${SWAP_SIZE} 100%
# Assign partition names (changed line)
parted -m "$DISK" set 1 ESP # Set the first partition as EFI
# Update partition paths with prefix
DISK_WITH_PREFIX="$DISK"
EFI_PARTITION="${DISK_WITH_PREFIX}1"
SWAP_PARTITION="${DISK_WITH_PREFIX}2"
ROOT_PARTITION="${DISK_WITH_PREFIX}3"
# Format partitions
mkfs.vfat -F32 -n "EFISYSTEM" "$EFI_PARTITION"
mkswap "$SWAP_PARTITION"
swapon "$SWAP_PARTITION" # Enable swap before formatting root
mkfs.ext4 -L "ROOT" "$ROOT_PARTITION"
echo "Partitions created successfully:"
echo " - EFI partition: $EFI_PARTITION"
echo " - Swap partition: $SWAP_PARTITION"
echo " - Root partition: $ROOT_PARTITION"