#! /bin/sh set -e # Copyright (C) 2010 Free Software Foundation, Inc. # # GRUB is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # GRUB is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GRUB. If not, see . parted=parted grubshell=@builddir@/grub-shell . "@builddir@/grub-core/modinfo.sh" create_disk_image () { name="$1" size=$2 rm -f "${name}" dd if=/dev/zero of="${name}" bs=512 count=1 seek=$((size * 2048 - 1)) status=noxfer > /dev/null } create_dfly_image () { name="$1" rm -f ${name} gunzip < "@srcdir@/tests/dfly-mbr-mbexample.mbr.img.gz" | dd of=${name} bs=1 seek=440 count=72 conv=notrunc > /dev/null gunzip < "@srcdir@/tests/dfly-mbr-mbexample.dfly.img.gz" | dd of=${name} bs=512 seek=33 count=1 conv=notrunc > /dev/null } check_output () { outfile=$1 shift for dsk in $@; do if ! grep "($dsk)" "${outfile}" >/dev/null then echo "($dsk): disk/partiton not found" exit 1 fi done } list_parts () { mod=$1; shift; imgfile="$1" shift outfile="$1" shift echo ls | "${grubshell}" --disk="${imgfile}" \ --modules=$mod | tr -d "\n\r" > "${outfile}" cat "${outfile}" echo } case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in mips-qemu_mips | mipsel-qemu_mips | i386-qemu | i386-multiboot | i386-coreboot | mipsel-loongson) disk=ata0 ;; powerpc-ieee1275) disk=ieee1275//pci@80000000/mac-io@4/ata-3@20000/disk@0 # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. exit 0 ;; sparc64-ieee1275) disk=ieee1275//pci@1fe\,0/pci-ata@5/ide0@500/disk@0 # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. exit 0 ;; i386-ieee1275) disk=ieee1275/d # FIXME: QEMU firmware has bugs which prevent it from accessing hard disk w/o recognised label. exit 0 ;; mips-arc) # FIXME: ARC firmware has bugs which prevent it from accessing hard disk w/o dvh disklabel. exit 0 ;; mipsel-arc) disk=arc/scsi0/disk0/rdisk0 ;; arm*-efi) disk=hd3 ;; *) disk=hd0 ;; esac if ! which parted >/dev/null 2>&1; then echo "parted not installed; cannot test partmap" exit 77 fi imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 # # MSDOS partition types # echo "Checking MSDOS partition types..." # 0 primary create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel msdos list_parts part_msdos "${imgfile}" "${outfile}" check_output "${outfile}" $disk # 1 primary create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M list_parts part_msdos "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,msdos1 # 2 primary create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M list_parts part_msdos "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,msdos1 $disk,msdos2 # 3 primary create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart primary 20M 30M list_parts part_msdos "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,msdos1 $disk,msdos2 $disk,msdos3 # 4 primary create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M list_parts part_msdos "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,msdos1 $disk,msdos2 $disk,msdos3 $disk,msdos4 # 1 primary, 1 extended create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% list_parts part_msdos "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,msdos1 # 1 primary, 1 extended, 1 logical create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M list_parts part_msdos "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5 # 1 primary, 1 extended, 2 logical create_disk_image "${imgfile}" 128 ${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 list_parts part_msdos "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5 $disk,msdos6 # 1 primary, 1 extended, 3 logical create_disk_image "${imgfile}" 128 ${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 list_parts part_msdos "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5 $disk,msdos6 $disk,msdos7 # 1 primary, 1 extended, 4 logical create_disk_image "${imgfile}" 128 ${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 list_parts part_msdos "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5 $disk,msdos6 $disk,msdos7 $disk,msdos8 # # GPT partition types # echo "Checking GPT partition types..." # 0 parts create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel gpt list_parts part_gpt "${imgfile}" "${outfile}" check_output "${outfile}" $disk # 1 parts create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M list_parts part_gpt "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,gpt1 # 2 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M list_parts part_gpt "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 # 3 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 20M 30M list_parts part_gpt "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3 # 4 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 4 20M 30M mkpart 5 30M 40M list_parts part_gpt "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3 $disk,gpt4 # 5 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_gpt "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3 $disk,gpt4 $disk,gpt5 # 6 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_gpt "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3 $disk,gpt4 $disk,gpt5 $disk,gpt6 # # SUN partition types # # It seems partition #3 is reserved for whole disk by parted. # echo "Checking SUN partition types..." # 0 parts create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel sun list_parts part_sun "${imgfile}" "${outfile}" check_output "${outfile}" $disk # 1 parts create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M list_parts part_sun "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,sun1 # 2 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M list_parts part_sun "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,sun1 $disk,sun2 # 3 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M list_parts part_sun "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 # 4 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M list_parts part_sun "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 $disk,sun5 # 5 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M mkpart 40M 50M list_parts part_sun "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 $disk,sun5 $disk,sun6 # 6 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_sun "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 $disk,sun5 $disk,sun6 $disk,sun7 # 7 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_sun "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 $disk,sun5 $disk,sun6 $disk,sun7 $disk,sun8 # # Apple partition types # # Partition table itself is part of some partition, so there is always # a partition by default. Furthermore free space is also a partition, # so there is always at least 2 partitions # echo "Checking APPLE partition types..." # 0 parts create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel mac list_parts part_apple "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,apple1 $disk,apple2 # 1 parts create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M list_parts part_apple "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple3 # 2 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M list_parts part_apple "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple3 $disk,apple4 # 3 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M list_parts part_apple "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5 # 4 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M mkpart d 30M 40M list_parts part_apple "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5 $disk,apple6 # 5 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_apple "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5 $disk,apple6 $disk,apple7 # 6 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_apple "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5 $disk,apple6 $disk,apple7 $disk,apple8 # # DVH partition types # # Partition #11 is reserved for whole disk by parted. # Parted also aliases #9 as whole disk # echo "Checking DVH partition types..." # 0 parts create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel dvh list_parts part_dvh "${imgfile}" "${outfile}" check_output "${outfile}" $disk # 1 parts create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M list_parts part_dvh "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,dvh1 # 2 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M list_parts part_dvh "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 # 3 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M list_parts part_dvh "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 # 4 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel dvh mkpart primary 3M 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M list_parts part_dvh "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 # 5 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_dvh "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 # 6 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_dvh "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 # 7 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_dvh "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7 # 8 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_dvh "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7 $disk,dvh8 # 9 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_dvh "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7 $disk,dvh8 $disk,dvh10 # 10 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_dvh "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,dvh1 $disk,dvh2 $disk,dvh3 $disk,dvh4 $disk,dvh5 $disk,dvh6 $disk,dvh7 $disk,dvh8 $disk,dvh10 $disk,dvh12 # 11 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_dvh "${imgfile}" "${outfile}" 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 # 12 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_dvh "${imgfile}" "${outfile}" 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 # 13 parts create_disk_image "${imgfile}" 135 ${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 list_parts part_dvh "${imgfile}" "${outfile}" 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 # 14 parts create_disk_image "${imgfile}" 145 ${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 list_parts part_dvh "${imgfile}" "${outfile}" 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 echo "Checking AMIGA partition types..." # 0 parts create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel amiga list_parts part_amiga "${imgfile}" "${outfile}" check_output "${outfile}" $disk # 1 parts create_disk_image "${imgfile}" 64 ${parted} -a none -s "${imgfile}" mklabel amiga mkpart x 0 10M list_parts part_amiga "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,amiga1 # 2 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel amiga mkpart x 0 10M mkpart x 10M 20M list_parts part_amiga "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2 # 3 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel amiga mkpart x 0 10M mkpart x 10M 20M mkpart x 20M 30M list_parts part_amiga "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2 $disk,amiga3 # 4 parts create_disk_image "${imgfile}" 128 ${parted} -a none -s "${imgfile}" mklabel amiga mkpart x 0 10M mkpart x 10M 20M mkpart x 20M 30M mkpart x 30M 40M list_parts part_amiga "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2 $disk,amiga3 $disk,amiga4 # 5 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_amiga "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2 $disk,amiga3 $disk,amiga4 $disk,amiga5 # 6 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_amiga "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2 $disk,amiga3 $disk,amiga4 $disk,amiga5 $disk,amiga6 # 7 parts create_disk_image "${imgfile}" 128 ${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 list_parts part_amiga "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,amiga1 $disk,amiga2 $disk,amiga3 $disk,amiga4 $disk,amiga5 $disk,amiga6 $disk,amiga7 # # DragonFly BSD disklabel64 # echo "Checking DragonFly BSD disklabel64..." create_dfly_image "${imgfile}" list_parts part_dfly "${imgfile}" "${outfile}" check_output "${outfile}" $disk $disk,msdos1 $disk,msdos1,dfly1 $disk,msdos1,dfly2 $disk,msdos1,dfly3