- 论坛徽章:
- 0
|
Document ID: 203100
http://support.veritas.com/docs/203100
[url=javascript:openSubWin('http://seer.entsupport.symantec.com/email_forms/tnote_sndml.asp?docID=http://seer.entsupport.symantec.com/docs/203100', 475, 500)]
![]()
E-Mail this document to a colleague[/url]
Fsadm command fails with the following error message, "fsadm: You don't have a license to run this program".
Exact Error Message
fsadm: you don't have a license to run this program
Details:
This TechNote assumes that the VERITAS File System (VxFS) license is actually installed.
To verify that the VxFS license is installed, run the following command:
# vxlicense -p
vrts:vxlicense: INFO: Feature name: VXFS [80]
vrts:vxlicense: INFO: Number of licenses: 1 (non-floating)
vrts:vxlicense: INFO: Expiration date: No expiration date
vrts:vxlicense: INFO: Release Level: 22
vrts:vxlicense: INFO: Machine Class: 1859009269
NOTE: If the VxFS license is not installed then fsadm and other VxFS commands will fail. If the VxFS license is installed and the fsadm command is failing, then this TechNote may be helpful.
There are two instances where the fsadm command may cause the error message, "fsadm: You don't have a license to run this program".
# /usr/lib/fs/vxfs/fsadm -ed /vxfs_mnt (Defragment the VxFS file system)
# /usr/lib/fs/vxfs/fsadm -b new_fs_size /vxfs_mnt (Grow or shrink the VxFS file system)
CAUSE OF THE PROBLEM
Either files are missing or corrupt:
(a) /dev/vxportal
(b) /devices/pseudo/vxportal@0:0
(c) /kernel/drv/vxportal (32bit driver) or
(d) /kernel/drv/sparcv9/vxportal (64bit driver)
In both instances fsadm automatically tries to load vxportal device driver (/kernel/drv/vxportal or /kernel/drv/sparcv9/vxportal). If any of the four vxportal files (mentioned above) are missing or corrupt then fsadm will fail with an error message, "fsadm: You don't have a license to run this program".
NOTE: The error message is misleading and appears to be a license error, but the real problem is with vxportal file(s).
(a) /dev/vxportal is unlikely to be missing. If it is missing, it is since it was manually deleted by a user or by some other unknown reason.
(b) If /devices/pseudo/vxportal@0:0 is missing it is probably because the VERITAS File System (VRTSvxfs) package was installed without rebooting the system.
During the installation (pkgadd) of VxFS many changes were made to the system. Some of the changes made that relate to this issue are:
1.) /dev/vxportal device file is created, which is actually a soft link which points to /devices/pseudo/vxportal@0:0
# ls -la /dev/vxportal
lrwxrwxrwx 1 root other 28 Mar 12 17:09 /dev/vxportal -> /devices/pseudo/vxportal@0:0
2.) /etc/name_to_major file is modified via add_drv command to include vxportal major number (The major number may be different; it does not have to be 172)
# grep vxportal /etc/name_to_major
vxportal 172
/devices/pseudo/vxportal@0:0 is not created during the installation of VRTSvxfs. It is created after the system is rebooted (reconfiguration reboot only). During the boot process /devices/pseudo/vxportal@0:0 file is then created via drvconfig (/etc/rcS.d/S50drvconfig on Solaris 2.6 and below) or devfsadm (/etc/rcS.d/S50devfsadm on Solaris 2.7 and above).
See the devfsadm(1M) and drvconfig(1M) man pages for more information.
(c) and (d) Device driver binaries, /kernel/drv/vxportal and /kernel/drv/sparcv9/vxportal, may be missing because they were mistakenly deleted or installation of the VxFS package was never completed successfully.
HOW TO IDENTIFY THE PROBLEM
(a) and (b) The problem can be identified by running fsadm command through truss. For example,
# truss -fa /usr/lib/fs/vxfs/fsadm -e /vxfs_mnt
29373: execve("/opt/VRTSvxfs/sbin/fsadm", 0xFFBEFAE4, 0xFFBEFAFC) argc = 5
29373: argv: fsadm -F vxfs -d /vxfs_mnt
... ...
29373: open64("/dev/vxportal", O_RDONLY) Err#2 ENOENT
fsadm29373: write(2, " f s a d m", 5) = 5
: You don't have a license to run this program
29373: write(2, " : Y o u d o n ' t ".., 47) = 47
29373: llseek(0, 0, SEEK_CUR) = 8098
29373: _exit(100)
From the above truss output it is easy to see that the open64() system call tried to open /dev/vxportal file but failed with error code 2, ENOENT.
Looking at intro(2) man page (man -s 2 intro) or /usr/include/sys/errno.h it is possible to see what error ENOENT means:
2 ENOENT
No such file or directory
A file name is specified and the file should exist but doesn't, or one of the directories in a path name does not exist
(c) and (d) If /kernel/drv/vxportal and/or /kernel/drv/sparcv9/vxportal are missing or corrupt the error message on the screen will be the same, "fsadm: You don't have a license to run this program". The truss output will show that open64() call is failing with a different error code. For example,
# truss -fa /usr/lib/fs/vxfs/fsadm -e /vxfs_mnt
600: execve("/usr/lib/fs/vxfs/fsadm", 0xEFFFFD54, 0xEFFFFD64) argc = 3
600: argv: /usr/lib/fs/vxfs/fsadm -e /vxfs_mnt
... ...
33: open64("/dev/vxportal", O_RDONLY) Err#6 ENXIO
fsadm33: write(2, " f s a d m", 5) = 5
: You don't have a license to run this program
33: write(2, " : Y o u d o n ' t ".., 47) = 47
33: llseek(0, 0, SEEK_CUR) = 20357
open64() system call fails to open the same file, /dev/vxportal, but this time with error code 6, ENXIO.
Looking at intro(2) man page (man -s 2 intro) or /usr/include/sys/errno.h it is possible to see what error ENXIO means:
6 ENXIO
No such device or address
I/O on a special file refers to a subdevice which does not exist, or exists beyond the limit of the device. It may also occur when, for example, a tape drive is not on-line or no disk pack is loaded on a drive.
SOLUTION
(a) and (b) Manually re-create /dev/vxportal and/or /devices/pseudo/vxportal@0:0, depending on which file is missing.
First verify that the vxportal line was added to /etc/name_to_major file this way:
# grep vxportal /etc/name_to_major
vxportal 172
If the vxportal line is not in /etc/name_to_major file, then add it with the following command:
# add_drv -v -n vxportal
(a) If /dev/vxportal file is missing then create it with this command:
# ln -s /devices/pseudo/vxportal@0:0 /dev/vxportal
(b) If /devices/pseudo/vxportal@0:0 file is missing then re-create it.
On Solaris 2.6 and below run:
# drvconfig -i vxportal
On Solaris 2.7 and above run:
# devfsadm -v -i vxportal
devfsadm[10877]: verbose: mknod /devices/pseudo/vxportal@0:0 0l/3l/20600
(c) and (d) If /kernel/drv/vxportal and/or /kernel/drv/sparcv9/vxportal are missing or corrupt, then re-install VRTSvxfs package. Re-installation of VRTSvxfs will re-install corrupt or missing files only. In this case, corrupt or missing vxportal drivers (/kernel/drv/vxportal and /kernel/drv/sparcv9/vxportal) will be re-installed. For more detailed information about installing VxFS refer to the VERITAS File System for Solaris Installation Guide.
Products Applied:
File System for UNIX/Linux 2.3 (Solaris), 3.2.3 (Solaris), 3.2.4 (Solaris), 3.2.5 (Solaris), 3.2.6 (Solaris), 3.3 (Solaris), 3.3.1(Solaris), 3.3.2 (Solaris), 3.3.3 (Solaris), 3.4 (Solaris)
Last Updated: April 05 2001 07:37 PM GMT
Expires on: 365 days from publish date
![]()
Subscribe to receive critical updates about this document
Subjects:
File System for UNIX/Linux
Application: Configuration, License
License: Informational, Installation, License
Operating System: Compatibility, Configuration, License
Languages:
English (US)
Operating Systems:
Solaris
2.3, 2.4, 2.5, 2.5.1, 2.6, 7.0 (32-bit), 8.0 (32-bit)
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/31774/showart_1709872.html |
|