在进行文档系统维护和管理过程中,会碰到这样一些问题,例如无法安装文档系统或无法拆卸文档系统,当文档系统的终极块被破坏,而无法正常使用文档系统,如何修复rootvg中的主要文档系统,下面就讨论如何解决一些常见的文档系统问题。
一、恢复终极块错误
有些用户在使用fsck或mount命令时,当见到下面的提示信息时,可能是文档系统的终极块出了问题:
fsck: Not an AIX3 file system
fsck: Not an AIXV3 file system
fsck: Not an AIX4 file system
fsck: Not an AIXV4 file system
fsck: Not a recognized file system type
mount: invalid argument
例如,当用户安装一个/allenfs文档系统时,出现下面的错误提示:
#mount /allenfs
mount: 0506-324 Cannot mount /dev/lv1 on /allenfs: A system call received a parameter that is not valid.
修复该文档系统时,出现下面错误提示,并异常终止:
#fsck /dev/lv1
Not a recognized filesystem type. (TERMINATED)
要解决这个问题,只能用备份的终极块来恢复主终极块,我们都知道,在文档系统中,1号逻辑块是主终极块,31号逻辑块是备份终极块,因此就把31号逻辑块上的内容写到1号逻辑块上去。
例如文档系统对应的逻辑卷为/dev/lv1,则恢复该文档系统的终极块命令如下:
#dd count=1 bs=4k skip=31 seek=1 if=/dev/lv1 of=/dev/lv1
当恢复完成,就要用fsck命令来检查文档系统的完整性:
#fsck /dev/lv1
** Checking /dev/rlv1 (/allen)
** Phase 0 - Check Log
log redo processing for /dev/rlv00
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference counts
** Phase 5 - Check Inode Map
** Phase 6 - Check Block Map
9 files 608 blocks 15776 free
在许多情况下,通过恢复备份终极块到主终极块能够解决这个问题,使文档系统处于正常工作状况下。假如这样做还不能解决问题,那只能删除文档系统,然后重新建立文档系统,再恢复备份的数据。
二、无法拆卸文档系统
假如有用户或程式在一个文档系统中活动,就无法拆卸这个文档系统,当使用拆卸命令时,会提示下面的错误:
Device busy 或 A device is already mounted or cannot be unmounted 例如由于安装程式的异常终止或其他原因经常会碰到不能正常释放光驱(光驱是CDROM文档系统)的问题,当用户再次访问光盘驱动器时就产生错误0514- 062: 指定的设备忙。
按照下面的步骤去解决:
1、检查用户自己的当前工作目录是否在这个文档系统中,假如是,则用cd /命令使当前工作目录回到根目录,然后再试着拆卸文档系统;
2、假如还是不能拆卸文档系统,可能在文档系统有文档正在被打开使用,因此在拆卸文档系统之前应该关闭这些文档。有时候可能更有一些进程在使用这个文档系统的资源,能够使用fuser命令来检查有那些进程仍然在这个文档系统中活动。Fuser命令将显示在这个文档系统中正在活动的任何进程ID号。下面就 fuser命令使用的例子:
#fuser /dev/cd
/dev/cd: 2910 3466
假如使用fuser –u /dev/cd将在进程号后指出用户名。假如root用户用fuser –k /dev/cd命令,则给这些进程发出SIGKILL信号,来杀死这些进程。然后用kill命令将这些正在活动的进程杀死,然后再试着拆卸文档系统。例如:
#kill –9 2910 3466
这时您能够用下面命令检查设备的状态是否为可用:
#lsdev -Cc cdrom
或
#lsdev –C –l cd0
(若为其他文档系统,将cd0换为文档系统的逻辑名)假如设备状态为可用,您就能够使用该设备或卸载文档系统。
3、假如文档系统仍然处于忙状态,不能被拆卸,可能是在这个文档系统中加载了一个内核扩展,这种情况用fuser命令无法检查到内核扩展,系统提供了一个检查内核扩展的工具——genkex,用这个命令能够显示现在已加载的任何扩展内核。
4、假如在一个文档系统还安装了另一个文档系统,则要直接拆卸这个文档系统也是不能成功,必须先将该文档系统中任何安装的文档系统拆卸掉,才能拆卸自己。使用mount命令查看有那些文档系统还在安装在系统上,然后根据安装点将安装在这个文档系统中的任何其他文档系统用umount命令拆卸掉,再试着拆卸自己。
三、 无法删除文档系统
当一个文档系统能够用mount命令安装或用unmount拆卸,但是无法删除该文档系统,在删除时,系统会报如下错误:
0516-306:get lvodm: unable to find in the device confgiguration data. 发生此错误的原因可能是ODM数据库中的定义和实际不一致。能够用下面命令检查该文档系统的类型:
#lsvg -l rootvg
若类型显示为???,则用synclvodm -P rootvg 和 syncvg -v rootvg 命令对卷组进行同步,之后,再用命令 lsvg -l rootvg 显示出正确的文档类型。此时能够成功删除该文档系统。
四、 修复rootvg中的主要文档系统和日志
假如要检查和修复rootvg中的/、/tmp、/usr、/var文档系统,必须先将他们卸载,然而在正常的多用户环境下是无法卸载这些文档系统,要完成这些工作必须在维护模式下进行。
首先重启动系统,在系统引导时按F6键(对于图像方式)或数字“6”键(对于字符方式)进入到系统的在线诊断(Online Diagnostics)服务模式,选择“5”进入单用户模式,即维护模式。
假如当前的AIX是AIX 3.2.4或3.2.5版本,还必须配置ODMDIR环境变量,命令如下:
#ODMDIR=/etc/objrepos;export ODMDIR
运行fsck命令清理检查上面提到的文档系统,命令如下:
#fsck /dev/hd4
#fsck /dev/hd2
#fsck /dev/hd3
#fsck /dev/hd9var
当然也可使用其fsck选项。假如rootvg中缺省文档系统的日志(JFSLOG)即/dev/hd8有问题,这时也能够重建他,命令如下:
#logform /dev/hd8
然后会提示您是否继续初始化,假如回答y,以前在/dev/hd8上的日志信息就被清掉。初始化成功后,输入exit命令就退出单用户模式,根据提示按回车进入多用户模式,这些文档系统会自动被安装上。最后用shutdown命令关闭系统。