121 lines
2.1 kB
1
rwx_fs_make_btrfs() {
2
local device="${1}"
3
local label="${2}"
4
local uuid="${3}"
5
if [ -b "${device}" ]; then
6
set -- \
7
--force \
8
--checksum "sha256"
9
if [ -n "${label}" ]; then
10
set -- "${@}" \
11
--label "${label}"
12
fi
13
if [ -n "${uuid}" ]; then
14
set -- "${@}" \
15
--uuid "${uuid}"
16
fi
17
mkfs.btrfs "${@}" "${device}"
18
fi
19
}
20
21
rwx_fs_make_btrfs_swap() {
22
local path="${1}"
23
local size="${2}"
24
local uuid="${3}"
25
if [ -n "${path}" ]; then
26
set -- filesystem mkswapfile
27
if [ -n "${size}" ]; then
28
set -- "${@}" \
29
--size "${size}"
30
fi
31
if [ -n "${uuid}" ]; then
32
set -- "${@}" \
33
--uuid "${uuid}"
34
fi
35
btrfs "${@}" "${path}"
36
fi
37
}
38
39
rwx_fs_make_fat() {
40
local device="${1}"
41
local name="${2}"
42
local volid="${3}"
43
if [ -b "${device}" ]; then
44
set -- \
45
-F 32 \
46
-S 4096
47
if [ -n "${name}" ]; then
48
set -- "${@}" \
49
-n "${name}"
50
fi
51
if [ -n "${volid}" ]; then
52
set -- "${@}" \
53
-i "${volid}"
54
fi
55
mkfs.fat "${@}" "${device}"
56
fi
57
}
58
59
rwx_fs_raid_create() {
60
if [ -n "${4}" ]; then
61
local name="${1}"
62
local uuid="${2}"
63
shift 2
64
mdadm \
65
--create "/dev/md/${name}" \
66
--level 0 \
67
--metadata 1 \
68
--name "md:${name}" \
69
--raid-devices ${#} \
70
--uuid "${uuid}" \
71
"${@}"
72
fi
73
}
74
75
rwx_fs_wipe() {
76
local device="${1}"
77
local buffer="${2}"
78
local count="${3}"
79
if [ -b "${device}" ]; then
80
set -- \
81
status="progress" \
82
if="/dev/zero" \
83
of="${device}"
84
if [ -n "${buffer}" ]; then
85
set -- "${@}" \
86
bs="${buffer}"
87
fi
88
if [ -n "${count}" ]; then
89
set -- "${@}" \
90
count="${count}"
91
fi
92
dd "${@}"
93
fi
94
}
95
96
rwx_fs_luks_format() {
97
local passphrase="${1}"
98
local device="${2}"
99
local label="${3}"
100
local uuid="${4}"
101
if [ -b "${device}" ]; then
102
set -- \
103
--batch-mode \
104
--cipher "aes-xts-plain64" \
105
--hash "sha512" \
106
--iter-time 4096 \
107
--key-size 512 \
108
--pbkdf "argon2id" \
109
--type "luks2" \
110
--use-random \
111
--verbose
112
if [ -n "${label}" ]; then
113
set -- "${@}" --label "${label}"
114
fi
115
if [ -n "${uuid}" ]; then
116
set -- "${@}" --uuid "${uuid}"
117
fi
118
echo "${passphrase}" |
119
cryptsetup "${@}" luksFormat "${device}"
120
fi
121
}
122