Patch Name: PHCO_10964 Patch Description: s700_800 10.20 LVM commands cumulative patch Creation Date: 97/05/05 Post Date: 97/05/27 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: N/A Filesets: LVM.LVM-RUN LVM.LVM-ENG-A-MAN Automatic Reboot?: No Status: General Superseded Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHCO_10964 Symptoms: PHCO_10964: The lvlnboot command had some problems introduced in 10.20 when separate root/boot functionality was introduced. The symptoms range from lvlnboot -v not being able to find the boot volume after a vgreduce/vgextend to not being able to boot the volume group. One bug resulted in lvlnboot always using a pvkey of 0, causing failures if vgreduce/vgextend was performed on the first pvol. Another bug had lvlnboot assuming that the first pvol with an updated BDRA in /etc/lvmtab (for the root vg) contained the boot and root lvols, which isn't necessarily so. These bugs can result in unbootable systems if lvlnboot -R is performed since lvlnboot -R will corrupt the LABEL file in these cases. PHCO_10826: The LVM relocation policy has two settings; "y", mark a bad block in the bad block directory and relocate the block to an alternate location, and "n", mark a bad block in the bad block directory but do not relocate the block to a new location. This causes problems for intelligent disks like EMC Symmetrix disks which can "repair" themselves. The bad block directory entry prevents access to the good, repaired data on disk. PHCO_10048: A non-root process can gain access to a root shell. PHCO_9213: Several customers using LVM have expressed the desire to have LVM return application I/O's with an I/O error status rather than hanging onto them, when a Logical Volume is powerfailed. PHCO_8871: This patch provides new usage string for the vgchange command; Also new error messages are added to the message catalog to inform user that LVM does not support software mirroring in a cluster environment with more than 2 nodes configured. PHCO_8626: Modify LVM library routine to fix the following problem: The tm_year field of the tm structure returned by the localtime() library call was assumed to contain the last 2 digits of the year. But it really contains the number of years from 1900. This was corrected by replacing "tm_year" by "tm_year%100". PHCO_8207: This patch fixes two different problems: "panic lv_activatevg: num_pvols" After vgcfgrestore'ing to ALL of the current PVs in a VG, on next full activation the system can panic if the VG is setup such that the PVs are NOT sequentially allocated within the VGDA. The problem is with vgcfgbackup command which doesn't write a valid lvmconf file when there are missing PVs in a VG. vgimport -s -m xxx would not work with >255 pvs on a system. PHCO_7980: This patch added a new option "-R" to vgcfgrestore command to force restoring configuration data when there are physical volume mismatch between the kernel and the backup file due to missing pvlinks. Defect Description: PHCO_10964: Rewrote getbootvol() to search for boot lvol on pvols containing root lvols, if they exist, or to search all pvols. Added the new routines getrootpvols() and getbootlabel(). PHCO_10826: A new option was added to the -r flag of the lvchange and lvcreate commands. This option is -r N (making the total acceptable values of -r "ynN") which means, do not mark any bad blocks in this LV in the bad block directory, and also do not relocate any bad blocks. All LVs created on EMC Symmetrix disks should be configured with this option. PHCO_10048: A check was added to the LVM main module to make sure each in-coming parameter have size within the maximum length allowed. PHCO_9213: This change supports a new lvchange command line option "-t" which allows the administrator the option to limit the time LVM holds I/O to be retried on logical volumes when disks are powerfailed. PHCO_8871: This patch provides new usage string for the vgchange command; Also new error messages are added to the message catalog to inform user that LVM does not support software mirroring in a cluster environment with more than 2 nodes configured. PHCO_8626: Modify LVM library routine to fix the following problem: The tm_year field of the tm structure returned by the localtime() library call was assumed to contain the last 2 digits of the year. But it really contains the number of years from 1900. This was corrected by replacing "tm_year" by "tm_year%100". PHCO_8207: This patch fixes two different problems: Fix a problem in vgcfgbackup command to backup all PV structures on the disk. Don't try to calculate how many PV needed to be backed up, because PVs in the VG might not necessary contigeous. Modified code in vgimport command to allocate a bigger array to hold pvnames and pvdata. PHCO_7980: The vgcfgrestore command normally refuses to restore configuration data when there are physical volume mismatch between the kernel and the backup file. The following message will be displayed to inform user on the problem: "Mismatch between the backup file and the running kernel: Kernel indicates X disks for /dev/vgname, /etc/lvmconf/vgname indicates Y disks. Cannot proceed with the restoration. Deactivate the Volume Group and try again." SR: 4701352278 4701346494 4701334698 4701334847 4701335935 1653175737 4701332106 5003325159 1653194696 Patch Files: /usr/lib/nls/msg/C/lvm.cat /usr/newconfig/sbin/lvchange.mir /usr/newconfig/usr/sbin/lvchange.mir /sbin/lvchange /usr/sbin/lvchange /usr/share/man/man1m.Z/vgchange.1m /usr/share/man/man1m.Z/vgexport.1m /usr/share/man/man1m.Z/vgimport.1m /usr/share/man/man1m.Z/lvchange.1m /usr/share/man/man1m.Z/lvcreate.1m /usr/share/man/man1m.Z/lvlnboot.1m what(1) Output: /usr/lib/nls/msg/C/lvm.cat: None /usr/newconfig/sbin/lvchange.mir: $Revision: 78.57.1.3.2.21 $ MIRROR PRODUCT PATCH/10.20:PHCO_10027 libc.a_ID@@/main/r10dav/libc_ dav/libc_dav_cpe/7 /ux/core/libs/libc/archive_pa1/libc.a_ID Feb 7 1997 16:44:21 PATCH_10_20: lvdisplay.o lvlnboot.o lvremove.o lvrmb oot.o pvchange.o pvcreate.o pvdisplay.o pvm ove.o sdstolvm.o vgcfgbackup.o vgcfgrestore. o vgchange.o vgcreate.o vgdisplay.o vgexpor t.o vgextend.o vgimport.o vgreduce.o vgremo ve.o vgscan.o lvchange_m.o lvcreate_m.o lve xtend_m.o lvmerge_m.o lvmmain_m.o lvreduce_ m.o lvsplit_m.o lvsync_m.o nomwcsyncd_m.o v gsync_m.o hpux_rel_m.o 97/05/05 /usr/newconfig/usr/sbin/lvchange.mir: $Revision: 78.57.1.3.2.21 $ MIRROR PRODUCT PATCH_10_20: lvdisplay.o lvlnboot.o lvremove.o lvrmb oot.o pvchange.o pvcreate.o pvdisplay.o pvm ove.o sdstolvm.o vgcfgbackup.o vgcfgrestore. o vgchange.o vgcreate.o vgdisplay.o vgexport .o vgextend.o vgimport.o vgreduce.o vgremove .o vgscan.o lvchange_m.o lvcreate_m.o lvexte nd_m.o lvmerge_m.olvmmain_m.o lvreduce_m.o l vsplit_m.o lvsync_m.o nomwcsyncd_m.o vgsync_ m.o hpux_rel_m.o 97/05/05 /sbin/lvchange: $Revision: 78.57.1.3.2.21 $ PATCH/10.20:PHCO_10027 libc.a_ID@@/main/r10dav/libc_ dav/libc_dav_cpe/7 /ux/core/libs/libc/archive_pa1/libc.a_ID Feb 7 1997 16:44:21 PATCH_10_20: lvdisplay.o lvlnboot.o lvremove.o lvrmb oot.o pvchange.o pvcreate.o pvdisplay.o pvm ove.o sdstolvm.o vgcfgbackup.o vgcfgrestore. o vgchange.o vgcreate.o vgdisplay.o vgexpor t.o vgextend.o vgimport.o vgreduce.o vgremo ve.o vgscan.o lvchange.o lvcreate.o lvexten d.o lvmerge.o lvmmain.o lvreduce.o lvsplit. o lvsync.o nomwcsyncd.o vgsync.o hpux_rel.o 97/05/05 /usr/sbin/lvchange: $Revision: 78.57.1.3.2.21 $ PATCH_10_20: lvdisplay.o lvlnboot.o lvremove.o lvrmb oot.o pvchange.o pvcreate.o pvdisplay.o pvm ove.o sdstolvm.o vgcfgbackup.o vgcfgrestore. o vgchange.o vgcreate.o vgdisplay.o vgexpor t.o vgextend.o vgimport.o vgreduce.o vgremo ve.o vgscan.o lvchange.o lvcreate.o lvexten d.o lvmerge.o lvmmain.o lvreduce.o lvsplit. o lvsync.o nomwcsyncd.o vgsync.o hpux_rel.o 97/05/05 /usr/share/man/man1m.Z/vgchange.1m: None /usr/share/man/man1m.Z/vgexport.1m: None /usr/share/man/man1m.Z/vgimport.1m: None /usr/share/man/man1m.Z/lvchange.1m: None /usr/share/man/man1m.Z/lvcreate.1m: None /usr/share/man/man1m.Z/lvlnboot.1m: None cksum(1) Output: 1882167554 37503 /usr/lib/nls/msg/C/lvm.cat 26247158 659456 /usr/newconfig/sbin/lvchange.mir 550659684 417792 /usr/newconfig/usr/sbin/lvchange.mir 1652589110 638976 /sbin/lvchange 2293772508 397312 /usr/sbin/lvchange 1599083671 6328 /usr/share/man/man1m.Z/vgchange.1m 2132892705 2413 /usr/share/man/man1m.Z/vgexport.1m 1662821571 2711 /usr/share/man/man1m.Z/vgimport.1m 1048591626 4322 /usr/share/man/man1m.Z/lvchange.1m 2098980169 5317 /usr/share/man/man1m.Z/lvcreate.1m 2986066627 6442 /usr/share/man/man1m.Z/lvlnboot.1m Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_11085 s800: 10.20: PHKL_11086 Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_7980 PHCO_8207 PHCO_8626 PHCO_8871 PHCO_9213 PHCO_10048 PHCO_10826 Equivalent Patches: None Patch Package Size: 2200 Kbytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHCO_10964 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHCO_10964.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHCO_10964.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHCO_10964. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHCO_10964.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_10964.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None