summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--distrib/loongson/ramdisk/install.md72
-rw-r--r--distrib/loongson/ramdisk/list7
2 files changed, 57 insertions, 22 deletions
diff --git a/distrib/loongson/ramdisk/install.md b/distrib/loongson/ramdisk/install.md
index a7fc6ddc90a..c9584ceca92 100644
--- a/distrib/loongson/ramdisk/install.md
+++ b/distrib/loongson/ramdisk/install.md
@@ -1,4 +1,4 @@
-# $OpenBSD: install.md,v 1.1 2010/01/31 21:36:01 otto Exp $
+# $OpenBSD: install.md,v 1.2 2010/02/18 20:20:52 otto Exp $
#
#
# Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -33,6 +33,18 @@
#
md_installboot() {
+ local _disk=$1
+
+ if mount -t ext2fs /dev/${_disk}i /mnt2 ; then
+ if mkdir -p /mnt2/boot && cp /usr/mdec/boot /mnt2/boot; then
+ umount /mnt2
+ return
+ fi
+ fi
+
+ echo "Failed to install bootblocks."
+ echo "You will not be able to boot OpenBSD from $_disk."
+ exit
}
md_prep_fdisk() {
@@ -40,9 +52,9 @@ md_prep_fdisk() {
while :; do
_d=whole
- if [[ -n $(fdisk $_disk | grep 'Signature: 0xAA55') ]]; then
+ if fdisk $_disk | grep -q 'Signature: 0xAA55'; then
fdisk $_disk
- if [[ -n $(fdisk $_disk | grep '^..: A6 ') ]]; then
+ if fdisk $_disk | grep -q '^..: A6 '; then
_q=", use the (O)penBSD area,"
_d=OpenBSD
fi
@@ -52,33 +64,44 @@ md_prep_fdisk() {
ask "Use (W)hole disk$_q or (E)dit the MBR?" "$_d"
case $resp in
w*|W*)
- echo "Disabled, you probably do not want that."
-# echo -n "Setting OpenBSD MBR partition to whole $_disk..."
-# fdisk -e ${_disk} <<__EOT >/dev/null
-#reinit
-#update
-#write
-#quit
-#__EOT
-# echo "done."
- return ;;
+ echo -n "Creating a 1MB ext2 partition and an OpenBSD partition for rest of $_disk..."
+ fdisk -e $_disk <<__EOT >/dev/null
+reinit
+update
+write
+quit
+__EOT
+ echo "done."
+ disklabel $_disk 2>/dev/null | grep -q "^ i:" || disklabel -w -d $_disk
+ newfs -t ext2fs ${_disk}i
+ break ;;
e*|E*)
# Manually configure the MBR.
cat <<__EOT
-You will now create a single MBR partition to contain your OpenBSD data. This
-partition must have an id of 'A6'; must *NOT* overlap other partitions; and
-must be marked as the only active partition. Inside the fdisk command, the
-'manual' command describes all the fdisk commands in detail.
+You will now create one MBR partition to contain your OpenBSD data
+and one MBR partition to contain the program that PMON uses
+to boot OpenBSD. Neither partition will overlap any other partition.
+
+The OpenBSD MBR partition will have an id of 'A6' and the boot MBR
+partition will have an id of '83' (Linux files). The boot partition will be
+at least 1MB and be the first 'Linux files' partition on the disk.
+The installer assumes there is already an ext2 or ext3 filesystem on the
+first 'Linux files' partition.
$(fdisk ${_disk})
__EOT
- fdisk -e ${_disk}
- [[ -n $(fdisk $_disk | grep ' A6 ') ]] && return
- echo No OpenBSD partition in MBR, try again. ;;
- o*|O*) return ;;
+ fdisk -e $_disk
+ fdisk $_disk | grep -q '^..: 83 ' || \
+ { echo "\nNo Linux files (id 83) partition!\n" ; continue ; }
+ fdisk $_disk | grep -q "^..: A6 " || \
+ { echo "\nNo OpenBSD (id A6) partition!\n" ; continue ; }
+ disklabel $_disk 2>/dev/null | grep -q "^ i:" || disklabel -w -d $_disk
+ break ;;
+ o*|O*) break ;;
esac
done
+
}
md_prep_disklabel() {
@@ -120,6 +143,13 @@ __EOT
}
md_congrats() {
+ cat <<__EOT
+
+Once the machine has rebooted use PMON to boot into OpenBSD, as
+described in the INSTALL.$ARCH document. The command to boot the OpenBSD
+bootloader will be something like 'boot /dev/fs/ext2@wd0/boot/boot'
+
+__EOT
}
md_consoleinfo() {
diff --git a/distrib/loongson/ramdisk/list b/distrib/loongson/ramdisk/list
index ecdd37be795..41e5b129567 100644
--- a/distrib/loongson/ramdisk/list
+++ b/distrib/loongson/ramdisk/list
@@ -1,4 +1,4 @@
-# $OpenBSD: list,v 1.3 2010/02/17 18:07:43 miod Exp $
+# $OpenBSD: list,v 1.4 2010/02/18 20:20:52 otto Exp $
SRCDIRS distrib/special
SRCDIRS bin sbin usr.bin usr.sbin
@@ -45,6 +45,7 @@ LINK instbin sbin/mount_msdos
LINK instbin sbin/mount_nfs
LINK instbin sbin/mount_udf
LINK instbin sbin/newfs
+LINK instbin sbin/newfs_ext2fs
LINK instbin sbin/newfs_msdos
LINK instbin sbin/ping
LINK instbin sbin/ping6
@@ -73,6 +74,10 @@ SYMLINK /tmp/resolv.conf.shadow etc/resolv.conf
SYMLINK /tmp/hosts etc/hosts
TERMCAP vt100,vt220,dumb usr/share/misc/termcap
+# files in /usr/mdec
+COPY ${DESTDIR}/usr/mdec/boot usr/mdec/boot
+COPY ${DESTDIR}/usr/mdec/mbr usr/mdec/mbr
+
# firmwares that might need loading
COPY ${DESTDIR}/etc/firmware/kue etc/firmware/kue
COPY ${DESTDIR}/etc/firmware/rum-rt2573 etc/firmware/rum-rt2573