Merge ^/projects/release-install-debug:
- Rework MANIFEST generation and parsing via bsdinstall(8). - Allow selecting debugging distribution sets during install. - Rework bsdinstall(8) to fetch remote debug distribution sets when they are not available on the local install medium. - Allow selecting additional non-GENERIC kernels during install. At present, GENERIC is still required, and installed by default. Tested with: head@r293203 Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
bd81fe68ee
commit
8834318685
@ -1284,27 +1284,43 @@ packagekernel:
|
|||||||
.if defined(NO_ROOT)
|
.if defined(NO_ROOT)
|
||||||
.if !defined(NO_INSTALLKERNEL)
|
.if !defined(NO_INSTALLKERNEL)
|
||||||
cd ${DESTDIR}/${DISTDIR}/kernel; \
|
cd ${DESTDIR}/${DISTDIR}/kernel; \
|
||||||
tar cvf - @${DESTDIR}/${DISTDIR}/kernel.meta | \
|
tar cvf - --exclude '*.debug' \
|
||||||
|
@${DESTDIR}/${DISTDIR}/kernel.meta | \
|
||||||
${XZ_CMD} > ${PACKAGEDIR}/kernel.txz
|
${XZ_CMD} > ${PACKAGEDIR}/kernel.txz
|
||||||
.endif
|
.endif
|
||||||
|
cd ${DESTDIR}/${DISTDIR}/kernel; \
|
||||||
|
tar cvf - --include '*/*/*.debug' \
|
||||||
|
@${DESTDIR}/${DISTDIR}/kernel.meta | \
|
||||||
|
${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel-dbg.txz
|
||||||
.if ${BUILDKERNELS:[#]} > 1
|
.if ${BUILDKERNELS:[#]} > 1
|
||||||
.for _kernel in ${BUILDKERNELS:[2..-1]}
|
.for _kernel in ${BUILDKERNELS:[2..-1]}
|
||||||
cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
|
cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
|
||||||
tar cvf - @${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta | \
|
tar cvf - --exclude '*.debug' \
|
||||||
|
@${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta | \
|
||||||
${XZ_CMD} > ${PACKAGEDIR}/kernel.${_kernel}.txz
|
${XZ_CMD} > ${PACKAGEDIR}/kernel.${_kernel}.txz
|
||||||
|
cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
|
||||||
|
tar cvf - --include '*/*/*.debug' \
|
||||||
|
@${DESTDIR}/${DISTDIR}/kernel.${_kernel}.meta | \
|
||||||
|
${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}-dbg.txz
|
||||||
.endfor
|
.endfor
|
||||||
.endif
|
.endif
|
||||||
.else
|
.else
|
||||||
.if !defined(NO_INSTALLKERNEL)
|
.if !defined(NO_INSTALLKERNEL)
|
||||||
cd ${DESTDIR}/${DISTDIR}/kernel; \
|
cd ${DESTDIR}/${DISTDIR}/kernel; \
|
||||||
tar cvf - . | \
|
tar cvf - --exclude '*.debug' . | \
|
||||||
${XZ_CMD} > ${PACKAGEDIR}/kernel.txz
|
${XZ_CMD} > ${PACKAGEDIR}/kernel.txz
|
||||||
.endif
|
.endif
|
||||||
|
cd ${DESTDIR}/${DISTDIR}/kernel; \
|
||||||
|
tar cvf - --include '*/*/*.debug' $$(eval find .) | \
|
||||||
|
${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel-dbg.txz
|
||||||
.if ${BUILDKERNELS:[#]} > 1
|
.if ${BUILDKERNELS:[#]} > 1
|
||||||
.for _kernel in ${BUILDKERNELS:[2..-1]}
|
.for _kernel in ${BUILDKERNELS:[2..-1]}
|
||||||
cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
|
cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
|
||||||
tar cvf - . | \
|
tar cvf - --exclude '*.debug' . | \
|
||||||
${XZ_CMD} > ${PACKAGEDIR}/kernel.${_kernel}.txz
|
${XZ_CMD} > ${PACKAGEDIR}/kernel.${_kernel}.txz
|
||||||
|
cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \
|
||||||
|
tar cvf - --include '*/*/*.debug' $$(eval find .) | \
|
||||||
|
${XZ_CMD} > ${DESTDIR}/${DISTDIR}/kernel.${_kernel}-dbg.txz
|
||||||
.endfor
|
.endfor
|
||||||
.endif
|
.endif
|
||||||
.endif
|
.endif
|
||||||
|
@ -176,7 +176,7 @@ disc1: packagesystem
|
|||||||
MK_DEBUG_FILES=no
|
MK_DEBUG_FILES=no
|
||||||
# Copy distfiles
|
# Copy distfiles
|
||||||
mkdir -p ${.TARGET}/usr/freebsd-dist
|
mkdir -p ${.TARGET}/usr/freebsd-dist
|
||||||
for dist in MANIFEST $$(ls *.txz | grep -v -- '-dbg'); \
|
for dist in MANIFEST $$(ls *.txz | grep -vE -- '(base|lib32)-dbg'); \
|
||||||
do cp $${dist} ${.TARGET}/usr/freebsd-dist; \
|
do cp $${dist} ${.TARGET}/usr/freebsd-dist; \
|
||||||
done
|
done
|
||||||
# Copy documentation, if generated
|
# Copy documentation, if generated
|
||||||
@ -225,7 +225,7 @@ dvd: packagesystem
|
|||||||
MK_TESTS=no MK_DEBUG_FILES=no
|
MK_TESTS=no MK_DEBUG_FILES=no
|
||||||
# Copy distfiles
|
# Copy distfiles
|
||||||
mkdir -p ${.TARGET}/usr/freebsd-dist
|
mkdir -p ${.TARGET}/usr/freebsd-dist
|
||||||
for dist in MANIFEST $$(ls *.txz | grep -v -- '-dbg'); \
|
for dist in MANIFEST $$(ls *.txz | grep -v -- '(base|lib32)-dbg'); \
|
||||||
do cp $${dist} ${.TARGET}/usr/freebsd-dist; \
|
do cp $${dist} ${.TARGET}/usr/freebsd-dist; \
|
||||||
done
|
done
|
||||||
# Copy documentation, if generated
|
# Copy documentation, if generated
|
||||||
|
@ -56,5 +56,5 @@ NAME="$1"; shift
|
|||||||
publisher="The FreeBSD Project. http://www.FreeBSD.org/"
|
publisher="The FreeBSD Project. http://www.FreeBSD.org/"
|
||||||
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
|
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
|
||||||
makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
|
makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
|
||||||
rm "$1/etc/fstab"
|
rm -f "$1/etc/fstab"
|
||||||
rm -f efiboot.img
|
rm -f efiboot.img
|
||||||
|
@ -42,4 +42,4 @@ NAME="$1"; shift
|
|||||||
publisher="The FreeBSD Project. http://www.FreeBSD.org/"
|
publisher="The FreeBSD Project. http://www.FreeBSD.org/"
|
||||||
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
|
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
|
||||||
makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
|
makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
|
||||||
rm "$1/etc/fstab"
|
rm -f "$1/etc/fstab"
|
||||||
|
@ -42,4 +42,4 @@ NAME="$1"; shift
|
|||||||
publisher="The FreeBSD Project. http://www.FreeBSD.org/"
|
publisher="The FreeBSD Project. http://www.FreeBSD.org/"
|
||||||
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
|
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
|
||||||
makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
|
makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
|
||||||
rm "$1/etc/fstab"
|
rm -f "$1/etc/fstab"
|
||||||
|
@ -64,6 +64,6 @@ NAME="$1"; shift
|
|||||||
publisher="The FreeBSD Project. http://www.FreeBSD.org/"
|
publisher="The FreeBSD Project. http://www.FreeBSD.org/"
|
||||||
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
|
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
|
||||||
makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
|
makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
|
||||||
rm "$1/etc/fstab"
|
rm -f "$1/etc/fstab"
|
||||||
rm /tmp/hfs-boot-block
|
rm -f /tmp/hfs-boot-block
|
||||||
rm -rf "$1/ppc"
|
rm -rf "$1/ppc"
|
||||||
|
@ -9,18 +9,64 @@
|
|||||||
#
|
#
|
||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
desc_base="Base system (MANDATORY)"
|
base="Base system"
|
||||||
desc_kernel="Kernel (MANDATORY)"
|
doc="Additional Documentation"
|
||||||
desc_doc="Additional documentation"
|
kernel="Kernel"
|
||||||
doc_default=off
|
ports="Ports tree"
|
||||||
desc_lib32="32-bit compatibility libraries"
|
src="System source tree"
|
||||||
desc_ports="Ports tree"
|
lib32="32-bit compatibility libraries"
|
||||||
desc_src="System source code"
|
tests="Test suite"
|
||||||
desc_tests="Test suite"
|
|
||||||
src_default=off
|
|
||||||
tests_default=off
|
|
||||||
|
|
||||||
for i in $*; do
|
desc_base="${base} (MANDATORY)"
|
||||||
echo "`basename $i` `sha256 -q $i` `tar tvf $i | wc -l | tr -d ' '` `basename $i .txz` \"`eval echo \\\$desc_$(basename $i .txz)`\" `eval echo \\\${$(basename $i .txz)_default:-on}`"
|
desc_base_dbg="${base} (Debugging)"
|
||||||
|
desc_doc="${doc}"
|
||||||
|
desc_kernel="${kernel} (MANDATORY)"
|
||||||
|
desc_kernel_dbg="${kernel} (Debugging)"
|
||||||
|
desc_kernel_alt="Alternate ${kernel}"
|
||||||
|
desc_kernel_alt_dbg="Alternate ${kernel} (Debugging)"
|
||||||
|
desc_lib32="${lib32}"
|
||||||
|
desc_lib32_dbg="${lib32} (Debugging)"
|
||||||
|
desc_ports="${ports}"
|
||||||
|
desc_src="${src}"
|
||||||
|
desc_tests="${tests}"
|
||||||
|
|
||||||
|
default_doc=off
|
||||||
|
default_src=off
|
||||||
|
default_tests=off
|
||||||
|
default_base_dbg=off
|
||||||
|
default_lib32_dbg=off
|
||||||
|
default_kernel_alt=off
|
||||||
|
default_kernel_dbg=on
|
||||||
|
default_kernel_alt_dbg=off
|
||||||
|
|
||||||
|
for i in ${*}; do
|
||||||
|
dist="${i}"
|
||||||
|
distname="${i%%.txz}"
|
||||||
|
distname="$(echo ${distname} | tr '-' '_')"
|
||||||
|
distname="$(echo ${distname} | tr 'kernel.' 'kernel_')"
|
||||||
|
hash="$(sha256 -q ${i})"
|
||||||
|
nfiles="$(tar tvf ${i} | wc -l | tr -d ' ')"
|
||||||
|
default="$(eval echo \${default_${distname}:-on})"
|
||||||
|
desc="$(eval echo \"\${desc_${distname}}\")"
|
||||||
|
|
||||||
|
case ${i} in
|
||||||
|
kernel-dbg.txz)
|
||||||
|
desc="${desc_kernel_dbg}"
|
||||||
|
;;
|
||||||
|
kernel.*-dbg.txz)
|
||||||
|
desc="$(eval echo \"${desc_kernel_alt_dbg}\")"
|
||||||
|
desc="${desc}: $(eval echo ${i%%-dbg.txz} | cut -f 2 -d '.')"
|
||||||
|
default="$(eval echo \"${default_kernel_alt_dbg}\")"
|
||||||
|
;;
|
||||||
|
kernel.*.txz)
|
||||||
|
desc="$(eval echo \"${desc_kernel_alt}\")"
|
||||||
|
desc="${desc}: $(eval echo ${i%%.txz} | cut -f 2 -d '.')"
|
||||||
|
default="$(eval echo \"${default_kernel_alt}\")"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
printf "${dist}\t${hash}\t${nfiles}\t${distname}\t\"${desc}\"\t${default}\n"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ BASEBITSDIR="$1"
|
|||||||
publisher="The FreeBSD Project. http://www.FreeBSD.org/"
|
publisher="The FreeBSD Project. http://www.FreeBSD.org/"
|
||||||
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$BASEBITSDIR/etc/fstab"
|
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$BASEBITSDIR/etc/fstab"
|
||||||
makefs -t cd9660 -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME.tmp" "$@"
|
makefs -t cd9660 -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME.tmp" "$@"
|
||||||
rm "$BASEBITSDIR/etc/fstab"
|
rm -f "$BASEBITSDIR/etc/fstab"
|
||||||
|
|
||||||
if [ "x$BOPT" != "x-b" ]; then
|
if [ "x$BOPT" != "x-b" ]; then
|
||||||
mv "$NAME.tmp" "$NAME"
|
mv "$NAME.tmp" "$NAME"
|
||||||
|
@ -115,7 +115,8 @@ bsdinstall hostname || error "Set hostname failed"
|
|||||||
|
|
||||||
export DISTRIBUTIONS="base.txz kernel.txz"
|
export DISTRIBUTIONS="base.txz kernel.txz"
|
||||||
if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then
|
if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then
|
||||||
DISTMENU=`awk -F'\t' '!/^(kernel|base)/{print $4,$5,$6}' $BSDINSTALL_DISTDIR/MANIFEST`
|
DISTMENU=`awk -F'\t' '!/^(kernel\.txz|base\.txz)/{print $1,$5,$6}' $BSDINSTALL_DISTDIR/MANIFEST`
|
||||||
|
DISTMENU="$(echo ${DISTMENU} | sed -E 's/\.txz//g')"
|
||||||
|
|
||||||
exec 3>&1
|
exec 3>&1
|
||||||
EXTRA_DISTS=$( eval dialog \
|
EXTRA_DISTS=$( eval dialog \
|
||||||
@ -129,16 +130,20 @@ if [ -f $BSDINSTALL_DISTDIR/MANIFEST ]; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
LOCAL_DISTRIBUTIONS="MANIFEST"
|
||||||
FETCH_DISTRIBUTIONS=""
|
FETCH_DISTRIBUTIONS=""
|
||||||
for dist in $DISTRIBUTIONS; do
|
for dist in $DISTRIBUTIONS; do
|
||||||
if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then
|
if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then
|
||||||
FETCH_DISTRIBUTIONS="$FETCH_DISTRIBUTIONS $dist"
|
FETCH_DISTRIBUTIONS="$FETCH_DISTRIBUTIONS $dist"
|
||||||
|
else
|
||||||
|
LOCAL_DISTRIBUTIONS="$LOCAL_DISTRIBUTIONS $dist"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
LOCAL_DISTRIBUTIONS=`echo $LOCAL_DISTRIBUTIONS` # Trim white space
|
||||||
FETCH_DISTRIBUTIONS=`echo $FETCH_DISTRIBUTIONS` # Trim white space
|
FETCH_DISTRIBUTIONS=`echo $FETCH_DISTRIBUTIONS` # Trim white space
|
||||||
|
|
||||||
if [ -n "$FETCH_DISTRIBUTIONS" -a -n "$BSDINSTALL_CONFIGCURRENT" ]; then
|
if [ -n "$FETCH_DISTRIBUTIONS" -a -n "$BSDINSTALL_CONFIGCURRENT" ]; then
|
||||||
dialog --backtitle "FreeBSD Installer" --title "Network Installation" --msgbox "No installation files were found on the boot volume. The next few screens will allow you to configure networking so that they can be downloaded from the Internet." 0 0
|
dialog --backtitle "FreeBSD Installer" --title "Network Installation" --msgbox "Some installation files were not found on the boot volume. The next few screens will allow you to configure networking so that they can be downloaded from the Internet." 0 0
|
||||||
bsdinstall netconfig || error
|
bsdinstall netconfig || error
|
||||||
NETCONFIG_DONE=yes
|
NETCONFIG_DONE=yes
|
||||||
fi
|
fi
|
||||||
@ -299,6 +304,7 @@ esac
|
|||||||
|
|
||||||
if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then
|
if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then
|
||||||
ALL_DISTRIBUTIONS="$DISTRIBUTIONS"
|
ALL_DISTRIBUTIONS="$DISTRIBUTIONS"
|
||||||
|
WANT_DEBUG=
|
||||||
|
|
||||||
# Download to a directory in the new system as scratch space
|
# Download to a directory in the new system as scratch space
|
||||||
BSDINSTALL_FETCHDEST="$BSDINSTALL_CHROOT/usr/freebsd-dist"
|
BSDINSTALL_FETCHDEST="$BSDINSTALL_CHROOT/usr/freebsd-dist"
|
||||||
@ -310,15 +316,65 @@ if [ ! -z "$FETCH_DISTRIBUTIONS" ]; then
|
|||||||
DISTDIR_IS_UNIONFS=1
|
DISTDIR_IS_UNIONFS=1
|
||||||
mount_nullfs -o union "$BSDINSTALL_FETCHDEST" "$BSDINSTALL_DISTDIR"
|
mount_nullfs -o union "$BSDINSTALL_FETCHDEST" "$BSDINSTALL_DISTDIR"
|
||||||
else
|
else
|
||||||
export DISTRIBUTIONS="$ALL_DISTRIBUTIONS"
|
export DISTRIBUTIONS="$FETCH_DISTRIBUTIONS"
|
||||||
export BSDINSTALL_DISTDIR="$BSDINSTALL_FETCHDEST"
|
export BSDINSTALL_DISTDIR="$BSDINSTALL_FETCHDEST"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export FTP_PASSIVE_MODE=YES
|
export FTP_PASSIVE_MODE=YES
|
||||||
bsdinstall distfetch || error "Failed to fetch distribution"
|
# Iterate through the distribution list and set a flag if debugging
|
||||||
|
# distributions have been selected.
|
||||||
|
for _DISTRIBUTION in $DISTRIBUTIONS; do
|
||||||
|
case $_DISTRIBUTION in
|
||||||
|
*-dbg.*)
|
||||||
|
[ -e $BSDINSTALL_DISTDIR/$_DISTRIBUTION ] \
|
||||||
|
&& continue
|
||||||
|
WANT_DEBUG=1
|
||||||
|
DEBUG_LIST="\n$DEBUG_LIST\n$_DISTRIBUTION"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Fetch the distributions.
|
||||||
|
bsdinstall distfetch
|
||||||
|
rc=$?
|
||||||
|
|
||||||
|
if [ $rc -ne 0 ]; then
|
||||||
|
# If unable to fetch the remote distributions, recommend
|
||||||
|
# deselecting the debugging distributions, and retrying the
|
||||||
|
# installation, since failure to fetch *-dbg.txz should not
|
||||||
|
# be considered a fatal installation error.
|
||||||
|
msg="Failed to fetch remote distribution"
|
||||||
|
if [ ! -z "$WANT_DEBUG" ]; then
|
||||||
|
# Trim leading and trailing newlines.
|
||||||
|
DEBUG_LIST="${DEBUG_LIST%%\n}"
|
||||||
|
DEBUG_LIST="${DEBUG_LIST##\n}"
|
||||||
|
msg="$msg\n\nPlease deselect the following distributions"
|
||||||
|
msg="$msg and retry the installation:"
|
||||||
|
msg="$msg\n$DEBUG_LIST"
|
||||||
|
fi
|
||||||
|
error "$msg"
|
||||||
|
fi
|
||||||
export DISTRIBUTIONS="$ALL_DISTRIBUTIONS"
|
export DISTRIBUTIONS="$ALL_DISTRIBUTIONS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$LOCAL_DISTRIBUTIONS" ]; then
|
||||||
|
# Download to a directory in the new system as scratch space
|
||||||
|
BSDINSTALL_FETCHDEST="$BSDINSTALL_CHROOT/usr/freebsd-dist"
|
||||||
|
mkdir -p "$BSDINSTALL_FETCHDEST" || error "Could not create directory $BSDINSTALL_FETCHDEST"
|
||||||
|
# Try to use any existing distfiles
|
||||||
|
if [ -d $BSDINSTALL_DISTDIR ]; then
|
||||||
|
DISTDIR_IS_UNIONFS=1
|
||||||
|
mount_nullfs -o union "$BSDINSTALL_FETCHDEST" "$BSDINSTALL_DISTDIR"
|
||||||
|
export BSDINSTALL_DISTDIR="$BSDINSTALL_FETCHDEST"
|
||||||
|
fi
|
||||||
|
env DISTRIBUTIONS="$LOCAL_DISTRIBUTIONS" \
|
||||||
|
BSDINSTALL_DISTSITE="file:///usr/freebsd-dist" \
|
||||||
|
bsdinstall distfetch || \
|
||||||
|
error "Failed to fetch distribution from local media"
|
||||||
|
fi
|
||||||
|
|
||||||
bsdinstall checksum || error "Distribution checksum failed"
|
bsdinstall checksum || error "Distribution checksum failed"
|
||||||
bsdinstall distextract || error "Distribution extract failed"
|
bsdinstall distextract || error "Distribution extract failed"
|
||||||
bsdinstall rootpass || error "Could not set root password"
|
bsdinstall rootpass || error "Could not set root password"
|
||||||
|
Loading…
Reference in New Issue
Block a user