- 论坛徽章:
- 0
|
第十三章:文件系统介绍
文件系统的定义 \r\n对用户来说,文件系统是存储信息的文件和目录的集合。 \r\n对操作系统来说,文件系统是以一些数据的集合。 \r\n\r\n磁盘文件系统 \r\nSolaris定义了3种文件系统类型: \r\nufs – UNIX文件系统。是Solaris缺省的文件系统。 \r\nhsfs – 高密度CD-ROM文件系统,是只读文件系统。 \r\npcfs – PC文件系统,支持DOS格式化的软盘。 \r\n\r\n网络文件系统 \r\nNFS是Solaris系统支持的网络文件系统。 \r\n\r\n内存文件系统 \r\n指操作系统运行时存在于内存中的文件系统。 \r\n\r\n流分区已经定义了分区的大小和位置,但未创建文件系统。 \r\n块分区已经创建了文件系统。 \r\n它们之间的逻辑设备名分别存放在/dev/rdsk河/dev/dsk中。 \r\n\r\n磁盘卷标包含了磁盘的分区表。磁盘卷标存放在磁盘的第一个扇区。 \r\n\r\n启动块 \r\n启动块存放着启动程序。位于磁盘的1-15扇区。 \r\n\r\n超级块 \r\n超级块包含启动块后面的16个扇区。超级块是文件系统的信息表,包含: \r\n数据块的数量 \r\n柱面组的数量 \r\n数据块和碎片的大小 \r\n硬件的描述 \r\n挂接点 \r\n文件系统的状态:干净、稳定或激活 \r\n\r\n备份的超级块 \r\n由于超级块包含了许多关键数据,因此,必须要备份。备份是在文件系统创建时产生的。 \r\n\r\nSolaris下以inode的方式记录文件 \r\n\r\nInode包含文件的下列信息: \r\n文件类型和访问模式 \r\n文件的拥有者和所在组的 \r\n文件大小 \r\n上次访问和更改的时间以及inode更改的时间 \r\n已用数据块的数量 \r\n\r\ninode包含两种指针:直接指针和间接指针 \r\n直接指针 \r\n有12个,直接指向数据块。这12个指针可以支持96K字节的文件。 \r\n间接指针 \r\n单倍间接– 单倍间接指针指向包含指针的数据块。这样可以支持16M字节的文件。 \r\n双倍间接–双倍间接指针指向包含单倍间接指针的数据块。这样可以支持32G字节的文件。 \r\n三倍间接–三倍间接指针指向包含双倍间接指针的数据块。这样可以支持70T字节的文件。 \r\n\r\nnewfs创建文件系统 \r\n# newfs /dev/rdsk/c0t2d0s0 \r\nnewfs: construct a new file system /dev/rdsk/c0t2d0s0: (y/n)? y \r\n/dev/rdsk/c0t2d0s0: 41040 sectors in 57 cylinders of 9 tracks, 80 sectors \r\n21.0MB in 4 cyl groups (16 c/g, 5.90MB/g, 2688 i/g) \r\nsuper-block backups (for fsck -F ufs -o b=#) at: 32, 11632, 23232, 34832, \r\n\r\n文件系统检测工具(fsck)用于检测文件系统是否出错。 \r\n比如,某个数据块不能同时被两个不同的inode占用。Fsck程序可以检测这种错误。 \r\n# fsck /dev/rdsk/c0t3d0s7 \r\n** /dev/rdsk/c0t3d0s7 \r\n** Last Mounted on /export/home \r\n** Phase 1 - Check Blocks and Sizes \r\n** Phase 2 - Check Pathnames \r\n** Phase 3 - Check Connectivity \r\n** Phase 4 - Check Reference Counts \r\n** Phase 5 - Check Cyl groups \r\n2 files, 9 used, 21606 free (14 frags, 2699 blocks, 0.1% fragmentation) \r\n\r\n\r\n文件系统错误 \r\n许多情况下,文件系统发生错误是由于超级块有错误。发生错误的原因主要是: \r\n非正常关机 \r\n掉电 \r\n硬件错误 \r\n\r\nfsck运行的时间 \r\n系统每次启动时都会自动运行fsck。如果发现错误,会尝试自动修复,如果错误非常严重,需要人工修复。这是进入系统单用户模式,然后打命令: \r\n#fsck /dev/rdks/c0t0d0s0 \r\n\r\ndf命令查看已挂接的文件系统使用状况 \r\n参数k:表示以千字节格式显示 \r\n$ df -k \r\nFilesystem kbytes used avail capacity Mounted on \r\n/dev/dsk/c0t3d0s0 38111 19196 18877 51% / \r\n/dev/dsk/c0t3d0s6 565503 361529 203409 64% /usr \r\n/proc 0 0 0 0% /proc \r\nfd 0 0 0 0% /dev/fd \r\n/dev/dsk/c0t3d0s1 25159 4886 20248 20% /var \r\n/dev/dsk/c0t3d0s5 27439 20362 7050 75% /opt \r\nswap 45980 12 45968 1% /tmp \r\n\r\ndu命令显示某个目录下文件的占用磁盘空间的情况: \r\ndu [-a] [-s] [-k] [directory] \r\n参数: \r\n-k 以千字节方式显示(默认是以块方式显示,一个块为512字节) \r\n-s 只以简略的方式显示 \r\n-a 显示制定目录下所有文件和目录占用的磁盘块数量 |
|