129 lines
2.9 kB
1
rwx_rescue_wipe_0_init_hetzner_8_8() {
2
local device
3
set \
4
"/dev/sda" \
5
"/dev/sdb"
6
local members
7
local number
8
local passphrase
9
# read passphrase
10
passphrase="$(rwx_read_passphrase)"
11
# warn
12
rwx_warn_wipe "${@}"
13
#
14
number=0
15
for device in "${@}"; do
16
number=$((number + 1))
17
echo
18
echo "#${number}: ${device}"
19
#
20
parted --script "${device}" \
21
mktable gpt \
22
unit "mib" \
23
mkpart "crypt-${number}" 33282 7630885 \
24
mkpart "boot-${number}" 514 33282 \
25
mkpart "esp-${number}" 2 514 \
26
set 3 esp on \
27
mkpart "bios-${number}" 1 2 \
28
set 4 bios_grub on
29
done
30
#
31
number=0
32
for device in "${@}"; do
33
number=$((number + 1))
34
echo
35
echo "#${number}: ${device}4"
36
# wipe bios
37
rwx_fs_wipe "${device}4"
38
done
39
#
40
number=0
41
for device in "${@}"; do
42
number=$((number + 1))
43
echo
44
echo "#${number}: ${device}3"
45
# format esp
46
rwx_fs_wipe "${device}3" "1M"
47
rwx_fs_make_fat "${device}3" "esp-${number}" "0000000${number}"
48
# mount esp
49
mkdir --parents "/media/esp/${number}"
50
mount "${device}3" "/media/esp/${number}"
51
done
52
#
53
number=0
54
for device in "${@}"; do
55
number=$((number + 1))
56
echo
57
echo "#${number}: ${device}2"
58
# wipe boot
59
rwx_fs_wipe "${device}2" "1G" 1
60
done
61
#
62
members=""
63
for device in "${@}"; do
64
members="${members} ${device}2"
65
done
66
# LATER alternative
67
# shellcheck disable=SC2086
68
rwx_fs_raid_create \
69
"boot" "00000000:00000000:00000000:00000002" ${members}
70
#
71
rwx_fs_make_btrfs "/dev/md/boot" "boot" \
72
"00000000-0000-0000-0000-00000000000b"
73
# mount boot
74
mkdir --parents "/media/boot"
75
mount \
76
--options "autodefrag,compress-force=zstd" \
77
"/dev/md/boot" "/media/boot"
78
#
79
number=0
80
for device in "${@}"; do
81
number=$((number + 1))
82
echo
83
echo "#${number}: ${device}1"
84
# wipe crypt head
85
rwx_fs_wipe "${device}1" "1G" 1
86
done
87
#
88
members=""
89
for device in "${@}"; do
90
members="${members} ${device}1"
91
done
92
# LATER alternative
93
# shellcheck disable=SC2086
94
rwx_fs_raid_create \
95
"crypt" "00000000:00000000:00000000:00000001" ${members}
96
# encrypt
97
rwx_fs_luks_format "${passphrase}" "/dev/md/crypt"
98
# open
99
echo "${passphrase}" |
100
cryptsetup luksOpen "/dev/md/crypt" "crypt"
101
# passphrase
102
unset passphrase
103
}
104
105
rwx_rescue_wipe_2_make_hetzner_8_8() {
106
local passphrase
107
# close
108
cryptsetup luksClose "crypt"
109
# read passphrase
110
passphrase="$(rwx_read_passphrase)"
111
# encrypt
112
rwx_fs_luks_format "${passphrase}" "/dev/md/crypt"
113
# open
114
echo "${passphrase}" |
115
cryptsetup luksOpen "/dev/md/crypt" "crypt"
116
# passphrase
117
unset passphrase
118
# format crypt
119
rwx_fs_make_btrfs "/dev/mapper/crypt" "crypt" \
120
"00000000-0000-0000-0000-00000000000c"
121
# mount crypt
122
mkdir --parents "/media/crypt"
123
mount \
124
--options "autodefrag,compress-force=zstd" \
125
"/dev/mapper/crypt" "/media/crypt"
126
# make swap file
127
rwx_fs_make_btrfs_swap "/media/crypt/swap" "64g" \
128
"00000000-0000-0000-0000-000000000005"
129
}
130