tpm2_key_protector: Enable build for powerpc_ieee1275
[grub.git] / tests / partmap_test.in
blob4138e88fe94bd6c14bb25ce0e3157ebc9810b56b
1 #! @BUILD_SHEBANG@
2 set -e
4 # Copyright (C) 2010  Free Software Foundation, Inc.
6 # GRUB is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # GRUB is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
19 parted=parted
20 grubshell=@builddir@/grub-shell
22 PATH="$PATH:/sbin:/usr/sbin"
24 . "@builddir@/grub-core/modinfo.sh"
26 create_disk_image () {
27     name="$1"
28     size=$2
29     rm -f "${name}"
30     dd if=/dev/zero of="${name}" bs=512 count=1 seek=$((size * 2048 - 1)) status=noxfer > /dev/null
33 create_dfly_image () {
34     name="$1"
35     rm -f ${name}
36     
37     gunzip < "@srcdir@/tests/dfly-mbr-mbexample.mbr.img.gz" | dd of=${name} bs=1 seek=440 count=72 conv=notrunc > /dev/null
38     gunzip < "@srcdir@/tests/dfly-mbr-mbexample.dfly.img.gz" | dd of=${name} bs=512 seek=33 count=1 conv=notrunc > /dev/null
41 check_output () {
42     outfile=$1
43     shift
45     for dsk in $@; do
46         if ! grep "($dsk)" "${outfile}" >/dev/null
47         then
48             echo "($dsk): disk/partiton not found in: $(cat "${outfile}")"
49             exit 1
50         fi
51     done
54 list_parts () {
55     mod=$1;
56     shift;
57     imgfile="$1"
58     shift
59     outfile="$1"
60     shift
62     echo ls | "${grubshell}" --disk="${imgfile}" \
63         --modules=$mod > "${outfile}"
64     cat "${outfile}" | tr -d "\n\r"
65     echo
68 case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
69     mips-qemu_mips | mipsel-qemu_mips | i386-qemu | i386-multiboot | i386-coreboot | mipsel-loongson)
70         disk=ata0
71         ;;
72     powerpc-ieee1275)
73         disk=ieee1275//pci@80000000/mac-io@4/ata-3@20000/disk@0
74         # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label.
75         exit 77
76         ;;
77     sparc64-ieee1275)
78         disk=ieee1275//pci@1fe\,0/pci-ata@5/ide0@500/disk@0
79         # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label.
80         exit 77
81         ;;
82     i386-ieee1275)
83         disk=ieee1275/d
84         # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label.
85         exit 77
86         ;;
87     mips-arc)
88         # FIXME: ARC firmware has bugs which prevent it from accessing hard disk w/o dvh disklabel.
89         exit 77 ;;
90     mipsel-arc)
91         disk=arc/scsi0/disk0/rdisk0
92         ;;
93     arm*-efi)
94         disk=hd2
95         ;;
96     *)
97         disk=hd0
98         ;;
99 esac
101 if ! which ${parted} >/dev/null 2>&1; then
102    echo "${parted} not installed; cannot test partmap"
103    exit 99
106 imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 99
107 outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 99
110 # MSDOS partition types
113 echo "Checking MSDOS partition types..."
115 # 0 primary
116 create_disk_image "${imgfile}" 64
117 ${parted} -a none -s "${imgfile}" mklabel msdos
118 list_parts part_msdos "${imgfile}" "${outfile}"
119 check_output "${outfile}" $disk
121 # 1 primary
122 create_disk_image "${imgfile}" 64
123 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M 
124 list_parts part_msdos "${imgfile}" "${outfile}"
125 check_output "${outfile}" $disk $disk,msdos1
127 # 2 primary
128 create_disk_image "${imgfile}" 128
129 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M
130 list_parts part_msdos "${imgfile}" "${outfile}"
131 check_output "${outfile}" $disk $disk,msdos1 $disk,msdos2
133 # 3 primary
134 create_disk_image "${imgfile}" 128
135 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart primary 20M 30M
136 list_parts part_msdos "${imgfile}" "${outfile}"
137 check_output "${outfile}" $disk $disk,msdos1 $disk,msdos2 $disk,msdos3
139 # 4 primary
140 create_disk_image "${imgfile}" 128
141 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M
142 list_parts part_msdos "${imgfile}" "${outfile}"
143 check_output "${outfile}" $disk $disk,msdos1 $disk,msdos2 $disk,msdos3 $disk,msdos4
145 # 1 primary, 1 extended
146 create_disk_image "${imgfile}" 128
147 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100%
148 list_parts part_msdos "${imgfile}" "${outfile}"
149 check_output "${outfile}" $disk $disk,msdos1
151 # 1 primary, 1 extended, 1 logical
152 create_disk_image "${imgfile}" 128
153 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M
154 list_parts part_msdos "${imgfile}" "${outfile}"
155 check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5
157 # 1 primary, 1 extended, 2 logical
158 create_disk_image "${imgfile}" 128
159 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M
160 list_parts part_msdos "${imgfile}" "${outfile}"
161 check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5 $disk,msdos6
163 # 1 primary, 1 extended, 3 logical
164 create_disk_image "${imgfile}" 128
165 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M mkpart logical 40M 50M
166 list_parts part_msdos "${imgfile}" "${outfile}"
167 check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5 $disk,msdos6 $disk,msdos7
169 # 1 primary, 1 extended, 4 logical
170 create_disk_image "${imgfile}" 128
171 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M mkpart logical 40M 50M mkpart logical 50M 60M
172 list_parts part_msdos "${imgfile}" "${outfile}"
173 check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5 $disk,msdos6 $disk,msdos7 $disk,msdos8
177 # GPT partition types
180 echo "Checking GPT partition types..."
182 # 0 parts
183 create_disk_image "${imgfile}" 64
184 ${parted} -a none -s "${imgfile}" mklabel gpt
185 list_parts part_gpt "${imgfile}" "${outfile}"
186 check_output "${outfile}" $disk
188 # 1 parts
189 create_disk_image "${imgfile}" 64
190 ${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M 
191 list_parts part_gpt "${imgfile}" "${outfile}"
192 check_output "${outfile}" $disk $disk,gpt1
194 # 2 parts
195 create_disk_image "${imgfile}" 128
196 ${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M
197 list_parts part_gpt "${imgfile}" "${outfile}"
198 check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2
200 # 3 parts
201 create_disk_image "${imgfile}" 128
202 ${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 20M 30M
203 list_parts part_gpt "${imgfile}" "${outfile}"
204 check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3
206 # 4 parts
207 create_disk_image "${imgfile}" 128
208 ${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 4 20M 30M mkpart 5 30M 40M
209 list_parts part_gpt "${imgfile}" "${outfile}"
210 check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3 $disk,gpt4
212 # 5 parts
213 create_disk_image "${imgfile}" 128
214 ${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 20M 30M mkpart 4 30M 40M mkpart 5 40M 50M
215 list_parts part_gpt "${imgfile}" "${outfile}"
216 check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3 $disk,gpt4 $disk,gpt5
218 # 6 parts
219 create_disk_image "${imgfile}" 128
220 ${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 20M 30M mkpart 4 30M 40M mkpart 5 40M 50M mkpart 6 50M 60M
221 list_parts part_gpt "${imgfile}" "${outfile}"
222 check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3 $disk,gpt4 $disk,gpt5 $disk,gpt6
226 # SUN partition types
228 # It seems partition #3 is reserved for whole disk by parted.
231 echo "Checking SUN partition types..."
233 # 0 parts
234 create_disk_image "${imgfile}" 64
235 ${parted} -a none -s "${imgfile}" mklabel sun
236 list_parts part_sun "${imgfile}" "${outfile}"
237 check_output "${outfile}" $disk
239 # 1 parts
240 create_disk_image "${imgfile}" 64
241 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M 
242 list_parts part_sun "${imgfile}" "${outfile}"
243 check_output "${outfile}" $disk $disk,sun1
245 # 2 parts
246 create_disk_image "${imgfile}" 128
247 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M
248 list_parts part_sun "${imgfile}" "${outfile}"
249 check_output "${outfile}" $disk $disk,sun1 $disk,sun2
251 # 3 parts
252 create_disk_image "${imgfile}" 128
253 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M
254 list_parts part_sun "${imgfile}" "${outfile}"
255 check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4
257 # 4 parts
258 create_disk_image "${imgfile}" 128
259 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M
260 list_parts part_sun "${imgfile}" "${outfile}"
261 check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 $disk,sun5
263 # 5 parts
264 create_disk_image "${imgfile}" 128
265 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M mkpart 40M 50M
266 list_parts part_sun "${imgfile}" "${outfile}"
267 check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 $disk,sun5 $disk,sun6
269 # 6 parts
270 create_disk_image "${imgfile}" 128
271 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M mkpart 40M 50M mkpart 50M 60M
272 list_parts part_sun "${imgfile}" "${outfile}"
273 check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 $disk,sun5 $disk,sun6 $disk,sun7
275 # 7 parts
276 create_disk_image "${imgfile}" 128
277 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M mkpart 40M 50M mkpart 50M 60M mkpart 60M 70M
278 list_parts part_sun "${imgfile}" "${outfile}"
279 check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 $disk,sun5 $disk,sun6 $disk,sun7 $disk,sun8
283 # Apple partition types
285 # Partition table itself is part of some partition, so there is always
286 # a partition by default.  Furthermore free space is also a partition,
287 # so there is always at least 2 partitions
290 echo "Checking APPLE partition types..."
292 # 0 parts
293 create_disk_image "${imgfile}" 64
294 ${parted} -a none -s "${imgfile}" mklabel mac
295 list_parts part_apple "${imgfile}" "${outfile}"
296 check_output "${outfile}" $disk $disk,apple1 $disk,apple2
298 # 1 parts
299 create_disk_image "${imgfile}" 64
300 ${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M
301 list_parts part_apple "${imgfile}" "${outfile}"
302 check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple3
304 # 2 parts
305 create_disk_image "${imgfile}" 128
306 ${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M
307 list_parts part_apple "${imgfile}" "${outfile}"
308 check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple3 $disk,apple4
310 # 3 parts
311 create_disk_image "${imgfile}" 128
312 ${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M
313 list_parts part_apple "${imgfile}" "${outfile}"
314 check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5
316 # 4 parts
317 create_disk_image "${imgfile}" 128
318 ${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M mkpart d 30M 40M
319 list_parts part_apple "${imgfile}" "${outfile}"
320 check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5 $disk,apple6
322 # 5 parts
323 create_disk_image "${imgfile}" 128
324 ${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M mkpart d 30M 40M mkpart e 40M 50M
325 list_parts part_apple "${imgfile}" "${outfile}"
326 check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5 $disk,apple6 $disk,apple7
328 # 6 parts
329 create_disk_image "${imgfile}" 128
330 ${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M mkpart d 30M 40M mkpart e 40M 50M mkpart f 50M 60M
331 list_parts part_apple "${imgfile}" "${outfile}"
332 check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5 $disk,apple6 $disk,apple7 $disk,apple8
335 # DVH partition types
337 # Partition #11 is reserved for whole disk by parted.
338 # Parted also aliases #9 as whole disk
341 echo "Checking DVH partition types..."
343 # 0 parts
344 create_disk_image "${imgfile}" 64
345 ${parted} -a none -s "${imgfile}" mklabel dvh
346 list_parts part_dvh "${imgfile}" "${outfile}"
347 check_output "${outfile}" $disk
349 # 1 parts
350 create_disk_image "${imgfile}" 64
351 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M 
352 list_parts part_dvh "${imgfile}" "${outfile}"
353 check_output "${outfile}" $disk $disk,dvh1
355 # 2 parts
356 create_disk_image "${imgfile}" 128
357 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M
358 list_parts part_dvh "${imgfile}" "${outfile}"
359 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2
361 # 3 parts
362 create_disk_image "${imgfile}" 128
363 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M
364 list_parts part_dvh "${imgfile}" "${outfile}"
365 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3
367 # 4 parts
368 create_disk_image "${imgfile}" 128
369 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M
370 list_parts part_dvh "${imgfile}" "${outfile}"
371 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4
373 # 5 parts
374 create_disk_image "${imgfile}" 128
375 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M mkpart primary 40M 50M
376 list_parts part_dvh "${imgfile}" "${outfile}"
377 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5
379 # 6 parts
380 create_disk_image "${imgfile}" 128
381 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M mkpart primary 40M 50M mkpart primary 50M 60M
382 list_parts part_dvh "${imgfile}" "${outfile}"
383 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6
385 # 7 parts
386 create_disk_image "${imgfile}" 128
387 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M mkpart primary 40M 50M mkpart primary 50M 60M mkpart primary 60M 70M
388 list_parts part_dvh "${imgfile}" "${outfile}"
389 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7
391 # 8 parts
392 create_disk_image "${imgfile}" 128
393 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M mkpart primary 40M 50M mkpart primary 50M 60M mkpart primary 60M 70M mkpart primary 70M 80M
394 list_parts part_dvh "${imgfile}" "${outfile}"
395 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7 $disk,dvh8
397 # 9 parts
398 create_disk_image "${imgfile}" 128
399 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M mkpart primary 40M 50M mkpart primary 50M 60M mkpart primary 60M 70M mkpart primary 70M 80M mkpart primary 80M 90M
400 list_parts part_dvh "${imgfile}" "${outfile}"
401 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7 $disk,dvh8  $disk,dvh10
403 # 10 parts
404 create_disk_image "${imgfile}" 128
405 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M mkpart primary 40M 50M mkpart primary 50M 60M mkpart primary 60M 70M mkpart primary 70M 80M mkpart primary 80M 90M mkpart primary 90M 100M
406 list_parts part_dvh "${imgfile}" "${outfile}"
407 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7 $disk,dvh8 $disk,dvh10 $disk,dvh12
409 # 11 parts
410 create_disk_image "${imgfile}" 128
411 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M mkpart primary 40M 50M mkpart primary 50M 60M mkpart primary 60M 70M mkpart primary 70M 80M mkpart primary 80M 90M mkpart primary 90M 100M mkpart primary 100M 110M
412 list_parts part_dvh "${imgfile}" "${outfile}"
413 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7 $disk,dvh8 $disk,dvh10 $disk,dvh12 $disk,dvh13
415 # 12 parts
416 create_disk_image "${imgfile}" 128
417 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M mkpart primary 40M 50M mkpart primary 50M 60M mkpart primary 60M 70M mkpart primary 70M 80M mkpart primary 80M 90M mkpart primary 90M 100M mkpart primary 100M 110M mkpart primary 110M 120M
418 list_parts part_dvh "${imgfile}" "${outfile}"
419 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7 $disk,dvh8 $disk,dvh10 $disk,dvh12 $disk,dvh13 $disk,dvh14
421 # 13 parts
422 create_disk_image "${imgfile}" 135
423 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M mkpart primary 40M 50M mkpart primary 50M 60M mkpart primary 60M 70M mkpart primary 70M 80M mkpart primary 80M 90M mkpart primary 90M 100M mkpart primary 100M 110M mkpart primary 110M 120M mkpart primary 120M 130M
424 list_parts part_dvh "${imgfile}" "${outfile}"
425 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7 $disk,dvh8 $disk,dvh10 $disk,dvh12 $disk,dvh13 $disk,dvh14 $disk,dvh15
427 # 14 parts
428 create_disk_image "${imgfile}" 145
429 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M mkpart primary 40M 50M mkpart primary 50M 60M mkpart primary 60M 70M mkpart primary 70M 80M mkpart primary 80M 90M mkpart primary 90M 100M mkpart primary 100M 110M mkpart primary 110M 120M mkpart primary 120M 130M mkpart primary 130M 140M
430 list_parts part_dvh "${imgfile}" "${outfile}"
431 check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7 $disk,dvh8 $disk,dvh10 $disk,dvh12 $disk,dvh13 $disk,dvh14 $disk,dvh15 $disk,dvh16
433 echo "Checking AMIGA partition types..."
435 # 0 parts
436 create_disk_image "${imgfile}" 64
437 ${parted} -a none -s "${imgfile}" mklabel amiga
438 list_parts part_amiga "${imgfile}" "${outfile}"
439 check_output "${outfile}" $disk
441 # 1 parts
442 create_disk_image "${imgfile}" 64
443 ${parted} -a none -s "${imgfile}" mklabel amiga mkpart x 0 10M 
444 list_parts part_amiga "${imgfile}" "${outfile}"
445 check_output "${outfile}" $disk $disk,amiga1
447 # 2 parts
448 create_disk_image "${imgfile}" 128
449 ${parted} -a none -s "${imgfile}" mklabel amiga mkpart x 0 10M mkpart x 10M 20M
450 list_parts part_amiga "${imgfile}" "${outfile}"
451 check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2
453 # 3 parts
454 create_disk_image "${imgfile}" 128
455 ${parted} -a none -s "${imgfile}" mklabel amiga mkpart x 0 10M mkpart x 10M 20M mkpart x 20M 30M
456 list_parts part_amiga "${imgfile}" "${outfile}"
457 check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2 $disk,amiga3
459 # 4 parts
460 create_disk_image "${imgfile}" 128
461 ${parted} -a none -s "${imgfile}" mklabel amiga mkpart x 0 10M mkpart x 10M 20M mkpart x 20M 30M mkpart x 30M 40M
462 list_parts part_amiga "${imgfile}" "${outfile}"
463 check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2 $disk,amiga3 $disk,amiga4
465 # 5 parts
466 create_disk_image "${imgfile}" 128
467 ${parted} -a none -s "${imgfile}" mklabel amiga mkpart x 0 10M mkpart x 10M 20M mkpart x 20M 30M mkpart x 30M 40M mkpart x 40M 50M
468 list_parts part_amiga "${imgfile}" "${outfile}"
469 check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2 $disk,amiga3 $disk,amiga4 $disk,amiga5
471 # 6 parts
472 create_disk_image "${imgfile}" 128
473 ${parted} -a none -s "${imgfile}" mklabel amiga mkpart x 0 10M mkpart x 10M 20M mkpart x 20M 30M mkpart x 30M 40M mkpart x 40M 50M mkpart x 50M 60M
474 list_parts part_amiga "${imgfile}" "${outfile}"
475 check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2 $disk,amiga3 $disk,amiga4 $disk,amiga5 $disk,amiga6
477 # 7 parts
478 create_disk_image "${imgfile}" 128
479 ${parted} -a none -s "${imgfile}" mklabel amiga mkpart x 0 10M mkpart x 10M 20M mkpart x 20M 30M mkpart x 30M 40M mkpart x 40M 50M mkpart x 50M 60M mkpart x 60M 70M
480 list_parts part_amiga "${imgfile}" "${outfile}"
481 check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2 $disk,amiga3 $disk,amiga4 $disk,amiga5 $disk,amiga6 $disk,amiga7
484 # DragonFly BSD disklabel64
487 echo "Checking DragonFly BSD disklabel64..."
489 create_dfly_image "${imgfile}"
490 list_parts part_dfly "${imgfile}" "${outfile}"
491 check_output "${outfile}" $disk $disk,msdos1 $disk,msdos1,dfly1 $disk,msdos1,dfly2 $disk,msdos1,dfly3