grub/tests/partmap_test.in

487 lines
20 KiB
Text
Raw Normal View History

#! /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 <http://www.gnu.org/licenses/>.
2010-09-09 15:40:17 +00:00
parted=parted
2010-09-09 15:40:17 +00:00
grubshell=@builddir@/grub-shell
. "@builddir@/grub-core/modinfo.sh"
2010-09-09 15:40:17 +00:00
create_disk_image () {
name="$1"
2010-09-09 15:40:17 +00:00
size=$2
rm -f "${name}"
dd if=/dev/zero of="${name}" bs=512 count=1 seek=$((size * 2048 - 1)) status=noxfer > /dev/null
2010-09-09 15:40:17 +00:00
}
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
}
2010-09-09 15:40:17 +00:00
check_output () {
outfile=$1
shift
for dsk in $@; do
if ! grep "($dsk)" "${outfile}" >/dev/null
2010-09-09 15:40:17 +00:00
then
echo "($dsk): disk/partiton not found"
2010-09-09 15:40:17 +00:00
exit 1
fi
done
}
list_parts () {
mod=$1;
shift;
imgfile="$1"
2010-09-09 15:40:17 +00:00
shift
outfile="$1"
2010-09-09 15:40:17 +00:00
shift
2013-04-27 00:00:16 +00:00
echo ls | "${grubshell}" --disk="${imgfile}" \
--modules=$mod | tr -d "\n\r" > "${outfile}"
cat "${outfile}"
2010-09-09 15:40:17 +00:00
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
;;
2013-04-24 20:24:28 +00:00
mips-arc)
# FIXME: ARC firmware has bugs which prevent it from accessing hard disk w/o dvh disklabel.
exit 0 ;;
2013-04-25 20:42:35 +00:00
mipsel-arc)
disk=arc/scsi0/disk0/rdisk0
;;
*)
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
2010-09-09 15:40:17 +00:00
#
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
#
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
#
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
2013-04-30 15:41:32 +00:00
# 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
2010-09-09 15:40:17 +00:00
#
# Apple partition types
#
# Partition table itself is part of some partition, so there is always
2013-04-30 15:41:32 +00:00
# a partition by default. Furthermore free space is also a partition,
# so there is always at least 2 partitions
2010-09-09 15:40:17 +00:00
#
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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2010-09-09 15:40:17 +00:00
# 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
2013-04-30 15:41:32 +00:00
#
# 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