On Sun, Aug 31, 2025 at 2:25 PM Tom Browder <[email protected]> wrote:

> I just added three new SSD and want to prep them for use.
>
> I plan to use a script to do that incrementally. Given the disks show
> the following when running "lsblk -o ..." ('#  ' added):
>
> # NAME     SIZE FSTYPE MOUNTPOINT
> # sda      3.6T                   # <= new disk   sda
> # sdb    465.8G
> # |-sdb1   512M vfat   /boot/efi
> # |-sdb2 464.3G ext4   /
> # `-sdb3   976M swap   [SWAP]
> # sdc    931.5G                   # <= new disk   sdc
> # sdd    931.5G                   # <= new disk   sdd
>
> Does this bash fragment look safe for using bash vars for the first disk:
>
> SDX=sda
> sudo parted /dev/${SDX} mklabel gpt
> sudo parted -a opt /dev/${SDX} mkpart primary ext4=0% 100%
> sudo mkfs.ext4 /dev/${SDX


You should probably provide the entire script, and not just pieces. Before
you post it, run it through ShellCheck.

It is unusual to use sudo like that in a script. Typically you require the
root user, and have a check like this at the beginning of your script:

    $ cat ~/ssd-prep.sh
    #!/usr/bin/env bash

    # Control our PATH
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
    export PATH

    if [[ "${UID}" -ne 0 ]]
    then
        echo "This command has to be run as the root user."
        exit 1
    fi

Then, you would invoke your script with `sudo ~/ssd-prep.sh sda`.

You should also check return values. Silent failures suck.

Jeff

Reply via email to