How to Check for Missing Filesets in a Maintenenance Level

instfix -i | grep AIX_ML

instfix -ciqk 61-06-051115_SP| grep :-:

To list which software is below AIX(R) Version 6.1 technology
level 0, service pack 1, type:

oslevel -s -l 6100-00-01-0748

 

Question

usage of the instfix command

Answer

Hints, Tips and usage of the ‘instfix’ command

This document will describe many of the various and most common uses of the ‘instfix’ command.

The main topics covered will include:

– TL verses ML – Which is correct?
– Usage of the ‘instfix’ command to check for APARs
– Usage of the ‘instfix’ command to install APARs
– Adding missing APAR information to the ‘fix’ object class of the ODM

TL verses ML – Which is correct?

Starting in 5.3 TL7 the terminology changed. What use to be called ML or Maintenance Level is now called TL or Technology Level. The format for the numbering of the filesets also changed at that time. A base level fileset for 5.3 ML6 would have been 5.3.0.60 but starting in 5.3 TL7 the third number indicated the TL level. So a base level fileset for 5.3 TL7 would be 5.3.7.0 “TL” and “ML” are technically the same thing and interchangeable but “TL” is generally what is used now, however the ‘instfix’ command wasn’t changed and still uses ML.

Usage of the ‘instfix’ command to check for APARs

To use the ‘instfix’ command to determine what TLs are currently installed on the system as well as the status of the install (i.e. whether they are completely installed or not) you can use the following command:

# instfix -i | grep ML

All filesets for 6100-00_AIX_ML were found.

All filesets for 6.1.0.0_AIX_ML were found.

Not all filesets for 6100-01_AIX_ML were found.

 

If something is missing from a TL you can use ‘instfix’ to determine what is missing using the following command:
# instfix -icqk <ML LEVEL> | grep :-:

# instfix -icqk 6100-01_AIX_ML | grep :-:
6100-01_AIX_ML:X11.adt.imake:6.1.1.0:6.1.0.0:-:AIX 6100-01 Update
6100-01_AIX_ML:X11.samples.apps.clients:6.1.1.0:6.1.0.0:-:AIX 6100-01 Update
6100-01_AIX_ML:X11.samples.lib.Core:6.1.1.0:6.1.0.0:-:AIX 6100-01 Update

You can also use the ‘instfix’ command to check what Service Packs are installed on a system and check their status. For that you would use the following command:

# instfix -i | grep _SP
All filesets for 61-00-010748_SP were found.
All filesets for 61-00-020750_SP were found.
All filesets for 61-00-030808_SP were found.
All filesets for 61-00-040815_SP were found.
All filesets for 61-01-010823_SP were found.

If you just want to check to see if a particular APAR is installed you can use the following:

# instfix -ik <fix>
# instfix -ik IZ04606
All filesets for IZ04606 were found.

If you want to find out more information about a particular APAR you can use the following:
# instfix -aik <fix>
# instfix -aik IZ04606
IZ04606 Abstract: pwdadm not working as intended for authuser

IZ04606 Symptom Text:
A user with a role with aix.security.passwd.admin
authorization is unable to use the pwdadm command to set the
ADMIN flag for a user:
$ rolelist -ea
myrole aix.security.passwd.admin
$ pwdadm -f ADMIN abc
3004-692 Error changing “flags” to “ADMIN” : You do not have
permission.
—————————-
All filesets for IZ04606 were found.

If you want to see a list of fixes that are on a CD or in a directory you can use the following:
# instfix –Td /dev/cd0
OR
# instfix -Td <directory path>
Here’s a sample of what the output will look like:
IZ50383 Hang in mkuser command
IZ50386 System may crash in iodone+000044 after failed health check
IZ50388 Crash when unconfiguring path to open MPIO Disk.
IZ50482 DELAYED_INTS error log entry for 10-Gigabit Ethernet Adapter
IZ50483 DSI at kxent_ras_callback
IZ50559 CANNOT BOOT FROM SOME USB OPTICAL DRIVES
IZ50591 Fixdata for new service pack

You may want to know if any of the APARs you have in a directory contain any fixes for say multibos. You can check that with the following:
# instfix -Td . | grep -i multibos
IY78256 multibos bootlist support in diag.

You may have a need to create a list of APARs that are included in a directory. That can easily be done with the following command:
# instfix -Td . | cut -f1 -d ” ” > /tmp/fix.list
# cat /tmp/fix.list | pg
IY58621
IY58626
IY58656
IY58688
IY59138
IY59139
IY59143
IY59144

If you want to see a list of what filesets are included with an APAR you can get that with the following command:
# instfix -ivk <fix>
# instfix –ivk IZ50591
IZ50591 Abstract: Fixdata for new service pack

Fileset bos.rte.install:5.3.10.1 is applied on the system.
All filesets for IZ50591 were found.

