在进行文件系统维护和管理过程中,会碰到这样一些问题,例如无法安装文件系统或者无法拆卸文件系统,当文件系统的超级块被破坏,而无法正常使用文件系统,如何修复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 |
#mount /allenfs |
修复该文件系统时,出现下面错误提示,并异常终止:
#fsck /dev/lv1 Not a recognized filesystem type. (TERMINATED) |
例如文件系统对应的逻辑卷为/dev/lv1,则恢复该文件系统的超级块命令如下:
#dd count=1 bs=4k skip=31 seek=1 if=/dev/lv1 of=/dev/lv1 |
#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 |
#kill –9 2910 3466 |
#lsdev -Cc cdrom |
#lsdev –C –l cd0 |
3、如果文件系统仍然处于忙状态,不能被拆卸,可能是在这个文件系统中加载了一个内核扩展,这种情况用fuser命令无法检查到内核扩展,系统提供了一个检查内核扩展的工具——genkex,用这个命令可以显示目前已加载的所有扩展内核。
4、如果在一个文件系统还安装了另一个文件系统,则要直接拆卸这个文件系统也是不能成功,必须先将该文件系统中所有安装的文件系统拆卸掉,才能拆卸自己。使用mount命令查看有那些文件系统还在安装在系统上,然后根据安装点将安装在这个文件系统中的所有其它文件系统用umount命令拆卸掉,再试着拆卸自己。
三、 无法删除文件系统
当一个文件系统可以用mount命令安装或用unmount拆卸,但是无法删除该文件系统,在删除时,系统会报如下错误
: 0516-306:get lvodm: unable to find
#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 /dev/hd4 |
#logform /dev/hd8 |
(责任编辑:城尘)