46 lines
1.5 KiB
Bash
Executable File
46 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
MOUNT_DIR=$2
|
|
|
|
get_partition_size() {
|
|
local partition=$1
|
|
lsblk -bno SIZE "$partition"
|
|
}
|
|
|
|
find_largest_partition() {
|
|
local device=$1
|
|
local largest_partition=""
|
|
local largest_size=0
|
|
|
|
for partition in $(lsblk -lnp "$device" | awk '{print $1}'); do
|
|
size=$(get_partition_size "$partition")
|
|
if (( size > largest_size )); then
|
|
largest_size=$size
|
|
largest_partition=$partition
|
|
fi
|
|
done
|
|
|
|
echo $largest_partition
|
|
}
|
|
|
|
# Get device (e.g., /dev/sda)
|
|
base_device=$(echo $1 | sed 's/[0-9]*$//')
|
|
largest_partition=$(find_largest_partition "$base_device")
|
|
|
|
# Mount largest partition
|
|
if [ -n "$largest_partition" ]; then
|
|
mkdir -p "$MOUNT_DIR"
|
|
mount_options="relatime"
|
|
if blkid -o value -s TYPE "$largest_partition" | grep -qE "vfat|ntfs"; then
|
|
mount_options="$mount_options,gid=100,dmask=000,fmask=111,utf8"
|
|
if blkid -o value -s TYPE "$largest_partition" | grep -q "ntfs"; then
|
|
systemd-mount -t ntfs-3g --no-block --automount=yes --collect -o $mount_options "$largest_partition" "$MOUNT_DIR"
|
|
else
|
|
systemd-mount -t auto --no-block --automount=yes --collect -o $mount_options "$largest_partition" "$MOUNT_DIR"
|
|
fi
|
|
else
|
|
systemd-mount -t auto --no-block --automount=yes --collect -o $mount_options "$largest_partition" "$MOUNT_DIR"
|
|
fi
|
|
logger "Mounted $largest_partition with filesystem type $(blkid -o value -s TYPE "$largest_partition")"
|
|
fi
|