Create a bootable NetBSD disk image (still missing init and dynamic loader)
This commit is contained in:
parent
726f060fd3
commit
39d7686e76
|
@ -2,22 +2,50 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[ -z "$KERNEL" ]&& KERNEL="/netbsd"
|
[ -z "$FDISK" ] && FDISK="fdisk"
|
||||||
[ -z "$MKFS" ] && MKFS="newfs -F"
|
[ -z "$INSTALLBOOT" ] && INSTALLBOOT="installboot"
|
||||||
[ -z "$MOUNT" ] && MOUNT="_netbsd_mount"
|
[ -z "$KERNEL" ] && KERNEL="/netbsd"
|
||||||
[ -z "$UMOUNT" ]&& UMOUNT="_netbsd_umount"
|
[ -z "$MBRLABEL" ] && MBRLABEL="mbrlabel"
|
||||||
|
[ -z "$MKFS" ] && MKFS="newfs"
|
||||||
|
[ -z "$MOUNT" ] && MOUNT="mount"
|
||||||
|
[ -z "$UMOUNT" ] && UMOUNT="umount"
|
||||||
|
[ -z "$VNCONFIG" ] && VNCONFIG="vnconfig"
|
||||||
|
[ -z "$VND" ] && VND="vnd0"
|
||||||
|
|
||||||
|
|
||||||
#functions
|
#functions
|
||||||
_netbsd_mount()
|
#private
|
||||||
|
#image_image
|
||||||
|
_image_image()
|
||||||
{
|
{
|
||||||
$SUDO vnconfig -c vnd0 "$1" &&
|
USAGE="Options for $IMAGE_TYPE on $TARGET:\n\
|
||||||
$SUDO mount /dev/vnd0a "$2"
|
IMAGE_FILE Where to write the filesystem image\n\
|
||||||
}
|
IMAGE_KERNEL Path to the kernel\n\
|
||||||
|
IMAGE_SIZE Size of the filesystem image in kilobytes\n\
|
||||||
|
MKFS Command used to format the filesystem"
|
||||||
|
|
||||||
|
#sanity check
|
||||||
|
check "$USAGE" DD DESTDIR DEVZERO FDISK IMAGE_FILE IMAGE_KERNEL \
|
||||||
|
IMAGE_SIZE INSTALLBOOT MBRLABEL MKDIR MKFS MOUNT UMOUNT \
|
||||||
|
VNCONFIG VND
|
||||||
|
|
||||||
_netbsd_umount()
|
$MKDIR "$DESTDIR" || exit 2
|
||||||
{
|
$UMOUNT "$DESTDIR"
|
||||||
$SUDO umount "$1" &&
|
$DD if="$DEVZERO" of="$IMAGE_FILE" count="$IMAGE_SIZE" &&
|
||||||
$SUDO vnconfig -u vnd0
|
$FDISK -Ffi "$IMAGE_FILE" || exit 2
|
||||||
|
SIZE=$((IMAGE_SIZE - 63))
|
||||||
|
$FDISK -Ffu0s "169/63/$SIZE" "$IMAGE_FILE" || exit 2
|
||||||
|
$FDISK -Ffa0 "$IMAGE_FILE" || exit 2
|
||||||
|
$VNCONFIG -c "$VND" "$IMAGE_FILE" || exit 2
|
||||||
|
$MBRLABEL -frw "$VND" &&
|
||||||
|
$MKFS "${VND}e" &&
|
||||||
|
$MOUNT "/dev/${VND}e" "$DESTDIR" &&
|
||||||
|
target "install" &&
|
||||||
|
$INSTALL -m 644 "/usr/mdec/boot" "$DESTDIR/boot" &&
|
||||||
|
$INSTALL -m 755 "$IMAGE_KERNEL" "$DESTDIR/netbsd" &&
|
||||||
|
$INSTALLBOOT -m "$MACHINE" "/dev/r${VND}e" /usr/mdec/bootxx_ffsv1
|
||||||
|
RET=$?
|
||||||
|
$UMOUNT "$DESTDIR"
|
||||||
|
$VNCONFIG -u "$VND"
|
||||||
|
exit $RET
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,4 +3,12 @@
|
||||||
|
|
||||||
|
|
||||||
#includes
|
#includes
|
||||||
. "`dirname $0`/Apps/Devel/src/scripts/targets/NetBSD-i386"
|
. "`dirname $0`/Apps/Devel/src/scripts/targets/NetBSD"
|
||||||
|
|
||||||
|
|
||||||
|
#functions
|
||||||
|
#public
|
||||||
|
target_image()
|
||||||
|
{
|
||||||
|
_image_image
|
||||||
|
}
|
||||||
|
|
|
@ -10,23 +10,5 @@
|
||||||
#public
|
#public
|
||||||
target_image()
|
target_image()
|
||||||
{
|
{
|
||||||
USAGE="Options for $IMAGE_TYPE on $TARGET:\n\
|
_image_image
|
||||||
IMAGE_FILE Where to write the filesystem image\n\
|
|
||||||
IMAGE_KERNEL Path to the kernel\n\
|
|
||||||
IMAGE_SIZE Size of the filesystem image in kilobytes\n\
|
|
||||||
MKFS Command used to create the filesystem"
|
|
||||||
|
|
||||||
#sanity check
|
|
||||||
check "$USAGE" DD DESTDIR DEVZERO IMAGE_FILE IMAGE_KERNEL IMAGE_SIZE \
|
|
||||||
MKDIR MKFS MOUNT UMOUNT
|
|
||||||
|
|
||||||
$MKDIR "$DESTDIR" || exit 2
|
|
||||||
$UMOUNT "$DESTDIR"
|
|
||||||
$DD if="$DEVZERO" of="$IMAGE_FILE" count="$IMAGE_SIZE" &&
|
|
||||||
$MKFS "$IMAGE_FILE" || exit 2
|
|
||||||
$MOUNT "$IMAGE_FILE" "$DESTDIR" || exit 2
|
|
||||||
target "install"
|
|
||||||
RET=$?
|
|
||||||
$UMOUNT "$DESTDIR"
|
|
||||||
exit $RET
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,28 +8,8 @@
|
||||||
|
|
||||||
#functions
|
#functions
|
||||||
#public
|
#public
|
||||||
|
#target_image
|
||||||
target_image()
|
target_image()
|
||||||
{
|
{
|
||||||
USAGE="Options for $IMAGE_TYPE on $TARGET:\n\
|
_image_image
|
||||||
IMAGE_FILE Where to write the filesystem image\n\
|
|
||||||
IMAGE_KERNEL Path to the kernel\n\
|
|
||||||
IMAGE_SIZE Size of the filesystem image in kilobytes\n\
|
|
||||||
MKFS Command used to format the filesystem"
|
|
||||||
|
|
||||||
#sanity check
|
|
||||||
check "$USAGE" DD DESTDIR DEVZERO IMAGE_FILE IMAGE_SIZE INSTALL MKDIR \
|
|
||||||
MKFS MOUNT UMOUNT
|
|
||||||
|
|
||||||
$MKDIR "$DESTDIR" || exit 2
|
|
||||||
$UMOUNT "$DESTDIR"
|
|
||||||
$DD if="$DEVZERO" of="$IMAGE_FILE" count="$IMAGE_SIZE" &&
|
|
||||||
$MKFS "$IMAGE_FILE" || exit 2
|
|
||||||
$MOUNT "$IMAGE_FILE" "$DESTDIR" || exit 2
|
|
||||||
target "install"
|
|
||||||
RET=$?
|
|
||||||
#FIXME detect errors here too
|
|
||||||
[ ! -z "$IMAGE_KERNEL" ] &&
|
|
||||||
$INSTALL -m 755 "$IMAGE_KERNEL" "$DESTDIR/$KERNEL"
|
|
||||||
$UMOUNT "$DESTDIR"
|
|
||||||
exit $RET
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user