【導讀】日志型文件系統(JFS)是AIX操作系統特有的文件系統,這種文件系統使用數據庫日志技術來維護文件系統結構的一致性,當系統異常中斷運行時,能夠防止損壞文件系統。
在進行文件系統維護和管理過程中,會碰到這樣一些問題,例如無法安裝文件系統或者無法拆卸文件系統,當文件系統的超級塊被破壞,而無法正常使用文件系統,如何修復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 /allenfsmount: 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號邏輯塊上去。
#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在許多情況下,通過恢復備份超級塊到主超級塊可以解決這個問題,使文件系統處於正常工作狀況下。如果這樣做還不能解決問題,那只能刪除文件系統,然後重新建立文件系統,再恢復備份的數據。
#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換為文件系統的邏輯名)如果設備狀態為可用,您就可以使用該設備或卸載文件系統。
#lsvg -l rootvg若類型顯示為???,則用synclvodm -P rootvg 和 syncvg -v rootvg 命令對卷組進行同步,之後,再用命令 lsvg -l rootvg 顯示出正確的文件類型。此時可以成功刪除該文件系統。
#ODMDIR=/etc/objrepos;export ODMDIR運行fsck命令清理檢查上面提到的文件系統,命令如下:
#fsck /dev/hd4當然也可使用其fsck選項。如果rootvg中缺省文件系統的日志(JFSLOG)即/dev/hd8有問題,這時也可以重建它,命令如下:
#fsck /dev/hd2
#fsck /dev/hd3
#fsck /dev/hd9var
#logform /dev/hd8然後會提示您是否繼續初始化,如果回答y,以前在/dev/hd8上的日志信息就被清掉。初始化成功後,輸入exit命令就退出單用戶模式,根據提示按回車進入多用戶模式,這些文件系統會自動被安裝上。最後用shutdown命令關閉系統。