Add the new template file based autopartitioning feature of disklabel(8)
authorrpe <rpe@openbsd.org>
Mon, 4 May 2015 19:55:26 +0000 (19:55 +0000)
committerrpe <rpe@openbsd.org>
Mon, 4 May 2015 19:55:26 +0000 (19:55 +0000)
to the OpenBSD installer. It is available during unattended installation.
The template file is fetched from an url, provided as answer to a new
question in the response file:

    URL to autopartitioning template for disklabel = url

Original diff from and OK henning@
'no objection' krw@

19 files changed:
distrib/alpha/common/install.md
distrib/amd64/common/install.md
distrib/armish/ramdisk/install.md
distrib/armv7/ramdisk/install.md
distrib/aviion/ramdisk/install.md
distrib/hppa/install.md
distrib/i386/common/install.md
distrib/landisk/ramdisk/install.md
distrib/loongson/ramdisk/install.md
distrib/luna88k/ramdisk/install.md
distrib/macppc/ramdisk/install.md
distrib/miniroot/install.sub
distrib/octeon/ramdisk/install.md
distrib/sgi/ramdisk/install.md
distrib/socppc/ramdisk/install.md
distrib/sparc/install.md
distrib/sparc64/common/install.md
distrib/vax/install.md
distrib/zaurus/ramdisk/install.md

index 339c3c3..6431d48 100644 (file)
@@ -1,4 +1,4 @@
-#       $OpenBSD: install.md,v 1.38 2014/08/15 09:45:54 rpe Exp $
+#       $OpenBSD: install.md,v 1.39 2015/05/04 19:55:26 rpe Exp $
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -47,6 +47,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index 830f5dc..0f9d883 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.37 2015/01/12 16:33:31 deraadt Exp $
+#      $OpenBSD: install.md,v 1.38 2015/05/04 19:55:26 rpe Exp $
 #
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -98,6 +98,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index 5e27042..803f654 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.16 2013/11/16 18:37:26 rpe Exp $
+#      $OpenBSD: install.md,v 1.17 2015/05/04 19:55:26 rpe Exp $
 #
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -87,6 +87,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index dfc893b..35771ab 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.6 2015/01/26 01:55:55 jsg Exp $
+#      $OpenBSD: install.md,v 1.7 2015/05/04 19:55:26 rpe Exp $
 #
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -190,6 +190,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index f2e812d..7e27e00 100644 (file)
@@ -1,4 +1,4 @@
-#       $OpenBSD: install.md,v 1.5 2014/08/15 09:45:54 rpe Exp $
+#       $OpenBSD: install.md,v 1.6 2015/05/04 19:55:26 rpe Exp $
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
 # All rights reserved.
 #
@@ -114,6 +114,11 @@ __EOT
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index 9041c74..2e78018 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.27 2015/03/08 13:13:48 deraadt Exp $
+#      $OpenBSD: install.md,v 1.28 2015/05/04 19:55:26 rpe Exp $
 #
 # machine dependent section of installation/upgrade script.
 #
@@ -23,6 +23,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index f6599ee..05c1942 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.60 2015/01/12 16:33:31 deraadt Exp $
+#      $OpenBSD: install.md,v 1.61 2015/05/04 19:55:26 rpe Exp $
 #
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -98,6 +98,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index 2b523c0..3d3b07b 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.30 2013/11/16 18:37:27 rpe Exp $
+#      $OpenBSD: install.md,v 1.31 2015/05/04 19:55:26 rpe Exp $
 #
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -91,6 +91,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index 83d4d85..8989819 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.16 2015/04/19 00:37:36 deraadt Exp $
+#      $OpenBSD: install.md,v 1.17 2015/05/04 19:55:26 rpe Exp $
 #
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -133,6 +133,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index 385be39..1d21db7 100644 (file)
@@ -1,4 +1,4 @@
-#       $OpenBSD: install.md,v 1.18 2014/08/15 09:45:54 rpe Exp $
+#       $OpenBSD: install.md,v 1.19 2015/05/04 19:55:26 rpe Exp $
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
 # All rights reserved.
 #
