121 lines
2.1 KiB
Bash
121 lines
2.1 KiB
Bash
rwx_fs_make_btrfs() {
|
|
local device="${1}"
|
|
local label="${2}"
|
|
local uuid="${3}"
|
|
if [ -b "${device}" ]; then
|
|
set -- \
|
|
--force \
|
|
--checksum "sha256"
|
|
if [ -n "${label}" ]; then
|
|
set -- "${@}" \
|
|
--label "${label}"
|
|
fi
|
|
if [ -n "${uuid}" ]; then
|
|
set -- "${@}" \
|
|
--uuid "${uuid}"
|
|
fi
|
|
mkfs.btrfs "${@}" "${device}"
|
|
fi
|
|
}
|
|
|
|
rwx_fs_make_btrfs_swap() {
|
|
local path="${1}"
|
|
local size="${2}"
|
|
local uuid="${3}"
|
|
if [ -n "${path}" ]; then
|
|
set -- filesystem mkswapfile
|
|
if [ -n "${size}" ]; then
|
|
set -- "${@}" \
|
|
--size "${size}"
|
|
fi
|
|
if [ -n "${uuid}" ]; then
|
|
set -- "${@}" \
|
|
--uuid "${uuid}"
|
|
fi
|
|
btrfs "${@}" "${path}"
|
|
fi
|
|
}
|
|
|
|
rwx_fs_make_fat() {
|
|
local device="${1}"
|
|
local name="${2}"
|
|
local volid="${3}"
|
|
if [ -b "${device}" ]; then
|
|
set -- \
|
|
-F 32 \
|
|
-S 4096
|
|
if [ -n "${name}" ]; then
|
|
set -- "${@}" \
|
|
-n "${name}"
|
|
fi
|
|
if [ -n "${volid}" ]; then
|
|
set -- "${@}" \
|
|
-i "${volid}"
|
|
fi
|
|
mkfs.fat "${@}" "${device}"
|
|
fi
|
|
}
|
|
|
|
rwx_fs_raid_create() {
|
|
if [ -n "${4}" ]; then
|
|
local name="${1}"
|
|
local uuid="${2}"
|
|
shift 2
|
|
mdadm \
|
|
--create "/dev/md/${name}" \
|
|
--level 0 \
|
|
--metadata 1 \
|
|
--name "md:${name}" \
|
|
--raid-devices ${#} \
|
|
--uuid "${uuid}" \
|
|
"${@}"
|
|
fi
|
|
}
|
|
|
|
rwx_fs_wipe() {
|
|
local device="${1}"
|
|
local buffer="${2}"
|
|
local count="${3}"
|
|
if [ -b "${device}" ]; then
|
|
set -- \
|
|
status="progress" \
|
|
if="/dev/zero" \
|
|
of="${device}"
|
|
if [ -n "${buffer}" ]; then
|
|
set -- "${@}" \
|
|
bs="${buffer}"
|
|
fi
|
|
if [ -n "${count}" ]; then
|
|
set -- "${@}" \
|
|
count="${count}"
|
|
fi
|
|
dd "${@}"
|
|
fi
|
|
}
|
|
|
|
rwx_fs_luks_format() {
|
|
local passphrase="${1}"
|
|
local device="${2}"
|
|
local label="${3}"
|
|
local uuid="${4}"
|
|
if [ -b "${device}" ]; then
|
|
set -- \
|
|
--batch-mode \
|
|
--cipher "aes-xts-plain64" \
|
|
--hash "sha512" \
|
|
--iter-time 4096 \
|
|
--key-size 512 \
|
|
--pbkdf "argon2id" \
|
|
--type "luks2" \
|
|
--use-random \
|
|
--verbose
|
|
if [ -n "${label}" ]; then
|
|
set -- "${@}" --label "${label}"
|
|
fi
|
|
if [ -n "${uuid}" ]; then
|
|
set -- "${@}" --uuid "${uuid}"
|
|
fi
|
|
echo "${passphrase}" |
|
|
cryptsetup "${@}" luksFormat "${device}"
|
|
fi
|
|
}
|