Setting Up a Shared UNIX Root File HFS Recommendations: Try and make your root file non-SMS managed (DFSMS 1.4 / DFSMS 1.5 require PTFs). This is not a requirement, but it necessary for using indirect cataloging. If you are using a 3390-9 for your sysres, then there is probably plenty of room on the sysres for the root file. Pick a simple name. I suggest calling it something like SYS1.ROOT, SYS1.OMVS.ROOT, SYS1.USS.ROOT, or SYS1.UNIX.ROOT. Why use SYS1? A non-SMS root file can be treated just like any other sysres data set, reside on the sysres, and be indirectly cataloged in the master catalog so the correct root file is used based on the IPL volume. If your root file will not fit on your primary sysres it can still be on a secondary or third sysres and be cataloged using extended indirect cataloging. If your root file is still under SMS control, then add the primary sysres name as a suffix to the name. Example: SYS1.ROOT.RES01A ------------------------------------------------------------------- Implementation Specifics: 1. Create/restore a root file from the maintenance root to the target volume, this may be your primary sysres if there is room. This should be done as part of the cloning process after OS/390 maintenance is applied. 2. Update BPXPRMxx with the appropriate root data set name and change the mode from RDWR (read/write) to READ (read only): /********************************************************************/ /* Define The ROOT HFS */ /********************************************************************/ ROOT FILESYSTEM('SYS1.ROOT') /* R/O root on sysres */ /* ROOT FILESYSTEM('SYS1.ROOT.&SYSR1.') R/O root not on sysres */ TYPE(HFS) /* Type of File system */ MODE(READ) /* Can be READ or RDWR */ /********************************************************************/ 3. If the /tmp, /dev, and /var directories are currently part of the read/write root system, they need to be moved to their own HFS files and mounted at IPL time. A TFS (Temporary File System) can be used for /dev and /var (there is no residual data needed between IPLs from /dev and /var). A TFS is a "virtual" HFS data set and only resides in storage, not on DASD. The /tmp directory can also be a TFS but is not recommended because of its size requirements and the loss of files that may be needed in the /tmp directory after an IPL, such as VI recovery files, dumps, etc. Note that you need to be at OS/390 2.8 or above to use a TFS for the /dev directory, otherwise you will need to copy your current /dev from the root to a separate HFS data set. To copy your current /dev from the root HFS, mount your maintenance root file at the /service mount point and mount a newly allocated (empty) HFS at the /service/service mount point (or any unused directory), and issue the following command: cp -Rp /service/dev/ /service/service/ You must also allocate a empty HFS for the /tmp HFS and mount it at IPL time if you are not already doing so. Make sure the permission bits are set to 777 (or 1777, which is 777 plus the sticky bit). The following updates need to be made to BPXPRMxx: /********************************************************************/ /* Define Temporary File System (TFS) */ /********************************************************************/ FILESYSTYPE TYPE(TFS) /* Type of file system to start */ ENTRYPOINT(BPXTFS) /* Entry Point of load module */ /********************************************************************/ /* TMP HFS data set */ /********************************************************************/ MOUNT FILESYSTEM('OMVS.TMP.&SYSNAME.') /* Name of file system */ TYPE(HFS) /* Type of file system - HFS */ MODE(RDWR) /* must be read/write for /tmp */ MOUNTPOINT('/tmp') /* mount point */ /********************************************************************/ /* DEV HFS data set (Temporary File System) */ /********************************************************************/ MOUNT FILESYSTEM('OMVS.TFS.DEV.&SYSNAME.') /* Name of file system */ TYPE(TFS) /* Type of file system - TFS */ MODE(RDWR) /* must be read/write for /dev */ MOUNTPOINT('/dev') /* mount point */ PARM('-s 1') /* create a 1M TFS */ /* For /dev TFS, make size = concurrent users * 8K + .5MB. */ /********************************************************************/ /* VAR HFS data set (Temporary File System) */ /********************************************************************/ MOUNT FILESYSTEM('OMVS.TFS.VAR.&SYSNAME.') /* Name of file system */ TYPE(TFS) /* Type of file system - TFS */ MODE(RDWR) /* must be read/write for /dev */ MOUNTPOINT('/var') /* mount point */ PARM('-s 2') /* create a 2M TFS */ /********************************************************************/ 4. The default permission on a TFS is 777, so add a line to /etc/rc to change the permission bits to 755 for the /dev directory. The /var directory needs to stay at the TFS default of 777. # Change TFS /dev permission bits from 777 to 755 chmod 755 /dev 5. Verify the root file is indirectly cataloged in the target system's master catalog. If the root is not on the sysres skip this step. The root does not have to be on the primary sysres to take advantage of indirect cataloging. //JS010 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * DEF NVSAM(NAME(SYS1.ROOT) VOL(******) DEVT(0000)) - CAT(MASTER.CATALOG) /* DEF NVSAM(NAME(SYS1.ROOT) VOL(&SYSR2) DEVT(0000)) - */ /* CAT(MASTER.CATALOG) */ 6. IPL You can now share the root HFS. :-) Repeat steps 2 through 6 on any systems that will share the root.