Patch Name: PHCO_28116 Patch Description: s700_800 11.00 fsck_hfs(1M) cumulative patch Creation Date: 02/10/25 Post Date: 02/11/22 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: N/A Filesets: OS-Core.UX-CORE,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP Automatic Reboot?: No Status: General Release Critical: No Category Tags: defect_repair enhancement general_release Path Name: /hp-ux_patches/s700_800/11.X/PHCO_28116 Symptoms: PHCO_28116: fsck_hfs(1M) is unable to ensure the consistency of a file system. The file system is mountable after running fsck, but rm(1) on the directory reports an error that the directory is not empty. PHCO_19673: Enhancement to support VxFS file system version 4. PHCO_19091: When upgrading from 10.X to 11.00, fsck may fail on hfs file systems with the message: BAD SUPER BLOCK: TRASHED VALUES IN SUPER BLOCK USE -b OPTION TO FSCK TO SPECIFY LOCATION OF AN ALTERNATE SUPER-BLOCK TO SUPPLY NEEDED INFORMATION; SEE fsck(1M). PHCO_16703: If a file system fragment size is not 1K, and fsck needs to correct the block count for a directory inode, fsck miscalculates the size field for the directory inode. fsck succeeds, however, the kernel will subsequently treat it as a corrupted directory. Defect Description: PHCO_28116: fsck_hfs(1M) does not repair a directory if the address of a block containing the directory entries gets corrupted. Resolution: The solution is to save as much of the directory as possible. So if nth block gets corrupted, addresses of all the blocks starting from 'n' upwards will be set to '0'. fsck_hfs(1M) will put all the entries starting from nth block in the lost+found directory. PHCO_19673: The fsck(1M) command must be able to recognize VxFS file system version 4, in addition to version 2 and version 3. It only needs to be recompiled, since it uses a libc routine that was enhanced to understand VxFS version 4. For full support for multiple VxFS versions, the following patches are required. Note: This patch, PHCO_19673, can be installed without the patches below if support for multiple VxFS versions is not required. PHCO_18462 diskusg_vxfs PHCO_18463 fscat PHCO_18464 getext PHCO_18465 setext PHCO_18466 vxdump PHCO_18467 vxrestore PHCO_18468 vxupgrade PHCO_18470 df PHCO_18471 fstyp PHCO_18472 fs_wrapper PHCO_18473 mount_wrapper PHCO_19491 libc PHCO_19623 mount_hfs PHCO_19624 mount_cdfs PHCO_19631 lvchange PHCO_19656 mkboot PHCO_19673 fsck_hfs Resolution: The fsck code calls statvfsdev(), a libc routine that was changed to understand VxFS version 4. So fsck needs to be recompiled with the newer libc. PHCO_19091: The value of fs_csp in the superblock structure of an hfs file system changed from 10.X to 11.00. The value used to be an array of data, but for 11.00, only the first entry in the array is used; the remaining entries have been renamed to fs_unused2. While 11.00 file systems do not used this field, 10.X file systems may have left data in this now unused field. fsck_hfs(1M) does not handle this properly, and treats this data as if the primary superblock of the file system is corrupt, when in fact the file system is fine. Resolution: fsck_hfs(1M) has been updated to properly handle the change in the fs_csp structure in the hfs superblock. PHCO_16703: When the block count needs to be corrected for a directory inode, fsck_hfs miscalculates the size field of the directory inode on the file system where the fragment size is not 1K bytes. It sets an incorrect large value in the size field of the directory inode. The contents of the directory file are correct but HP-UX kernel detects that the end of the directory entry does not match with the size of the directory file and treats this as a corrupted directory entry. Enhancement: No (superseded patches contained enhancements) PHCO_19673: Enhancement to support VxFS file system version 4. SR: 8606228496 4701427328 1653296293 1653277301 Patch Files: OS-Core.UX-CORE,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /sbin/fs/hfs/fsck what(1) Output: OS-Core.UX-CORE,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /sbin/fs/hfs/fsck: $Revision: 82.7.1.5 $ $ PATCH/11.00:PHCO_19491 Aug 9 1999 09:49:32 $ PATCH_11_00: fsck.o cache.o ufs_tables.o ufs_subr.o hpux_rel.o 02/10/25 cksum(1) Output: OS-Core.UX-CORE,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 362996100 348160 /sbin/fs/hfs/fsck Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHCO_16703 PHCO_19091 PHCO_19673 Equivalent Patches: None Patch Package Size: 370 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_28116 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHCO_28116.depot By default swinstall will archive the original software in /var/adm/sw/save/PHCO_28116. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHCO_28116.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHCO_28116.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHCO_28116.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None