]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/partition/test-repart.sh
Merge pull request #16462 from keszybz/rpm-macro-warnings
[thirdparty/systemd.git] / src / partition / test-repart.sh
1 #!/usr/bin/env bash
2 set -ex
3
4 repart=$1
5 test -x $repart
6
7 D=$(mktemp --directory)
8 trap "rm -rf '$D'" EXIT INT QUIT PIPE
9 mkdir -p $D/definitions
10
11 SEED=e2a40bf9-73f1-4278-9160-49c031e7aef8
12
13 $repart $D/zzz --empty=create --size=1G --seed=$SEED
14
15 sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/empty
16
17 cmp $D/empty - <<EOF
18 label: gpt
19 label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D
20 device: $D/zzz
21 unit: sectors
22 first-lba: 2048
23 last-lba: 2097118
24 EOF
25
26 cat >$D/definitions/root.conf <<EOF
27 [Partition]
28 Type=root-x86-64
29 EOF
30
31 ln -s root.conf $D/definitions/root2.conf
32
33 cat >$D/definitions/home.conf <<EOF
34 [Partition]
35 Type=home
36 Label=home-first
37 Label=home-always-too-long-xxxxxxxxxxxxxx-%v
38 EOF
39
40 cat >$D/definitions/swap.conf <<EOF
41 [Partition]
42 Type=swap
43 SizeMaxBytes=64M
44 PaddingMinBytes=92M
45 EOF
46
47 $repart $D/zzz --dry-run=no --seed=$SEED --definitions=$D/definitions
48
49 sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated
50
51 cmp $D/populated - <<EOF
52 label: gpt
53 label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D
54 device: $D/zzz
55 unit: sectors
56 first-lba: 2048
57 last-lba: 2097118
58 $D/zzz1 : start= 2048, size= 591856, type=933AC7E1-2EB4-4F13-B844-0E14E2AEF915, uuid=A6005774-F558-4330-A8E5-D6D2C01C01D6, name="home-first"
59 $D/zzz2 : start= 593904, size= 591856, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=CE9C76EB-A8F1-40FF-813C-11DCA6C0A55B, name="root-x86-64"
60 $D/zzz3 : start= 1185760, size= 591864, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=AC60A837-550C-43BD-B5C4-9CB73B884E79, name="root-x86-64-2"
61 $D/zzz4 : start= 1777624, size= 131072, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, uuid=2AA78CDB-59C7-4173-AF11-C7453737A5D1, name="swap"
62 EOF
63
64 cat >$D/definitions/swap.conf <<EOF
65 [Partition]
66 Type=swap
67 SizeMaxBytes=64M
68 EOF
69
70 cat >$D/definitions/extra.conf <<EOF
71 [Partition]
72 Type=linux-generic
73 Label=custom_label
74 UUID=a0a1a2a3a4a5a6a7a8a9aaabacadaeaf
75 EOF
76
77 echo "Label=ignored_label" >>$D/definitions/home.conf
78 echo "UUID=b0b1b2b3b4b5b6b7b8b9babbbcbdbebf" >>$D/definitions/home.conf
79
80 $repart $D/zzz --dry-run=no --seed=$SEED --definitions=$D/definitions
81
82 sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated2
83
84 cmp $D/populated2 - <<EOF
85 label: gpt
86 label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D
87 device: $D/zzz
88 unit: sectors
89 first-lba: 2048
90 last-lba: 2097118
91 $D/zzz1 : start= 2048, size= 591856, type=933AC7E1-2EB4-4F13-B844-0E14E2AEF915, uuid=A6005774-F558-4330-A8E5-D6D2C01C01D6, name="home-first"
92 $D/zzz2 : start= 593904, size= 591856, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=CE9C76EB-A8F1-40FF-813C-11DCA6C0A55B, name="root-x86-64"
93 $D/zzz3 : start= 1185760, size= 591864, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=AC60A837-550C-43BD-B5C4-9CB73B884E79, name="root-x86-64-2"
94 $D/zzz4 : start= 1777624, size= 131072, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, uuid=2AA78CDB-59C7-4173-AF11-C7453737A5D1, name="swap"
95 $D/zzz5 : start= 1908696, size= 188416, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=A0A1A2A3-A4A5-A6A7-A8A9-AAABACADAEAF, name="custom_label"
96 EOF
97
98 $repart $D/zzz --size=2G --dry-run=no --seed=$SEED --definitions=$D/definitions
99
100 sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated3
101
102 cmp $D/populated3 - <<EOF
103 label: gpt
104 label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D
105 device: $D/zzz
106 unit: sectors
107 first-lba: 2048
108 last-lba: 4194270
109 $D/zzz1 : start= 2048, size= 591856, type=933AC7E1-2EB4-4F13-B844-0E14E2AEF915, uuid=A6005774-F558-4330-A8E5-D6D2C01C01D6, name="home-first"
110 $D/zzz2 : start= 593904, size= 591856, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=CE9C76EB-A8F1-40FF-813C-11DCA6C0A55B, name="root-x86-64"
111 $D/zzz3 : start= 1185760, size= 591864, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=AC60A837-550C-43BD-B5C4-9CB73B884E79, name="root-x86-64-2"
112 $D/zzz4 : start= 1777624, size= 131072, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, uuid=2AA78CDB-59C7-4173-AF11-C7453737A5D1, name="swap"
113 $D/zzz5 : start= 1908696, size= 2285568, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=A0A1A2A3-A4A5-A6A7-A8A9-AAABACADAEAF, name="custom_label"
114 EOF
115
116 dd if=/dev/urandom of=$D/block-copy bs=4096 count=10240
117
118 cat >$D/definitions/extra2.conf <<EOF
119 [Partition]
120 Type=linux-generic
121 Label=block-copy
122 UUID=2a1d97e1d0a346cca26eadc643926617
123 CopyBlocks=$D/block-copy
124 EOF
125
126 $repart $D/zzz --size=3G --dry-run=no --seed=$SEED --definitions=$D/definitions
127
128 sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated4
129
130 cmp $D/populated4 - <<EOF
131 label: gpt
132 label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D
133 device: $D/zzz
134 unit: sectors
135 first-lba: 2048
136 last-lba: 6291422
137 $D/zzz1 : start= 2048, size= 591856, type=933AC7E1-2EB4-4F13-B844-0E14E2AEF915, uuid=A6005774-F558-4330-A8E5-D6D2C01C01D6, name="home-first"
138 $D/zzz2 : start= 593904, size= 591856, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=CE9C76EB-A8F1-40FF-813C-11DCA6C0A55B, name="root-x86-64"
139 $D/zzz3 : start= 1185760, size= 591864, type=4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709, uuid=AC60A837-550C-43BD-B5C4-9CB73B884E79, name="root-x86-64-2"
140 $D/zzz4 : start= 1777624, size= 131072, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, uuid=2AA78CDB-59C7-4173-AF11-C7453737A5D1, name="swap"
141 $D/zzz5 : start= 1908696, size= 2285568, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=A0A1A2A3-A4A5-A6A7-A8A9-AAABACADAEAF, name="custom_label"
142 $D/zzz6 : start= 4194264, size= 2097152, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=2A1D97E1-D0A3-46CC-A26E-ADC643926617, name="block-copy"
143 EOF
144
145 cmp --bytes=41943040 --ignore-initial=0:$((512*4194264)) $D/block-copy $D/zzz