diff options
Diffstat (limited to 'usr/src/cmd/svc/milestone/fs-usr')
-rw-r--r-- | usr/src/cmd/svc/milestone/fs-usr | 162 |
1 files changed, 7 insertions, 155 deletions
diff --git a/usr/src/cmd/svc/milestone/fs-usr b/usr/src/cmd/svc/milestone/fs-usr index 715cb1bca3..e4b6a263e1 100644 --- a/usr/src/cmd/svc/milestone/fs-usr +++ b/usr/src/cmd/svc/milestone/fs-usr @@ -19,171 +19,23 @@ # # CDDL HEADER END # - # # Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. # Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T. # All rights reserved. # Copyright 2016 Nexenta Systems, Inc. +# Copyright 2012, Joyent, Inc. All rights reserved. # Copyright 2019 OmniOS Community Edition (OmniOSce) Association. # - . /lib/svc/share/smf_include.sh -. /lib/svc/share/fs_include.sh - -UPDATEFILE=/etc/svc/volatile/boot_archive_needs_update - -# -# Once root is read/write we can enable the dedicated dumpdevice if it exists -# locally. This is an optimization as svc-dumpadm will attempt do this later. -# -dump_setup() -{ - [ -r /etc/dumpadm.conf ] && . /etc/dumpadm.conf - - readswapdev $DUMPADM_DEVICE < $vfstab - - # - # Make sure that the dump save area has been configured before - # proceeding. If the variable has not been defined or does not exist - # then bail out early. This will prevent us from configuring a - # dump save area before a hostname has been configured (i.e after - # sys-unconfig has been invoked). - # - [ -z "$DUMPADM_SAVDIR" ] && return - - # - # If we have a dedicated dump device, then go ahead and configure it. - # - if [ "x$special" != "x$DUMPADM_DEVICE" ]; then - if [ -x /usr/sbin/dumpadm -a -b $DUMPADM_DEVICE ]; then - /usr/sbin/dumpadm -u || exit $SMF_EXIT_ERR_CONFIG - fi - fi -} - -# -# Write a unique id into this kernel image; this will be included -# in the dump header and panicbuf of any crashdump of this image. -# -if [ -x /usr/sbin/dumpadm ]; then - /usr/sbin/dumpadm -i -fi - -rootiszfs=0 -# get the fstype of root -readmnttab / </etc/mnttab -if [ "$fstype" = zfs ] ; then - rootiszfs=1 - dump_setup -fi - -# -# Add physical swap. -# -/sbin/swapadd -1 - -# -# Check and remount the / (root) file system. -# For NFS mounts, force the llock option on. -# -if smf_is_globalzone && [ $rootiszfs = 0 ]; then - readvfstab / < $vfstab - checkfs $fsckdev $fstype $mountp || exit $SMF_EXIT_ERR_FATAL - checkopt "llock" $mntopts - mntopts='remount' - - [ -n "$otherops" ] && mntopts="${mntopts},${otherops}" - [ "$fstype" = nfs ] && mntopts="${mntopts},llock" - - mountfs -m $mountp $fstype $mntopts - || exit $SMF_EXIT_ERR_FATAL -fi - -# -# Check and remount the /usr file system (formerly mounted read-only). -# Unless root is zfs, in which case we've already mounted /usr read-write -# -if [ "$rootiszfs" = 0 ] ; then - readvfstab /usr < $vfstab - if [ "$mountp" ]; then - checkopt ro $mntopts - if [ "x$option" != xro ]; then - checkfs $fsckdev $fstype $mountp || - exit $SMF_EXIT_ERR_FATAL - if [ "x$mntopts" != x- ]; then - mntopts="remount,$mntopts" - else - mntopts="remount" - fi - - mountfs - /usr $fstype $mntopts - || - exit $SMF_EXIT_ERR_FATAL - fi - fi -fi - -# -# Check and mount the /usr/platform file system. This should only be -# present when a SunOS 5.5 (Solaris 2.5) or greater client is being -# administered by a SunOS 5.4 or less host. -# -readvfstab /usr/platform < $vfstab -if [ "$mountp" ]; then - checkfs $fsckdev $fstype $mountp || exit $SMF_EXIT_ERR_FATAL - mountfs - $mountp $fstype $mntopts - || exit $SMF_EXIT_ERR_FATAL -fi - -# -# Mount the fd file systems if mount point exists. -# -readvfstab /dev/fd < $vfstab -if [ "$mountp" -a -d /dev/fd ]; then - mountfs - /dev/fd - - - || exit $SMF_EXIT_ERR_FATAL -fi - -if [ -f "${UPDATEFILE}" ]; then - /usr/sbin/bootadm update-archive - if [ $? != 0 ]; then - cecho "" - cecho "WARNING: Automatic update of the boot archive failed." - cecho "Update the archives using 'bootadm update-archive'" - cecho "command and then reboot the system from the same device" - cecho "that was previously booted." - cecho "" - exit $SMF_EXIT_ERR_FATAL - fi - rm -f $UPDATEFILE - cecho "" - cecho "WARNING: Reboot required." - cecho "The system has updated the cache of files (boot archive) that" - cecho "is used during the early boot sequence. To avoid booting and" - cecho "running the system with the previously out-of-sync version of" - cecho "these files, the system will be restarted." - cecho "" +mount /dev/fd - bootcmd=`/usr/sbin/eeprom bootcmd | /usr/bin/sed -e 's#bootcmd=##g'` - if [ `uname -p` = "i386" ]; then - /usr/sbin/reboot -f dryrun - if [ $? = 0 ]; then - /usr/sbin/reboot -f -- "$bootcmd" - exit $SMF_EXIT_OK - fi - boot_prop=`/usr/sbin/svccfg -s svc:/system/boot-config:default \ - listprop config/auto-reboot-safe | \ - /usr/bin/nawk '{ print $3}'` - if [ "$boot_prop" = "true" ]; then - /usr/sbin/reboot -p - exit $SMF_EXIT_OK - fi - cecho "" - cecho "It has not been possible to restart automatically." - cecho "Reboot the system from the same device that was" - cecho "previously booted." - cecho "" - exit $SMF_EXIT_ERR_FATAL - fi - /usr/sbin/reboot -- "$bootcmd" +if smf_is_globalzone; then + # svc.startd makes a backup of the repo on boot. Since this is a + # live-image, the backup takes up an unnecessary 4MB in memory, so remove + # it now. + rm -f /etc/svc/repository-* fi exit $SMF_EXIT_OK |