AIX 4.1 and beyond have a new option for installing the base operating system. In most cases, if your system is at a previous version or release, migration is the default method of installation.
The migration has the following advantages:
This document describes the migration process, pre-migration checks and some post-migration tests to run to verify that your migration is consistent. Please note that a migration is a system-wide change, and sometimes it can be difficult to pinpoint problems. This document contains some precautionary steps for the most common problems customers encounter.
This document uses the following conventions:
[text] - information specific to your environment should be filled in # - the command prompt: the information after this prompt should be entered exactly as it appears (after filling in info that is specific to your environment)
Also, you need to understand the IBM convention for labeling levels. Whenever you want to find the level of a fileset or the system, output is displayed in VRMF format:
V = Version R = Release M = Maintenance F = Fix
For example, if you were to type oslevel and got back 4.2.1.0, you would know that you were at maintenance 1 of release 2 of version 4. System levels will always show fix levels of 0. If you were to run lslpp -l bos.net.tcp.client, you would see something like:
bos.net.tcp.client 4.2.0.12 APPLIED TCP/IP Client Support
This would tell us that you were at fix 12 of maintenance 0 of release 2 of version 4.
After your console and languages are set, and after the system boots from the install media, one of the first things that happens is that the system drives are checked for the kernel level. If this level is a different release or version, a migration option is present (and is the default).
After the migration begins, a pre-install script runs to prepare the system for the installation. This pre-installation script retrieves a list of installed filesets; creates a list of new filesets to install; determines if there is enough room to perform a migration installation, based on configuration files that must be saved and new filesets that must be installed; and saves configuration files to /tmp/bos and removes files that are no longer necessary (including old 3.2 PTF directories - for 3.2 systems only).
Next, the bi_main script takes over. This is the guts of the installation. The bi_main script restores the bos.rte image, unmounts the temporary mount points and mounts real filesystems, and then calls the post-install script.
The post-install script removes any unnecessary directories (any separate logical volumes are not touched), removes any obsolete messages and locales, removes packaging directories of filesets that will be migrated, cleans up the Vital Products Database by removing all PTF info for bos.obj and all AVAILABLE entries, increases / by one partition to increase the number of available inodes, processes the bos.rte.cfgfiles file in order to merge the bos.obj config files, removes obsolete System Resource Controller entires with rmsrc, and figures out what needs to be reinstalled at the latest level (everything that bi_main's bos.rte image did not include).
After the post-install script finishes, bi_main once again takes over calling installp with a list of filesets to be migrated, device filesets that need to be installed, and the contents of the appropriate autoi bundles (that is, server, client).
Then the system is rebooted and brought to a login prompt.
#lppchk -v
This command should not have any output. Any output returned is error output. You should correct these problems before proceeding.
TO | FROM |
4.1 | 3.2.5.0 or higher |
4.2 | 3.2.5.0 or higher |
4.3 | 3.2.0.0 or higher |
In 3.2.x, different commands give us different levels. Use the following commands to find your level:
#lslpp -l bos.obj
You should see output similar to:
Name State Description -------------------- ------------ ------------------------- Path: /usr/lib/objrepos bos.obj 03.02.00.00 COMMITTED The Base Operating System Path: /etc/objrepos bos.obj 03.02.00.00 COMMITTED The Base Operating System
This verifies that you are at least at 3.2.0. If the preceding chart shows that you need to be higher than 3.2.0 (for migration to 4.1.x or 4.2.x), you should check your level with the following command:
#lslpp -m bos.obj
You should minimally have the following lines of output:
Description State Fix Id ---------------------------- ------ ------------ bos.obj 3.2.0.0 3250 bos Maintenance Level C U491123
root:!:0:0::/:/bin/ksh deamon:!:1:1::/etc: bin:!:2:2::/bin: sys:!:3:3::/usr/sys: adm:!:4:4::/var/adm: uucp:!:5:5::/usr/lib/uucp: guest:!:100:100::/home/guest: nobody:!:4294967294:4294967294::/:
On 3.2 systems the adm group will appear as follows:
adm:!:4:4::/usr/adm:
The important things to check are that the preceding entries exist and exactly match. You should also verify that no other user has UIDs that duplicate the preceding (the UID is the third colon-separated entry--the first number).
Verify that your /etc/group file has entries matching the following:
system:!:0:root staff:!:1: bin:!:2:root,bin sys:!:3:root,bin,sys adm:!:4:bin,adm uucp:!:5:uucp mail:!:6: security:!:7:root cron:!:8:root printq:!:9: audit:!:10:root ecs:!:28: nobody:!:4294967294:nobody usr:!:100:guest
The important thing to check is that the preceding entries exist. You can have more users in the group (that is, the system entry can look like system:!:0:root,james,eddie,rocky,david), but verify that the GIDs are unique (the third colon-separated entry--the first number) and that the users are in the preceding groups.
Make sure all of the user definitions are correct in the user database:
#usrck -n ALL
Do the same for the groups:
#grpck -n ALL
If you find errors, you can correct them by replacing the -n flag with the -t flag.
WARNING: AIX checks the users and groups based on standard UNIX user and group expectations. Your environment or application may require groups and users that deviate from standard UNIX users and groups. If you are not sure, it's best to leave it the same!
You can verify that no jobs are scheduled by running the following command:
#at -l
You will also want to save off the following files (if you have edited them):
/usr/adm/cron/at.allow /usr/adm/cron/at.deny /usr/adm/cron/cron.allow /usr/adm/cron/cron.deny
#tcbck -n ALL
You may not have the TCB installed on your system. If you get the following error message, it has not been activated:
3001-101 The Trusted Computing Base is not enabled on this machine.
To enable the Trusted Computing Base, you must reinstall and set the Install Trusted Computing Base option to YES. No checking is being performed.
If you get other errors from the command, you will want to do one of the following:
In order to fix the problems, you must correct the entries in the /etc/security/sysck.cfg file. Refer to the documentation on TCB in the Systems Management Guide.
You can circumvent the database by saving off the sysck.cfg file, removing it and touching a new file.
Disabling the TCB is not recommended. Unless you have some sort of TCB corruption, you should take method 1 or 2.
/tmp - 15MB free space / - 10MB free space 80MB of unallocated physical partitions in the rootvg
You can check the free space in the filesystems with the following command:
#df -kt
At 3.2 the kt flags do not operate. Simply run df.
You can check the amount of free physical partitions in the rootvg with the following command:
#lsvg rootvgLook for the line that says FREE PPs:. If you do not have the unallocated physical partitions, make sure you have at least 80MB free in /usr.
If you do not have the free partitions in the rootvg, you can circumvent by having the 80MB free in the /usr filesystem.
If your paging space is less than 32MB, the migration will increase it to 32MB.
| LEVEL | MEMORY/TAPE | MEMORY/CD | |-----------|-----------------|---------------| | 4.1.x | 16MB | 8MB | | 4.2.x | >16MB | >16MB | | 4.3.x | 32MB | 32MB |
#lslpp -l bos.rte.lvm
If you are between levels 4.1.5.9 and 4.1.5.13, you need to update this fileset to 4.1.5.14 or later.
If you use HACMP, you could be using a clustered version of the logical volume manager. Check this level with the following command:
#lslpp -l prpq.clvm
If you are between levels 4.1.5.6 and 4.1.5.9, you need to update this fileset to 4.1.5.10 or later.
7013 G40 - 4.2.0 7013 J40 - 4.2.0 7013 J50 - 4.1.5 7015 R40 - 4.2.0 7015 R50 - 4.1.5 7017 S70 - 4.3.0 7024 E20 - 4.2.0 7024 E30 - 4.2.0 7025 F30 - 4.2.0 7025 F40 - 4.1.5 7025 F50 - 4.2.1 7026 J50 - 4.2.1 7026 h50 - 4.2.1 7043 43p - 4.2.1 7317 F3L (604) - 4.2.0 7317 F3L (604e) - 4.2.1
Following is a list of the order in which the releases came out (the most recent being on top). The support is based on RELEASE DATES. If you have one of the preceding systems, find the level on the following list. Everything including that level and what is above it will run (see notes for hardware support).
4.3.2 4.3.1 4.3.0 4.2.1 4.1.5 4.2.0 4.1.4
To identify it:
hiprfmge0 Available 00-03 High Performance 3D Color Graphics Processor
Any machine requiring pcmcia drivers (therefore, any laptop) is currently not supported.
POWER GTO (TM) Accelerator Adapter POWER Gt1 (TM) Graphic Adapter 1-Bit POWER Gt1b ISO Graphic Adapter 1-Bit POWER Gt1x Graphic Adapter 2780 High-Performance 8-bit 3D Color Graphics Processor 2781 High-Performance 24-bit 3D Color Graphics Processor 2782 24-bit Z-Buffer Solid Rendering Option 2783 24-bit Color Graphics Frame Buffer Upgrade
#lsvg -l rootvg
You should see output similar to the following:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT hd6 paging 64 64 1 open/syncd N/A hd5 boot 1 2 2 closed/syncd N/A hd8 jfslog 1 1 1 open/syncd N/A hd4 jfs 9 9 1 open/syncd / hd2 jfs 36 36 1 open/syncd /usr hd9var jfs 4 4 1 open/syncd /var hd3 jfs 7 7 1 open/syncd /tmp hd1 jfs 4 4 1 open/syncd /home
The preceding output shows that /dev/hd5 (the blv) is mirrored once (because PPs = (2 x LPs), so there are two copies). To reduce the mirrored copies, use the rmlvcopy command (see the man page for details).
Before removing any mirrors, you should verify the disk you booted from by using lslv and checking the links in the /dev directory:
#lslv -m hd5
The command should output information as follows (for the scenario where the hd5 is mirrored once):
LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0001 hdisk0 0001 hdisk1
This shows that there are copies on hdisk0 and hdisk1. Next, check to see which one was booted from (the IPLDEVICE). This is done by comparing the major and minor numbers of the devices:
#ls -l /dev/ipldevice /dev/rhdisk[X] /dev/rhdisk[Y]
In this case, X would be 0 and Y would be 1. Here is the output:
crw------- 2 root system 12, 1 Mar 10 09:44 /dev/ipldevice crw------- 2 root system 12, 1 Mar 10 09:44 /dev/rhdisk0 crw------- 1 root system 12, 2 Mar 10 09:44 /dev/rhdisk1
The major and minor numbers appear in the 5th column. The /dev/ipldevice matches up with /dev/rhdisk0, so you know you booted from hdisk0. With this knowledge, remove the mirror from hdisk1 with the following command:
#rmlvcopy hd5 1
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 0 . _ - +
AIX (and UNIX operating systems in general) may operate in unexpected ways if filenames are used that contain characters "special" to UNIX.
Some examples of these "special" characters are:
<space or tab> = field separator for shell scripts and several UNIX utilities <?,*,$,@,\,/> = wildcard characters for command line and shellscript parsing, and also pathname parsing <^C, ^D, and so on> = tty control characters, which affect input for most OID UNIX utilities < <,>,",',`,&,> = characters special to command line parsing and shell
Some licensed IBM products and third party products have been known to create files that use these "special" characters. If you have any, especially in /tmp, you should back them up and remove them from the system.
The following command checks to see if any poorly named files exist on the system. The syntax of the command takes the current directory and checks for unacceptable files.
#ls -ld !(+([a-zA-Z0-9._+-]))
/etc/objrepos /usr/lib/objrepos /usr/share/lib/objrepos
If there are 0-length files, please contact your support organization to verify that they are not necessary to the system. Lock files are supposed to be 0 length.
#lsvg
Use this output to run a sync:
WARNING : Before running a synclvodm, you should verify that you do not have raw logical volumes with an owner or group other than root or system in the rootvg (for example, ORACLE owns their own logical volumes). In AIX 4.2 and later, run the synclvodm with the -P flag (to preserve permissions). Do not run this command if programs are using the raw logical volume!
#synclvodm [volume_group]
If you get errors, use local problem reporting procedures to fix them before trying a migration.
hd1 /home hd2 /usr hd3 /tmp hd4 / hd5 blv (a raw lv, not a filesystem) hd9var /var
At AIX 4.2.1 only: If you are migrating to 4.2.1 and you have a GXT110P, GXT120P, GXT800M, or any other (newer) graphics adapter that does not have support on the media, you will need to use a circumvention diskette in order to see the install menus. A good way to identify this problem is to notice that the system hangs on c31 when booting off the install media.
If you are not presented a migration option (and, according to the preceding instructions, you should be presented with it), your pad string could be wrong.
Sometimes the boot logical volume (blv) contains the wrong system information. This usually occurs when an install has been attempted in the past. Make sure the pad string reflects the version and release of the system.
For 4.x systems, run:
#lquerypv -h /dev/hd5 2A0 50
You should see something similar to:
000002A0 32393533 00000000 00000000 00000000 |2953............| 000002B0 00000000 00000000 00000000 0000342E |..............4.| 000002C0 33207061 64207374 72696E67 3A402524 |3 pad string:@%$| 000002D0 237E217E 7E217E23 24254000 00000000 |#~!~~!~#$%@.....| 000002E0 00000000 00000000 00000000 00000000 |................|
This output reflects a 4.3 pad string, or a 4.3.x system.
For 3.2 systems, run:
#dd if=/dev/hd5 bs=512 count=2 2>/dev/null|strings|tail -2
You should see:
3.2 pad string:~!~#$%@@%$#~!~ 3.2 pad string:~!~#$%@@%$#~!~
This output reflects a 3.2 pad string, or a 3.2.x system.
If your level is wrong, you will need to change the pad string contained in the blv. If it is correct, go to the next step.
For 4.x systems, run:
#/usr/lpp/bosinst/blvset -d /dev/hdisk[X] -plevel 4.[Y][X] denotes the disk where the blv (/dev/hd5) resides. You can find this out by running lslv -m hd5. [Y] denotes the release of AIX you are running (for example, 1 for 4.1)
For 3.x systems, run:
#/usr/lpp/bosinst/blvset -d /dev/hdisk[x] -p menu < /etc/settings[X] denotes the disk where the blv (/dev/hd5) resides. You can find this out by running lslv -m hd5.
In order to migrate a system, do the following:
Change / Show Installation Settings
Method of installation
Disks you want to install to Primary Language Trusted Computing BaseWhen you install the trusted computing base, the trusted path, the trusted shell, and system integrity checking are installed. The trusted path protects your system in case a program is masquerading as the program you want to use. It tries to ensure that the programs you run are trusted programs.
WARNING: TCB should only be installed with a New and Complete Overwrite unless it exists on the system being migrated. Don't select the Trusted Computing for migrations or preservations unless you are sure you had it installed at the previous level.
1 List the saved base system configuration files which will not be merged into the system. These files are saved in /tmp/bos 2 list the filesets which will be removed and not replaced 3 list directories which will have all current contents removed 4 reboot without migrating 0 continue with the migration
This screen gives you information on files that will be affected by the migration. After viewing the information, select 0 to start the migration.
NOTE: During the installation, you see a screen that shows how long the installation has been going and the percentage thereof that is complete. If the key is in normal, the system will automatically reboot.
After the migration, you should make some basic checks to ensure that the install occurred correctly (these checks cannot be complete, but they provide a good starting point).
Make sure the installed Licensed Program Products are consistent:
#lppchk -v
You should get no output from the preceding command. Any output is error output and should be corrected.
Make sure the oslevel command shows the proper VRMF information (the fix information should always be zero):
#oslevel
For systems that are being migrated to 4.2.1, it is necessary to run an update_all on the second volume of 4.2.1 BOS CDs in order for the oslevel command to return 4.2.1.0. This may be true of other levels that are installed with multi-volume CDs, unless the system prompted you for other volumes of the CD during the install (by default, the prompting for other volumes is turned off so the system will migrate unhindered).
Make sure you don't have any previous level filesets committed:
#lslpp -l|grep [previous_version.previous_release]|grep COMMITTED
For example, if you had migrated from 4.2.1 to 4.3.0, run:
#lslpp -l|grep 4.2|grep COMMITTED
Any AIX filesets that are in the committed state should be removed (this may not apply to any third party software you have installed; you should verify with the third party vendor about what should be done with their software). If you run lslpp -l output without the pipes and greps, you may see obsolete filesets. These should not be removed unless you are sure that none of your software still needs these previous level filesets.
Make sure none of you filesets have been broken:
#lslpp -l|grep BROKEN
Broken base filesets are corrected by forcing the install of the base fileset. Broken PTFs are corrected by reinstalling the PTF in the committed state.
Make sure that your fix database contains information for the level you have just migrated to:
#instfix -ik [V.R.M.F]_AIX_ML
You should get a message like:
All filesets for [V.R.M.F]_AIX_ML were found.
The final checks are to ensure that your system's applications are running normally.
If you find any problems after the migration, please save off your /var/adm/ras directory for analysis.