|
Description
|
This is found in snv_31 and also in the latest Nevada nightly build. When you create a flash archive on sun4u, it will complain as follow:
# flarcreate -S -n nv_32.SUNWCXall.line2-240 -c /net/ins3525-svr/export/rw/nv_32.SUNWCXall.line2-240
Full Flash
Checking integrity...
Integrity OK.
Running precreation scripts...
./caplib[68]: test: argument expected
Precreation scripts done.
Creating the archive...
Archive creation complete.
Running postcreation scripts...
Postcreation scripts done.
Running pre-exit scripts...
./remount_hwcap.744: !/bin/sh: not found
Pre-exit scripts done.
#
The reason is that the /etc/flash/precreation/caplib had a typo and it does not execute properly to umount the lofs before creating the flash archive and mounting them back after flash creation.
Actually, this isn't a mistake in integration; the caplib in question is likely the one
from this checkin:
PSARC 2005/749 Panther libc_psr
5062145 hwcap flags for panther
6357980 block store in memcpy() hurts performance on USIV+
As this fix was integrated into snv_31.
I fixed the typo of !/bin/sh and change the script to run ksh in -x mode and it still fails as follow:
line2-240# flarcreate -S -n test.flar -c /net/ins3525-svr/export/rw/test.flar
Full Flash
Checking integrity...
Integrity OK.
Running precreation scripts...
+ [ -z 13710 ]
+ CHMOD=/usr/bin/chmod
+ ELFDUMP=/usr/ccs/bin/elfdump
+ MOUNT=/usr/sbin/mount
+ UMOUNT=/usr/sbin/umount
+ EGREP=/usr/bin/egrep
+ SED=/usr/bin/sed
+ CMD_LIST=/usr/bin/chmod /usr/ccs/bin/elfdump /usr/sbin/mount /usr/sbin/umount /usr/bin/egrep /usr/bin/sed
+ [ ! -x /usr/bin/chmod ]
+ [ ! -x /usr/ccs/bin/elfdump ]
+ [ ! -x /usr/sbin/mount ]
+ [ ! -x /usr/sbin/umount ]
+ [ ! -x /usr/bin/egrep ]
+ [ ! -x /usr/bin/sed ]
+ + /usr/sbin/mount
+ /usr/bin/sed -e s:^\(/[^ ]*\) on \([^ ]*\).*$:\1@\2:
+ /usr/bin/egrep ^/platform.*hwcap
LIBS=/platform/sun4u-us3/lib/libc_psr.so.1@/platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1
/platform/sun4u-us3/lib/sparcv9/libc_psr.so.1@/platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1
+ [ ! /platform/sun4u-us3/lib/libc_psr.so.1@/platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1 /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1@/platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1 ]
./caplib[68]: test: argument expected
+ REMOUNT_DIR=/etc/flash/preexit
+ REMOUNT=/etc/flash/preexit/remount_hwcap.13710
+ [ ! -d /etc/flash/preexit ]
+ [ -f /etc/flash/preexit/remount_hwcap.13710 ]
+ umask 477
+ cat
+ 1> /etc/flash/preexit/remount_hwcap.13710 0<<
#!/bin/sh
if [ \"$FLASH_PID\" != \"13710\" ]; then
/bin/rm -f /etc/flash/preexit/remount_hwcap.13710
exit 0
fi
+ [ 0 -ne 0 ]
+ read MOUNTPOINT MOUNTLIB
+ IFS=@
+ echo /platform/sun4u-us3/lib/libc_psr.so.1@/platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1
+ /usr/sbin/umount /platform/sun4u-us3/lib/libc_psr.so.1
+ MOUNTOPTS=-O -F lofs
+ echo /usr/sbin/mount -O -F lofs /platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1 /platform/sun4u-us3/lib/libc_psr.so.1
+ 1>> /etc/flash/preexit/remount_hwcap.13710
+ read MOUNTPOINT MOUNTLIB
+ IFS=@
+ echo /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1@/platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1
+ /usr/sbin/umount /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1
+ MOUNTOPTS=-O -F lofs
+ echo /usr/sbin/mount -O -F lofs /platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1 /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1
+ 1>> /etc/flash/preexit/remount_hwcap.13710
+ echo /bin/rm -f /etc/flash/preexit/remount_hwcap.13710
+ 1>> /etc/flash/preexit/remount_hwcap.13710
+ echo exit 0
+ 1>> /etc/flash/preexit/remount_hwcap.13710
+ /usr/bin/chmod 0500 /etc/flash/preexit/remount_hwcap.13710
+ exit 0
Precreation scripts done.
Creating the archive...
During the flash archive creation, the umount does happen properly:
df
/ (/dev/dsk/c1t0d0s0 ): 4465590 blocks 668665 files
/devices (/devices ): 0 blocks 0 files
/system/contract (ctfs ): 0 blocks 2147483612 files
/proc (proc ): 0 blocks 29949 files
/etc/mnttab (mnttab ): 0 blocks 0 files
/etc/svc/volatile (swap ): 3683728 blocks 294992 files
/system/object (objfs ): 0 blocks 2147483469 files
/dev/fd (fd ): 0 blocks 0 files
/tmp (swap ): 3683728 blocks 294992 files
/var/run (swap ): 3683728 blocks 294992 files
/export (/dev/dsk/c1t1d0s7 ):141047134 blocks 8497211 files
/export/home (/dev/dsk/c1t0d0s7 ):124909188 blocks 7524604 files
/net/ins3525-svr/export/rw(ins3525-svr:/export/rw):89116732 blocks 99129733 files
/home/ding (jurassic.sfbay:/export/ogromny/ding):86550710 blocks 26370069 files
/usr/dist (mi-umpk17-02.sfbay,mi-umpk17-01.sfbay,mf-umpk10-02.sfbay,mi-umpk18-02.sfbay,mi-umpk18-01.sfbay,mi-umpk15-01.sfbay,mi-umpk14-02.sfbay,mf-umpk10-01.sfbay,mi-umpk14-01.sfbay,mi-umpk15-02.sfbay,mi-umpk12-01.sfbay,mi-umpk12-02.sfbay,mf-umpk16-02.sfbay,mf-umpk16-01.sfbay:/usr/dist):24497686 blocks 3849382 files
#
# pwd
/etc/flash/preexit
# more re*
#!/bin/sh
if [ \"$FLASH_PID\" != \"13710\" ]; then
/bin/rm -f /etc/flash/preexit/remount_hwcap.13710
exit 0
fi
/usr/sbin/mount -O -F lofs /platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1 /platform/sun4u-us
3/lib/libc_psr.so.1
/usr/sbin/mount -O -F lofs /platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1 /platform/
sun4u-us3/lib/sparcv9/libc_psr.so.1
/bin/rm -f /etc/flash/preexit/remount_hwcap.13710
exit 0
#
|