@@ -46,6 +46,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index 32a1086..f0a5da7 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.56 2014/08/20 06:52:21 phessler Exp $
+#      $OpenBSD: install.md,v 1.57 2015/05/04 19:55:26 rpe Exp $
 #
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -173,6 +173,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index c77003c..2d14bbd 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.sub,v 1.835 2015/04/28 21:41:40 sthen Exp $
+#      $OpenBSD: install.sub,v 1.836 2015/05/04 19:55:26 rpe Exp $
 #
 # Copyright (c) 1997-2015 Todd Miller, Theo de Raadt, Ken Westerback
 # Copyright (c) 2015, Robert Peichaer <rpe@openbsd.org>
@@ -1671,6 +1671,18 @@ get_rootinfo() {
        SWAPDEV=${ROOTDISK}b
 }
 
+# Ask for and download autopartitioning template for disklabel.
+get_disklabel_template() {
+       local _dl=/disklabel.auto
+
+       ask "URL to autopartitioning template for disklabel?" none
+       [[ $resp == none ]] && return 1
+       echo "Fetching $resp"
+       ftp -Vo $_dl "$resp" && [[ -s $_dl ]] && return
+       echo "No autopartitioning template found."
+       exit 1
+}
+
 # Start interface using the on-disk hostname.if file passed as argument $1.
 # Much of this is gratuitously stolen from /etc/netstart.
 ifstart () {
index e987ff2..f2266a9 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.6 2014/03/05 20:03:01 jasper Exp $
+#      $OpenBSD: install.md,v 1.7 2015/05/04 19:55:26 rpe Exp $
 #
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -115,6 +115,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index e374abc..1ae0876 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.33 2014/03/24 20:47:30 miod Exp $
+#      $OpenBSD: install.md,v 1.34 2015/05/04 19:55:26 rpe Exp $
 #
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -145,6 +145,11 @@ __EOT
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index a28c1a8..e6bddb4 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.18 2013/11/16 18:37:27 rpe Exp $
+#      $OpenBSD: install.md,v 1.19 2015/05/04 19:55:26 rpe Exp $
 #
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -95,6 +95,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index 0b4d023..3debe2f 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.70 2015/03/11 15:21:50 deraadt Exp $
+#      $OpenBSD: install.md,v 1.71 2015/05/04 19:55:27 rpe Exp $
 #      $NetBSD: install.md,v 1.3.2.5 1996/08/26 15:45:28 gwr Exp $
 #
 #
@@ -49,6 +49,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index e8789d4..cdf32b9 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.42 2014/11/22 15:02:27 deraadt Exp $
+#      $OpenBSD: install.md,v 1.43 2015/05/04 19:55:27 rpe Exp $
 #      $NetBSD: install.md,v 1.3.2.5 1996/08/26 15:45:28 gwr Exp $
 #
 #
@@ -53,6 +53,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index 52a03c4..dfcdb70 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.42 2014/03/22 02:24:43 krw Exp $
+#      $OpenBSD: install.md,v 1.43 2015/05/04 19:55:27 rpe Exp $
 #      $NetBSD: install.md,v 1.3.2.5 1996/08/26 15:45:28 gwr Exp $
 #
 #
@@ -49,6 +49,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"
index a513a6e..ff00c3b 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: install.md,v 1.31 2014/08/06 16:13:48 ajacoutot Exp $
+#      $OpenBSD: install.md,v 1.32 2015/05/04 19:55:27 rpe Exp $
 #
 #
 # Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -89,6 +89,11 @@ md_prep_disklabel() {
 
        _f=/tmp/fstab.$_disk
        if [[ $_disk == $ROOTDISK ]]; then
+               if $AUTO && get_disklabel_template; then
+                       disklabel -T /disklabel.auto $FSTABFLAG $_f -w -A $_disk && return
+                       echo "Autopartitioning failed"
+                       exit 1
+               fi
                while :; do
                        echo "The auto-allocated layout for $_disk is:"
                        disklabel -h -A $_disk | egrep "^#  |^  [a-p]:"