Then if you needed to know the date it was installed
# lslpp -h <one of the filesets from above>
# lslpp -h bos.rte.install
Fileset Level Action Status Date Time
—————————————————————————-
Path: /usr/lib/objrepos
bos.rte.install
5.3.0.60 COMMIT COMPLETE 07/12/07 14:55:01
5.3.0.61 COMMIT COMPLETE 07/12/07 14:55:29
5.3.7.2 COMMIT COMPLETE 01/05/08 21:12:55
5.3.8.1 COMMIT COMPLETE 07/02/08 15:05:54
5.3.9.1 COMMIT COMPLETE 12/07/08 19:45:09
5.3.10.1 COMMIT COMPLETE 05/16/09 16:59:59

If you have a particular fileset level installed on your system and you want to determine what APAR’s are associated with it:
instfix –aiv | grep –p <fileset>:<level>
For example:
# instfix -aiv | grep -p devices.pciex.b3154a63.rte:6.1.2.4
—————————-
Fileset devices.pciex.b3154a63.rte:6.1.2.4 is applied on the system.
All filesets for IZ48863 were found.
=================================================================
IZ50114 Abstract: IB Applications using IbBaseLib may hang on close

—————————-
Fileset devices.chrp.IBM.lhca.rte:6.1.2.4 is not applied on the system.
Fileset devices.common.IBM.ib.rte:6.1.2.4 is not applied on the system.
Fileset devices.pci.b315445a.rte:6.1.2.4 is not applied on the system.
Fileset devices.pciex.b3154a63.rte:6.1.2.4 is applied on the system.
Not all filesets for IZ50114 were found.

So devices.pciex.b3154a63.rte:6.1.2.4 is the only fileset for IZ48863 and one of four filesets for IZ50114

If you prefer to use smitty to check for fixes the fastpath is
# smitty show_apar_stat

Usage of the ‘instfix’ command to install APARs

Installing an APAR using the ‘instfix’ command is fairly straight forward
To install a fix from cd0
# instfix -k <fix> -d /dev/cd0

To install a fix from a directory
# instfix -k <fix> -d <directory>
# instfix -k IZ36737 -d .
+—————————————————————————–+
Pre-installation Verification…
+—————————————————————————–+
Verifying selections…done
Verifying requisites…done
Results…

SUCCESSES
———
From there the installation will continue.

If you prefer to use smitty to install a fix the fastpath is:
# smitty update_by_fix

Adding missing APAR information to the ‘fix’ object class of the ODM

If an APAR doesn’t show up with instfix –ik <APAR number> but it is installed you can check to see if it’s in the ODM
# ODMDIR=/usr/lib/objrepos odmget fix | grep -p <APAR number>

If an APAR doesn’t show up with the instfix -ik command it may be an efix.
Check for ifixes / efixes with the emgr command
# emgr -l
or to get more info
# emgr -lv3

If a TL and/or SP doesn’t show up with oslevel –rq or –sq but you know the level is on the system the ODM is missing the fix data.

Note: You will be modifying the ODM on the system that is missing the fix data. If you are unfamiliar with that you may want to call the support center for assistance.

To get it in the ODM you can copy it from another system using the following procedure:

On a good system at the same level

# ODMDIR=/usr/lib/objrepos odmget -q name=<ML, SP or APAR > fix > /tmp/fix.backup

Here’s an APAR example
# ODMDIR=/usr/lib/objrepos odmget -q name=IZ11011 fix > /tmp/fix.backup
# cat /tmp/fix.backup

fix:
name = “IZ11011”
abstract = “Install commit only operation fails”
type = “f”
filesets = “bos.rte.install:5.3.9.0\n\

symptom = ” Not able to do a commit only operation on a fileset.\n\
Fileset is left in the apply state.\n\

And here’s an example of a Technology Level
# ODMDIR=/usr/lib/objrepos odmget -q name=5300-10_AIX_ML fix > /tmp/fix.backup

And this is an example of a Service Pack
# ODMDIR=/usr/lib/objrepos odmget -q name=53-10-010921_SP fix > /tmp/fix.backup

Note: if you aren’t sure of the format to use above for the ML or SP level you can run the following command to get a list of ML’s
# ODMDIR=/usr/lib/objrepos odmget fix | grep _ML | pg

or the following to get a list of SP’s
# ODMDIR=/usr/lib/objrepos odmget fix | grep _SP | pg

ftp /tmp/fix.backup to the system not seeing the fix level or APAR

Then on the system you ftp’d it to: backup the ODM
Do this from the / (root) directory
# tar -cvf /tmp/odm.tar ./etc/objrepos ./usr/lib/objrepos
Note: Check the space in /tmp first and increase if necessary

Follow these steps to add the fix data to the ODM:

# ODMDIR=/usr/lib/objrepos odmadd /tmp/fix.backup

# oslevel -rf
# oslevel -r

# oslevel -sf
# oslevel -s

>> The levels should now be correct or if you just added an APAR it should show up now with
# instfix –ik <APAR #>
# instfix -ik IZ11011
All filesets for IZ11011 were found.

Note: If after doing an odmadd with the fix data from another system the fix data still isn’t showing up and rootvg is mirrored you may need to do the following steps:
# synclvodm -Pv rootvg
# savebase
# bosboot -ad /dev/ipldevice