Modernize the genimage.sh script, add a 'hdimage' target and EFI support.
Signed-off-by: Ingo Molnar <mingo@kernel.org> -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmDZeRARHG1pbmdvQGtl cm5lbC5vcmcACgkQEnMQ0APhK1jEdw/9GB7W8EE4DBdvrNALhw/5xZEVQvYuHFV9 FKXhP5BBWaNzRy8Ak/5CRJ/+RWjn6HQuliDEzGEsrwkKo5jgOiMRhNCi0tEkkYBR UOlmBmrW4h4uqoBvBBrUtZm0rCq5uNMKYc+aXj6qtd3MNaFpN31QsKhH+oHh+dW1 nMNsdjEj8oNNc9IaPSRdS+RzxnJ+XxakbfEq4d6b+PI56G3J/L6//4tjtcX17G7u A3vdlALiCb7LG1eYHBrd8S1D1fHXi8drtS3yKSUu+eEYOmtBlZ/GZ79XaRKixFbC 1CEjzgEt9W4luGIqRPkj5llAmAYtcJFzMrZJuaIm3WFmSExvbcUbmlloKjLcL5Jt LxIdn+mALR8M616MqBYgKpX2fz/kXjVuNJbVk81DjpmQJv513NZgwJgIdKWlf3RM M0HrnP+HpHFQ65gQNRBRCvj+UnPXtISm9sd7+wscuSQ1mkl5C4v28diCsKLdpc2N MLQpCi1Q5A3ClWnRKoSuXRvmRo9iEI+g/pxXuVYZLTbRk4b5EMNzGKOsr2d0Bs/x ns26Iu10A9OeTmt6cca2WQYtbikBIJ7VBATCSGw2gU98XKFbsTqmJRQgmR7FQTFc 96eRuM9D6hBTl105Gx0QHOmbzu0x62a1S8rOWDRolEy0UYViOMlqCiHjRlSDSLmN Tq8ocC3B3yQ= =r3pr -----END PGP SIGNATURE----- Merge tag 'x86-boot-2021-06-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 boot update from Ingo Molnar: "Modernize the genimage.sh script, add a 'hdimage' target and EFI support" * tag 'x86-boot-2021-06-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/boot: Modernize genimage script; hdimage+EFI support
This commit is contained in:
commit
1b98ed0e83
@ -257,7 +257,7 @@ drivers-$(CONFIG_FB) += arch/x86/video/
|
||||
|
||||
boot := arch/x86/boot
|
||||
|
||||
BOOT_TARGETS = bzdisk fdimage fdimage144 fdimage288 isoimage
|
||||
BOOT_TARGETS = bzdisk fdimage fdimage144 fdimage288 hdimage isoimage
|
||||
|
||||
PHONY += bzImage $(BOOT_TARGETS)
|
||||
|
||||
@ -315,8 +315,9 @@ define archhelp
|
||||
echo ' fdimage - Create 1.4MB boot floppy image (arch/x86/boot/fdimage)'
|
||||
echo ' fdimage144 - Create 1.4MB boot floppy image (arch/x86/boot/fdimage)'
|
||||
echo ' fdimage288 - Create 2.8MB boot floppy image (arch/x86/boot/fdimage)'
|
||||
echo ' hdimage - Create a BIOS/EFI hard disk image (arch/x86/boot/hdimage)'
|
||||
echo ' isoimage - Create a boot CD-ROM image (arch/x86/boot/image.iso)'
|
||||
echo ' bzdisk/fdimage*/isoimage also accept:'
|
||||
echo ' bzdisk/fdimage*/hdimage/isoimage also accept:'
|
||||
echo ' FDARGS="..." arguments for the booted kernel'
|
||||
echo ' FDINITRD=file initrd for the booted kernel'
|
||||
echo ''
|
||||
|
1
arch/x86/boot/.gitignore
vendored
1
arch/x86/boot/.gitignore
vendored
@ -11,3 +11,4 @@ setup.elf
|
||||
fdimage
|
||||
mtools.conf
|
||||
image.iso
|
||||
hdimage
|
||||
|
@ -29,7 +29,7 @@ KCOV_INSTRUMENT := n
|
||||
SVGA_MODE := -DSVGA_MODE=NORMAL_VGA
|
||||
|
||||
targets := vmlinux.bin setup.bin setup.elf bzImage
|
||||
targets += fdimage fdimage144 fdimage288 image.iso mtools.conf
|
||||
targets += fdimage fdimage144 fdimage288 image.iso hdimage
|
||||
subdir- := compressed
|
||||
|
||||
setup-y += a20.o bioscall.o cmdline.o copy.o cpu.o cpuflags.o cpucheck.o
|
||||
@ -115,47 +115,49 @@ $(obj)/compressed/vmlinux: FORCE
|
||||
$(Q)$(MAKE) $(build)=$(obj)/compressed $@
|
||||
|
||||
# Set this if you want to pass append arguments to the
|
||||
# bzdisk/fdimage/isoimage kernel
|
||||
# bzdisk/fdimage/hdimage/isoimage kernel
|
||||
FDARGS =
|
||||
# Set this if you want an initrd included with the
|
||||
# bzdisk/fdimage/isoimage kernel
|
||||
# Set this if you want one or more initrds included in the image
|
||||
FDINITRD =
|
||||
|
||||
image_cmdline = default linux $(FDARGS) $(if $(FDINITRD),initrd=initrd.img,)
|
||||
imgdeps = $(obj)/bzImage $(obj)/mtools.conf $(src)/genimage.sh
|
||||
|
||||
$(obj)/mtools.conf: $(src)/mtools.conf.in
|
||||
sed -e 's|@OBJ@|$(obj)|g' < $< > $@
|
||||
|
||||
quiet_cmd_genimage = GENIMAGE $3
|
||||
cmd_genimage = sh $(srctree)/$(src)/genimage.sh $2 $3 $(obj)/bzImage \
|
||||
$(obj)/mtools.conf '$(image_cmdline)' $(FDINITRD)
|
||||
targets += mtools.conf
|
||||
|
||||
PHONY += bzdisk fdimage fdimage144 fdimage288 isoimage bzlilo install
|
||||
# genimage.sh requires bash, but it also has a bunch of other
|
||||
# external dependencies.
|
||||
quiet_cmd_genimage = GENIMAGE $3
|
||||
cmd_genimage = $(BASH) $(srctree)/$(src)/genimage.sh $2 $3 $(obj)/bzImage \
|
||||
$(obj)/mtools.conf '$(FDARGS)' $(FDINITRD)
|
||||
|
||||
PHONY += bzdisk fdimage fdimage144 fdimage288 hdimage isoimage install
|
||||
|
||||
# This requires write access to /dev/fd0
|
||||
bzdisk: $(obj)/bzImage $(obj)/mtools.conf
|
||||
# All images require syslinux to be installed; hdimage also requires
|
||||
# EDK2/OVMF if the kernel is compiled with the EFI stub.
|
||||
bzdisk: $(imgdeps)
|
||||
$(call cmd,genimage,bzdisk,/dev/fd0)
|
||||
|
||||
# These require being root or having syslinux 2.02 or higher installed
|
||||
fdimage fdimage144: $(obj)/bzImage $(obj)/mtools.conf
|
||||
fdimage fdimage144: $(imgdeps)
|
||||
$(call cmd,genimage,fdimage144,$(obj)/fdimage)
|
||||
@$(kecho) 'Kernel: $(obj)/fdimage is ready'
|
||||
|
||||
fdimage288: $(obj)/bzImage $(obj)/mtools.conf
|
||||
fdimage288: $(imgdeps)
|
||||
$(call cmd,genimage,fdimage288,$(obj)/fdimage)
|
||||
@$(kecho) 'Kernel: $(obj)/fdimage is ready'
|
||||
|
||||
isoimage: $(obj)/bzImage
|
||||
hdimage: $(imgdeps)
|
||||
$(call cmd,genimage,hdimage,$(obj)/hdimage)
|
||||
@$(kecho) 'Kernel: $(obj)/hdimage is ready'
|
||||
|
||||
isoimage: $(imgdeps)
|
||||
$(call cmd,genimage,isoimage,$(obj)/image.iso)
|
||||
@$(kecho) 'Kernel: $(obj)/image.iso is ready'
|
||||
|
||||
bzlilo:
|
||||
if [ -f $(INSTALL_PATH)/vmlinuz ]; then mv $(INSTALL_PATH)/vmlinuz $(INSTALL_PATH)/vmlinuz.old; fi
|
||||
if [ -f $(INSTALL_PATH)/System.map ]; then mv $(INSTALL_PATH)/System.map $(INSTALL_PATH)/System.old; fi
|
||||
cat $(obj)/bzImage > $(INSTALL_PATH)/vmlinuz
|
||||
cp System.map $(INSTALL_PATH)/
|
||||
if [ -x /sbin/lilo ]; then /sbin/lilo; else /etc/lilo/install; fi
|
||||
|
||||
install:
|
||||
sh $(srctree)/$(src)/install.sh $(KERNELRELEASE) $(obj)/bzImage \
|
||||
$(CONFIG_SHELL) $(srctree)/$(src)/install.sh \
|
||||
$(KERNELRELEASE) $(obj)/bzImage \
|
||||
System.map "$(INSTALL_PATH)"
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
#
|
||||
# This file is subject to the terms and conditions of the GNU General Public
|
||||
# License. See the file "COPYING" in the main directory of this archive
|
||||
@ -8,15 +8,24 @@
|
||||
#
|
||||
# Adapted from code in arch/x86/boot/Makefile by H. Peter Anvin and others
|
||||
#
|
||||
# "make fdimage/fdimage144/fdimage288/isoimage" script for x86 architecture
|
||||
# "make fdimage/fdimage144/fdimage288/hdimage/isoimage"
|
||||
# script for x86 architecture
|
||||
#
|
||||
# Arguments:
|
||||
# $1 - fdimage format
|
||||
# $2 - target image file
|
||||
# $3 - kernel bzImage file
|
||||
# $4 - mtool configuration file
|
||||
# $5 - kernel cmdline
|
||||
# $6 - inird image file
|
||||
# $1 - fdimage format
|
||||
# $2 - target image file
|
||||
# $3 - kernel bzImage file
|
||||
# $4 - mtools configuration file
|
||||
# $5 - kernel cmdline
|
||||
# $6+ - initrd image file(s)
|
||||
#
|
||||
# This script requires:
|
||||
# bash
|
||||
# syslinux
|
||||
# mtools (for fdimage* and hdimage)
|
||||
# edk2/OVMF (for hdimage)
|
||||
#
|
||||
# Otherwise try to stick to POSIX shell commands...
|
||||
#
|
||||
|
||||
# Use "make V=1" to debug this script
|
||||
@ -26,105 +35,237 @@ case "${KBUILD_VERBOSE}" in
|
||||
;;
|
||||
esac
|
||||
|
||||
verify () {
|
||||
if [ ! -f "$1" ]; then
|
||||
echo "" 1>&2
|
||||
echo " *** Missing file: $1" 1>&2
|
||||
echo "" 1>&2
|
||||
exit 1
|
||||
# Exit the top-level shell with an error
|
||||
topshell=$$
|
||||
trap 'exit 1' USR1
|
||||
die() {
|
||||
echo "" 1>&2
|
||||
echo " *** $*" 1>&2
|
||||
echo "" 1>&2
|
||||
kill -USR1 $topshell
|
||||
}
|
||||
|
||||
# Verify the existence and readability of a file
|
||||
verify() {
|
||||
if [ ! -f "$1" -o ! -r "$1" ]; then
|
||||
die "Missing file: $1"
|
||||
fi
|
||||
}
|
||||
|
||||
diskfmt="$1"
|
||||
FIMAGE="$2"
|
||||
FBZIMAGE="$3"
|
||||
MTOOLSRC="$4"
|
||||
KCMDLINE="$5"
|
||||
shift 5 # Remaining arguments = initrd files
|
||||
|
||||
export MTOOLSRC=$4
|
||||
FIMAGE=$2
|
||||
FBZIMAGE=$3
|
||||
KCMDLINE=$5
|
||||
FDINITRD=$6
|
||||
export MTOOLSRC
|
||||
|
||||
# common options for dd
|
||||
dd='dd iflag=fullblock'
|
||||
|
||||
# Make sure the files actually exist
|
||||
verify "$FBZIMAGE"
|
||||
|
||||
declare -a FDINITRDS
|
||||
irdpfx=' initrd='
|
||||
initrdopts_syslinux=''
|
||||
initrdopts_efi=''
|
||||
for f in "$@"; do
|
||||
if [ -f "$f" -a -r "$f" ]; then
|
||||
FDINITRDS=("${FDINITRDS[@]}" "$f")
|
||||
fname="$(basename "$f")"
|
||||
initrdopts_syslinux="${initrdopts_syslinux}${irdpfx}${fname}"
|
||||
irdpfx=,
|
||||
initrdopts_efi="${initrdopts_efi} initrd=${fname}"
|
||||
fi
|
||||
done
|
||||
|
||||
# Read a $3-byte littleendian unsigned value at offset $2 from file $1
|
||||
le() {
|
||||
local n=0
|
||||
local m=1
|
||||
for b in $(od -A n -v -j $2 -N $3 -t u1 "$1"); do
|
||||
n=$((n + b*m))
|
||||
m=$((m * 256))
|
||||
done
|
||||
echo $n
|
||||
}
|
||||
|
||||
# Get the EFI architecture name such that boot{name}.efi is the default
|
||||
# boot file name. Returns false with no output if the file is not an
|
||||
# EFI image or otherwise unknown.
|
||||
efiarch() {
|
||||
[ -f "$1" ] || return
|
||||
[ $(le "$1" 0 2) -eq 23117 ] || return # MZ magic
|
||||
peoffs=$(le "$1" 60 4) # PE header offset
|
||||
[ $peoffs -ge 64 ] || return
|
||||
[ $(le "$1" $peoffs 4) -eq 17744 ] || return # PE magic
|
||||
case $(le "$1" $((peoffs+4+20)) 2) in # PE type
|
||||
267) ;; # PE32
|
||||
523) ;; # PE32+
|
||||
*) return 1 ;; # Invalid
|
||||
esac
|
||||
[ $(le "$1" $((peoffs+4+20+68)) 2) -eq 10 ] || return # EFI app
|
||||
case $(le "$1" $((peoffs+4)) 2) in # Machine type
|
||||
332) echo i386 ;;
|
||||
450) echo arm ;;
|
||||
512) echo ia64 ;;
|
||||
20530) echo riscv32 ;;
|
||||
20580) echo riscv64 ;;
|
||||
20776) echo riscv128 ;;
|
||||
34404) echo x64 ;;
|
||||
43620) echo aa64 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Get the combined sizes in bytes of the files given, counting sparse
|
||||
# files as full length, and padding each file to a 4K block size
|
||||
filesizes() {
|
||||
local t=0
|
||||
local s
|
||||
for s in $(ls -lnL "$@" 2>/dev/null | awk '/^-/{ print $5; }'); do
|
||||
t=$((t + ((s+4095)/4096)*4096))
|
||||
done
|
||||
echo $t
|
||||
}
|
||||
|
||||
# Expand directory names which should be in /usr/share into a list
|
||||
# of possible alternatives
|
||||
sharedirs() {
|
||||
local dir file
|
||||
for dir in /usr/share /usr/lib64 /usr/lib; do
|
||||
for file; do
|
||||
echo "$dir/$file"
|
||||
echo "$dir/${file^^}"
|
||||
done
|
||||
done
|
||||
}
|
||||
efidirs() {
|
||||
local dir file
|
||||
for dir in /usr/share /boot /usr/lib64 /usr/lib; do
|
||||
for file; do
|
||||
echo "$dir/$file"
|
||||
echo "$dir/${file^^}"
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
findsyslinux() {
|
||||
local f="$(find -L $(sharedirs syslinux isolinux) \
|
||||
-name "$1" -readable -type f -print -quit 2>/dev/null)"
|
||||
if [ ! -f "$f" ]; then
|
||||
die "Need a $1 file, please install syslinux/isolinux."
|
||||
fi
|
||||
echo "$f"
|
||||
return 0
|
||||
}
|
||||
|
||||
findovmf() {
|
||||
local arch="$1"
|
||||
shift
|
||||
local -a names=(-false)
|
||||
local name f
|
||||
for name; do
|
||||
names=("${names[@]}" -or -iname "$name")
|
||||
done
|
||||
for f in $(find -L $(efidirs edk2 ovmf) \
|
||||
\( "${names[@]}" \) -readable -type f \
|
||||
-print 2>/dev/null); do
|
||||
if [ "$(efiarch "$f")" = "$arch" ]; then
|
||||
echo "$f"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
die "Need a $1 file for $arch, please install EDK2/OVMF."
|
||||
}
|
||||
|
||||
do_mcopy() {
|
||||
if [ ${#FDINITRDS[@]} -gt 0 ]; then
|
||||
mcopy "${FDINITRDS[@]}" "$1"
|
||||
fi
|
||||
if [ -n "$efishell" ]; then
|
||||
mmd "$1"EFI "$1"EFI/Boot
|
||||
mcopy "$efishell" "$1"EFI/Boot/boot${kefiarch}.efi
|
||||
fi
|
||||
if [ -n "$kefiarch" ]; then
|
||||
echo linux "$KCMDLINE$initrdopts_efi" | \
|
||||
mcopy - "$1"startup.nsh
|
||||
fi
|
||||
echo default linux "$KCMDLINE$initrdopts_syslinux" | \
|
||||
mcopy - "$1"syslinux.cfg
|
||||
mcopy "$FBZIMAGE" "$1"linux
|
||||
}
|
||||
|
||||
genbzdisk() {
|
||||
verify "$MTOOLSRC"
|
||||
mformat a:
|
||||
syslinux $FIMAGE
|
||||
echo "$KCMDLINE" | mcopy - a:syslinux.cfg
|
||||
if [ -f "$FDINITRD" ] ; then
|
||||
mcopy "$FDINITRD" a:initrd.img
|
||||
fi
|
||||
mcopy $FBZIMAGE a:linux
|
||||
mformat -v 'LINUX_BOOT' a:
|
||||
syslinux "$FIMAGE"
|
||||
do_mcopy a:
|
||||
}
|
||||
|
||||
genfdimage144() {
|
||||
verify "$MTOOLSRC"
|
||||
dd if=/dev/zero of=$FIMAGE bs=1024 count=1440 2> /dev/null
|
||||
mformat v:
|
||||
syslinux $FIMAGE
|
||||
echo "$KCMDLINE" | mcopy - v:syslinux.cfg
|
||||
if [ -f "$FDINITRD" ] ; then
|
||||
mcopy "$FDINITRD" v:initrd.img
|
||||
fi
|
||||
mcopy $FBZIMAGE v:linux
|
||||
$dd if=/dev/zero of="$FIMAGE" bs=1024 count=1440 2>/dev/null
|
||||
mformat -v 'LINUX_BOOT' v:
|
||||
syslinux "$FIMAGE"
|
||||
do_mcopy v:
|
||||
}
|
||||
|
||||
genfdimage288() {
|
||||
verify "$MTOOLSRC"
|
||||
dd if=/dev/zero of=$FIMAGE bs=1024 count=2880 2> /dev/null
|
||||
mformat w:
|
||||
syslinux $FIMAGE
|
||||
echo "$KCMDLINE" | mcopy - W:syslinux.cfg
|
||||
if [ -f "$FDINITRD" ] ; then
|
||||
mcopy "$FDINITRD" w:initrd.img
|
||||
$dd if=/dev/zero of="$FIMAGE" bs=1024 count=2880 2>/dev/null
|
||||
mformat -v 'LINUX_BOOT' w:
|
||||
syslinux "$FIMAGE"
|
||||
do_mcopy w:
|
||||
}
|
||||
|
||||
genhdimage() {
|
||||
verify "$MTOOLSRC"
|
||||
mbr="$(findsyslinux mbr.bin)"
|
||||
kefiarch="$(efiarch "$FBZIMAGE")"
|
||||
if [ -n "$kefiarch" ]; then
|
||||
# The efishell provides command line handling
|
||||
efishell="$(findovmf $kefiarch shell.efi shell${kefiarch}.efi)"
|
||||
ptype='-T 0xef' # EFI system partition, no GPT
|
||||
fi
|
||||
mcopy $FBZIMAGE w:linux
|
||||
sizes=$(filesizes "$FBZIMAGE" "${FDINITRDS[@]}" "$efishell")
|
||||
# Allow 1% + 1 MiB for filesystem and partition table overhead,
|
||||
# syslinux, and config files
|
||||
megs=$(((sizes + sizes/100 + 2*1024*1024 - 1)/(1024*1024)))
|
||||
$dd if=/dev/zero of="$FIMAGE" bs=$((1024*1024)) count=$megs 2>/dev/null
|
||||
mpartition -I -c -s 32 -h 64 -t $megs $ptype -b 512 -a h:
|
||||
$dd if="$mbr" of="$FIMAGE" bs=440 count=1 conv=notrunc 2>/dev/null
|
||||
mformat -v 'LINUX_BOOT' -s 32 -h 64 -t $megs h:
|
||||
syslinux --offset $((512*512)) "$FIMAGE"
|
||||
do_mcopy h:
|
||||
}
|
||||
|
||||
geniso() {
|
||||
tmp_dir=`dirname $FIMAGE`/isoimage
|
||||
rm -rf $tmp_dir
|
||||
mkdir $tmp_dir
|
||||
for i in lib lib64 share ; do
|
||||
for j in syslinux ISOLINUX ; do
|
||||
if [ -f /usr/$i/$j/isolinux.bin ] ; then
|
||||
isolinux=/usr/$i/$j/isolinux.bin
|
||||
fi
|
||||
done
|
||||
for j in syslinux syslinux/modules/bios ; do
|
||||
if [ -f /usr/$i/$j/ldlinux.c32 ]; then
|
||||
ldlinux=/usr/$i/$j/ldlinux.c32
|
||||
fi
|
||||
done
|
||||
if [ -n "$isolinux" -a -n "$ldlinux" ] ; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ -z "$isolinux" ] ; then
|
||||
echo 'Need an isolinux.bin file, please install syslinux/isolinux.'
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$ldlinux" ] ; then
|
||||
echo 'Need an ldlinux.c32 file, please install syslinux/isolinux.'
|
||||
exit 1
|
||||
fi
|
||||
cp $isolinux $tmp_dir
|
||||
cp $ldlinux $tmp_dir
|
||||
cp $FBZIMAGE $tmp_dir/linux
|
||||
echo "$KCMDLINE" > $tmp_dir/isolinux.cfg
|
||||
if [ -f "$FDINITRD" ] ; then
|
||||
cp "$FDINITRD" $tmp_dir/initrd.img
|
||||
fi
|
||||
genisoimage -J -r -input-charset=utf-8 -quiet -o $FIMAGE \
|
||||
-b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 \
|
||||
-boot-info-table $tmp_dir
|
||||
isohybrid $FIMAGE 2>/dev/null || true
|
||||
rm -rf $tmp_dir
|
||||
tmp_dir="$(dirname "$FIMAGE")/isoimage"
|
||||
rm -rf "$tmp_dir"
|
||||
mkdir "$tmp_dir"
|
||||
isolinux=$(findsyslinux isolinux.bin)
|
||||
ldlinux=$(findsyslinux ldlinux.c32)
|
||||
cp "$isolinux" "$ldlinux" "$tmp_dir"
|
||||
cp "$FBZIMAGE" "$tmp_dir"/linux
|
||||
echo default linux "$KCMDLINE" > "$tmp_dir"/isolinux.cfg
|
||||
cp "${FDINITRDS[@]}" "$tmp_dir"/
|
||||
genisoimage -J -r -appid 'LINUX_BOOT' -input-charset=utf-8 \
|
||||
-quiet -o "$FIMAGE" -b isolinux.bin \
|
||||
-c boot.cat -no-emul-boot -boot-load-size 4 \
|
||||
-boot-info-table "$tmp_dir"
|
||||
isohybrid "$FIMAGE" 2>/dev/null || true
|
||||
rm -rf "$tmp_dir"
|
||||
}
|
||||
|
||||
case $1 in
|
||||
rm -f "$FIMAGE"
|
||||
|
||||
case "$diskfmt" in
|
||||
bzdisk) genbzdisk;;
|
||||
fdimage144) genfdimage144;;
|
||||
fdimage288) genfdimage288;;
|
||||
hdimage) genhdimage;;
|
||||
isoimage) geniso;;
|
||||
*) echo 'Unknown image format'; exit 1;
|
||||
*) die "Unknown image format: $diskfmt";;
|
||||
esac
|
||||
|
@ -14,4 +14,7 @@ drive v:
|
||||
drive w:
|
||||
file="@OBJ@/fdimage" cylinders=80 heads=2 sectors=36 filter
|
||||
|
||||
# Hard disk
|
||||
drive h:
|
||||
file="@OBJ@/hdimage" partition=1 mformat_only
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user