Created
June 15, 2023 15:53
-
-
Save metaist/c727dc3946880c4d31de2b571801f534 to your computer and use it in GitHub Desktop.
Add and format a non-boot disk
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
MOUNT_DIR=/mnt/data | |
DEVICE_NAME=/dev/$(lsblk | grep disk | tail -n1 | awk '{print $1}') | |
VERSION="0.1.0" | |
USAGE="\ | |
Usage: add-disk.sh [--help | --version] | |
[--mount DIR] [--dev DEVICE] | |
Options: | |
-h, --help show this message and exit | |
--version show version and exit | |
--mount DIR set mount dir [default: $MOUNT_DIR] | |
--dev DEVICE set device name [default: $DEVICE_NAME] | |
Example: | |
sudo ./add-disk.sh --mount /mnt/disks/data1 --dev /dev/sda | |
" | |
main() { | |
while [[ "$#" > 0 ]]; do | |
case ${1:-""} in | |
-h|--help) echo "$USAGE"; exit; break;; | |
--version) echo "$VERSION"; exit 0; break;; | |
--mount) MOUNT_DIR=${2:-""}; shift 2;; | |
--dev) DEVICE_NAME=${2:-""}; shift 2;; | |
*) printf "Unknown argument: $1\n$USAGE"; exit 1; break;; | |
esac | |
done | |
mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard $DEVICE_NAME | |
mkdir -p $MOUNT_DIR | |
mount -o discard,defaults $DEVICE_NAME $MOUNT_DIR | |
chmod a+w $MOUNT_DIR | |
local DEVICE_UUID=$(blkid $DEVICE_NAME | awk -F'"' '{print $2}') | |
local dest=/etc/fstab | |
local line="UUID=$DEVICE_UUID $MOUNT_DIR ext4 discard,defaults,nofail 0 2" | |
grep -qsPe "^$line$" "$dest" | |
if [[ $? ]]; then | |
echo "already added to $dest" | |
else | |
tee --append $dest <<< "$line" | |
fi | |
cat $dest | |
} | |
main $@ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment