三、文件系统管理命令
3.1、文件系统的分类:
日志型文件系统(JFS):是AIX操作系统特有的文件系统,使用数据库日志技术来维护文件系统结构的一致性,Itanium平台不支持jfs,只支持jfs2增强的日志型文件系统(JFS2):是JFS的增强版,可以存储更大的文件,是64位默认的文件系统,JFS是32位默认的文件系统网络文件系统(NFS):是一个分布式的文件系统,访问远程的计算机上的目录和文件就像本地访问一样
CD-ROM文件系统(CDRFS):允许用户像访问一般文件系统一样访问CD-ROM文件系统,默认是自动安装CD的,如果没有安装或关掉了,可以用cdmount命令来安装,AIX5.1前的版本,用命令mount -r -v cdrfs /dev/cd0 /mnt
DVD-ROM文件系统(UDFS):允许用户像访问一般文件系统一样访问DVD-ROM文件系统,/etc/cdrom.conf文件是cdromd守侯进程配置文件,如果用户修改了这个文件,就必须用refresh -s cdromd或kill -1 cdromdPID命令通知cdromd进程配置文件已经更改
lsvfs 命令是显示VFS(虚拟文件系统)的定义,如lsvfs procfs
3.2、创建文件系统命令:
3.2.1、crfs命令
crfs -v vfstype {-g volumegroup | -d device} [-l logpartitons] -m mountpoint [-n nodename] [-u mountgroup] [-A {yes|no}]
[-p {ro|rw}] [-a attribute=value...][-t {yes|no}]
-v vfstype 表示创建文件系统的类型 vfstype 的值可以是jfs或jfs2
-g volumegroup | -d device 表示在哪个卷组中创建文件系统,如果不指定卷组名,则必须用-d device 指定一个未使用的逻辑卷名
-l logpartitons 表示指出逻辑分区的大小,只适用于jfs和jfs2文件系统
-m mountpoint 表示指出文件系统的安装点,必须是绝对路径
-n nodename 表示指出文件系统所在的远程主机名(只使用于远程虚拟文件系统或网络文件系统nfs)
-u mountgroup 表示使用安装组来安装一组文件系统
-A {yes|no} 表示每次系统重起后是否自动安装该文件系统
-p {ro|rw} 表示指出该文件系统的权限,ro表示只读权限,rw表示可读写权限
-a attribute=value... 表示指出决定虚拟文件系统的属性及其对应的值
-t {yes|no} 表示该文件系统是否被记帐子系统处理
其中-a attribute=value...中的attribute可以按文件系统来分
JFS2的attribute所对应的值为:
agblksize={512|1024|2048|4096字节} 表示jfs2块的大小,默认是4096字节
logname=lvname 指出日志逻辑卷名
logsize=value 表示内嵌日志的大小,单位是MB,一般为文件系统大小的0.4%,最大不能超过10%
dense 表示如果用jfs2的holes(孔)创建一个文件,那么就会给这些holes分配磁盘块并用0填充
size=value 单位为512字节的块,表示指定文件系统的大小
jfs的attribute所对应的值为:
ag ={8|16|32|64MB} 表示分配组的大小,默认为8MB
bf={true|false} 表示是否创建巨型文件系统
compress{no|LZ} 表示是否对文件系统进行压缩,LZ表示采用lz压缩算法进行压缩
frag {512|1024|2048|4096字节} 表示指出JFS的碎片大小,默认是4096
logname=lvname 指出日志逻辑卷名
nbpi={512|1024|2048|4096|8192|16384|32768|65536|131072} 指出每个I节点拥有的字节点(nbpi),默认是4096字节
size=value 单位可以为512字节的块、MB、GB,表示指定文件系统的大小
crfs -v jfs -g rootvg -m /test -a size=16M -a frag=512 -a nbpi=1024
表示在卷组rootvg中创建了/test jfs类型的文件系统,用512字节大小的碎片,每个i节点拥有1024个字节,文件系统大小为16M
crfs -v jfs2 -g rootvg -m /test -a size=32768 -a agblksize=2048 -a logname=inline
表示在卷组rootvg中创建了/test jfs2类型的文件系统,使用2048字节的块大小,指定在逻辑卷inline上创建,文件系统大小为:
32768*512字节=16M
以上命令可以通过smit jfs或smit jfs2来进行操作
crfs命令的作用是在系统中添加一个新的文件系统,jfs文件系统添加可以使用命令smit jfs命令,jfs2文件系统添加可以使用命令
smit crjfs2std添加。
mkfs命令的作用是把一个已经存在的设备(可以是块设备、裸设备、文件系统,这里只讲lv)做成jfs文件系统可以使用smit crjfslvstd命令,
做成jfs2文件系统可以使用smit crjfs2lvstd
做成文件系统
3.2.2、mkfs的命令
mkfs [-b boot] [-l label] [-i i-nodes] [-o options] [-p prototype][-s size] [-v volumelabel] [-V vfsname] device
-b boot 在新文件系统的0号块中安装程序
-l label 给新文件系统指定文件系统标签
-i i-nodes 指定文件系统中初始的i节点数,当创建一个jfs文件系统时mkfs命令会忽略这个参数
-p prototype 指定原型文件名
-s size 指定文件系统的大小
-v volumelabel 指定新文件系统的卷标
-V vfsname 指定虚拟文件系统的类型
-o options 跟crfs中的-a attribute的参数一样
mkfs -s 8192 -o nbpi=2048,frag=512 /dev/lv01
表示把/dev/lv01设备建造成一个4M的空文件系统,碎片大小为512字节,每个i节点有2048个字节
mkfs -V jfs -o nbpi=131072,bf=true,ag=64 /dev/lv01
表示把/dev/lv01设备建造成一个允许巨型文件的文件系统,分配组的大小为64M,nbpi为131072,文件系统的大小就是逻辑卷/dev/lv01的大小
3.2.3、创建RAM(内存) disk文件系统命令
mkramdisk [-u] size [M|G]
-u 表示创建的RAM disk内存页不会被固定,在一个系统中可以创建64个RAM disk,生成的名字格式为:/dev/rramdiskX
size [M|G] 表示RAM disk的大小,默认是512字节为单位,M|G表示以MB|GB为单位
删除一个RAM disk文件系统命令为rmramdisk
要创建一个大约20MB(40000个512字节的块)的RAM disk,然后在其上建立一个jfs文件系统,步骤为:
mkramdisk 40000 执行这条命令后生成一个RAM disk文件/dev/rramdisk0
ls -l |grep ramdisk 检查RAM disk文件
mkfs -V jfs /dev/ramdisk0 在RAM disk文件上建立一个JFS类型的文件系统
mkdir /ramdisk 建立文件系统安装点
mount -V jfs -o nointegrity /dev/ramdisk0 /ramdisk 安装新创建的RAM disk文件系统
mount 检查新文件系统已经安装
df -k 检查新文件系统的大小
注意:保存在RAM disk文件系统上的数据可能会丢失,重起系统后,该文件系统就会被删除,如果要继续使用,就得重新创建
3.3、监视文件系统的命令
文件系统的所有信息都是集中放在/etc/filesystems文件中的,
/etc/vfs文件描述着系统中已经安装的虚拟文件系统(VFS)的类型,包含类型名、类型代码、文件系统助手程序。mount,fsck、
mkfs、umount、fsdb、 df、ff命令使用这些信息
lsfs 显示文件系统的信息
如果带-q 参数,则会从文件系统的超级块中查询碎片大小、压缩规则和NBPI参数的值
如果带-c 参数,则显示个个列用冒号(:)分开
也可以用smit lsfs命令来操作
mount 显示系统中已经安装的文件系统
df 显示文件系统空间的使用情况,带如下参数分别表示不同的用途
-I 表示显示I节点的使用情况
-v 显示文件系统的所有信息
-M 把文件系统的安装点显示在第2列
-t 以图形的方式显示文件系统的分配的总空间
-P 以POSIX标准格式显示文件系统空间信息
空间爆满一般要检查/var/adm/wtmp,/var/spool/*/*,/smit.log,/smit.script,/etc/security/failedlogin,/var/adm/sulog,/*/core
du 表示显示文件的大小
加-a 参数表示显示指定目录下的所有子目录和文件的大小
加-s 参数表示只列出所有文件和目录的总块数
3.4、安装/卸载文件系统命令
如果在/etc/filesystems文件中没有记录某个文件系统的信息,我们可以用mount /dev/lv01 /mnt 命令来安装
如果在/etc/filesystems文件中都存在文件系统的信息,我们可以用mount all或者用mount -a来进行安装
也可以用smit mountfs命令来实现
能够自动装载文件系统有两中情况:
系统引导和运行必须的文件系统,他们在/etc/filesystems文件中的mount属性为automatic,这些都是自动装载,同时不能通
过mount/umount命令来对他们进行操作
用户控制的文件系统,他们在/etc/filesystems文件中的mount属性为true。这些文件系统都是可以通过mount/umount命令来对他们进行操作
卸载文件系统命令
umount /mnt 卸载/mnt装载的文件系统
umount all 表示卸载所有的用户控制的文件系统
可以用smit umountfs命令来卸载文件系统
3.5、删除一个文件系统命令:
rmfs [-r|-i] filesystem
-r 表示删除文件系统的安装点
-i 表示删除之前显示警告信息并提示用户进一步确定是否继续删除
可以使用smit rmjfs命令来操作
3.6、改变一个文件系统大小的命令:
chfs -a size=<新的大小,以512字节为单位> <文件系统名>
改变步骤为:
df -k显示文件系统的当前大小
计算要给文件系统增加到多少个块(512字节/块)或M或G为单位
chfs -a size=<新的大小,以512字节为单位> <文件系统名>
再用df 命令来显示
chfs -a size=150M /tmp
chfs 命令还可以修改文件系统的其他属性,可以使用smit chjfs命令来实现
3.7、维护文件系统的命令:
fsck命令的作用是检查文件系统的一致性,同时修复被破坏的文件系统
fsck [-v vfstype] [-f] [-n] [-y] [-p] [filesystem]
-v vfstype 表示检查文件系统的类型
-f 表示执行一个快速的检查
-n 表示不打开任何文件系统也不会写任何文件系统
-y 表示修复一个严重破坏的文件系统,也会删除一些严重破坏的文件
-p 检查过程中不显示一些有关较小问题 的信息,确认是否被损坏
filesystem 指定检查一个文件系统
注意:在生产机上运行fsck命令时要特别小心,可能会产生不可预知的后果
3.8、格式化JFS(JFS2)日志设备的命令
日志设备是一个逻辑卷,把一个裸逻辑卷变成JFS(JFS2)日志设备,用logform命令来格式化一个逻辑卷为JFS(JFS2)日志设备
logform [-V vfstype] logname
-V vfstype 表示文件类型
logname 表示日志逻辑卷名
logform -V jfs2 /dev/jfs2log 格式化一个jfs2日志设备,如果不带-V ,默认为jfs类型
要增加一个日志设备的步骤为:
mklv -y lv03 datavg 20 创建一个新的逻辑卷lv03
chlv -t jfslog/jfs2log lv03 修改逻辑卷的类型为jfslog/jfs2log
logform -V jfs/jfs2 /dev/lv03 格式化为jfs/jfs2日志设备
3.9、残片整理命令
残片:文件系统中不连续的空闲空间/空闲碎片
defragfs [-q|-r|-s] {device|filesystem}
device|filesystem 表示逻辑卷名或文件系统名
-q 报告文件系统的统计信息
-r 报告文件系统的当前统计信息和调整后的统计信息
-s 报告文件系统中的残片
3.10、文件系统故障处理命令
恢复超级块错误:
umount /myfs 卸载文件系统/myfs
fsck -p /dev/lv01 检查文件系统是否损坏
od -x -N 64 /dev/lv01 +0x1000 显示主超级块的内容
od -x -N 64 /dev/lv01 +0x1f000 检查备份超级块的幻数是否正确
dd count=1 bs=4k skip=31 seek=1 if=/dev/lv01 0f=/dev/lv01 将备份超级块来恢复主超级块的内容
fsck /dev/lv01 恢复完后检查完整性
无法卸载文件系统处理:
fuser /dev/cd0 显示在这个系统中正在活动的进程ID
kill -9 2190 2344 杀死这些正在运行的进程
lsdev -Cc cdrom 确定设备是否可以用,可用就可以访问或卸载文件系统
无法删除文件系统处理:
lsvg -l rootvg
如果类型显示为???,则用synclvodm -P rootvg和 syncvg -v rootvg命令来对卷组进行同步,在查看显示类型,如果正确表示可以删除
对rootvg中的主要文件系统和日志的修复方法:
重起系统按F6或数字6,选择进入维护模式
然后运行fsck /dev/hd4 ......
3.11、使用cdrfs和udfs文件系统的命令
crfs/mkfs 用来创建cdrfs的命令,可以用smit crcdrfs来操作
chfs 用来修改cdrfs的命令,可以用smit chcdrfs来操作
rmfs 用来删除cdrfs的命令,可以用smit rmcdrfs来操作
装载和卸载通过mount /cdrom和umount /cdrom来完成
CD-ROM/DVD-RAMA文件系统的自动安装功能是由cdromd进程实现,cdromd进程由系统资源控制器来管理
startsrc/refresh/stopsrc -s cdromd 启动/刷新/停止cdromd进程
cd管理命令有cdutil、cdcheck、cdmount、cdumount、cdeject
cdcheck -m cd0 检查cd0中是否有一个介质被安装
cdeject cd0 弹出一个介质
cdmount cd0 在设备cd0上安装一个文件系统
cdumount cd0 在设备cd0上卸载一个文件系统
cdutil -sk cd0 让cdromd进程挂起对cd0设备的管理,而不弹出其中的介质
mount -v 'cdrfs' -p -r -o upcase /dev/cd0 /cdrom 其中-o upcase表示装载后以大写的方式显示,不加就是以小写的方式显示