电脑技术学习

sa239学习笔记之二管理文件系统

dn001
Module 3 管理Solaris OE文件系统

介绍solaris文件系统:

Disk-based file systems
Distributed file systems
Pseudo file systems

一、Disk-based 文件系统包括如下几种:
UFS Unix操作系统
hsfs cdrom 文件系统
fcfs Dos文件操作系统,如:fat32
udfs DVD文件系统

Distributed file systems包括:

NFS The network file system

Pseudo file systems包括:

tmpfs
swapfs
procfs
fdfs
mntfs

二、生成新的UFS 文件系统

详细见贴子底下的图片
Disk Label (VTOC)
在第一块磁盘扇区;占512k字节;
Boot Block
在VTOC后,点15 个扇区;在第1-15sectors ;
注:只有/ (boot)文件系统有一个活动启动块;其它文件系统在生成里都文件系统开始部分留出启动块;
Primary Superblock

超级块保存在16-31扇区;是一个描述文件系统的信息列表,包括以下内容:

The number of data blocks
The number of cylinder groups
The size of a data block and fragment
A description of the hardware, derived from the label
The name of the mount point
File system state flag: clean, stable, active, logging, or unknown


backup Superblock (备份超级块)
在文件系统生成时,柱面组从32sectors开始,这些复制的超级块可以在灾难后对Superblock的重要数据进行恢复;

cylinder group(柱面组)
每个文件系统在默认情况被分成若十个以16个柱面组成的柱面组;以改善磁盘访问;
文件经常通过把一个文件放到单一的柱面组,减少文件头到访问文件距离来优化磁盘性能.如果可能,文件系统经常把大的文件放到若干个柱面组中.


柱面组块(cylinder group block)

柱面组块是一个柱面组的列表,包含以下信息:

·inode的数量
·柱面组的数据块数
·目录的数量
·柱面组中自由块,自由inode与自由碎片
·自由块图
·自由inode图

ufs inode
inode中包含关于文件的如下信息:
·文件的类型与访问模式
·UID and GID
·文件的大小
·链接数
·文件最后被访问与修改时间,inode更改的时间
·文件使用的或分配给文件的数据块的总数
·两种类型的指针:直接指针与间接指针

提示: 用ls -l 查看文件详细信息
ls -i 查看inode 的详细信息

直接指针:
inode中有12个直接指针,每个指向8K的数据块,一共可指向96K数据块;

间接指针:
单间接指针:能指向2048个8K的数据块,可指向16M的数据块
双间接指针:包含单间接指针,最多可指向32G指针;
三倍间接指针:本来可以指向64TB的数据块,但由于UFS是32位寻址系统,所以最多只能指向1TB数据块;

数据块:

用于分配给UFS文件系统以存储文件和路径;数据块被分成8KB的逻辑块大小,进一步分可分到1KB的分片;
对于普通文件而言,数据块保存文件内容;对于路径而言,数据块存储inode的数据,和包含在路径中的文件名
对于没有存储文件,路径,间接指针的块,在柱面组map上被标记为自由块,这些map记录了磁道碎片来提高硬盘访问性能;


碎片(Fragmentation)

碎片是UFS文件系统有效地分配硬盘空间的一种方法;小于96KB的文件都是由fragmentation方法来存储;
一般地,数据块可以分成8个1024bytes的fragmentation,碎片是用来存储一个小8192bytes文件或小于8192bytes的文件部分;
大于96Kb的文件都是由数据块直接存储,不分再切分碎片;

如果两个文件同处于一个碎片,如果一个文件增长了,那么,UFS文件系统会把增长的文件放置到一个新数据块中,UFS文件不允许同一文件的碎片放置到不同的数据块中.


三、用newfs生成新的UFS文件系统:

newfs /dev/rdsk/c1t3d0s0

在newfs创建文件系统时,会留出1%-10%的空间给newfs给维护所用,这个参数就是minfree,可用命令fstyp查看minfree的值;在newfs创建文件系统时可以用 newfs -m %free 来指定;

fstyp -v /dev/rdsk/c0t0d0s0 | head -10

如果想修改此参数,可用以下命令:
tunefs -m 1 /dev/rdsk/c1t3d0s0


四、用fsck来检查UFS文件系统:
由于断电,内核软件错误,硬件错误,不正当关机所致的系统文件损坏或不一致,可用fsck来修复;

警告: 千成不要用fsck来检查已经mount上的目录,这会导致系统不可用或数据丢失;如果想fsck / /var /usr等目录的话,要转换到单用户模式;

提示 – The status of a file system's state flag determines whether the file
system needs to be scanned by the fsck command. When the state flag is
“clean,” “stable,” or “logging,” file system scans are not run.

fsck检查系统的不一致性:

超级块的一致性: involving such parameters as file system size, free block count, and free inode count.
柱面组块的一致性: 未分配的数据块的数量,未分配的inode的数;

inode 的一致性: the state of inode ,the link count, duplicate blocks, bad blocks, the inode size, and the block count for each inode.
任何未分配而有非0的引用计数的的inode会被链接到文件系统的lost+found目录中。

数据块的一致性:fsck不会检测普通的数据块,但它会查检目录数据块。在目录数据块中,fsck命令检测inode是否指向未分配的块,未分配而已标记为使用的块,已分配而标记为空闲的块与未链接到文件系统中的目录。这些目录被链接回文件系统的lost+found目录中。

lost+found路径: fsck命令就把那些已经分配,但还未被引用的目录和文件放到lost+found路径下;
如果没lost+found路径.,那么fsck创建,如果lost+found路径空间不够,那么fsck进行扩充.

非交互模式(Noninteractive Mode):在系统正常启动时,fsck处于Noninteractive Mode,我们通常称其为:preen, or silent mode.非交互模式下只进行较少的错误判断,修复,如果fsck发现较多的不一致时,会请请求root进行单用户模式进行交互式fsck.
交互模式: fsck会显示每个它遇到的问题,会建议修复,让root回答yes or no,

例如: fsck /dev/rdsk/c0t0d0s7 检测没有在/etc/vfstab的文件系统,

fsck /export/home 根据mount目录来检测.

fsck -o f,p /dev/rdsk/c0t0d0s5 -o参数与其它参数合用;f(force强迫)p(preen整理)

五、恢复文件系统:

可用fsck对文件系统进行恢复:

Allocated unreferenced file(分配的但引用的)
Inconsistent link count(不一致的链接数)
Free block count corruption(自由块坏掉)
Superblock corruption(超级块坏掉)


修复分配但未引用的错误:

如果fsck发现已经分配但未引用的文件时,会发出以下提示,如Y,则把文件指向lost+found目录;
** Phase 3 - Check Connectivity
UNREF FILE I=788 OWNER=root MODE=100644
SIZE=19994 MTIME=Jan 18 10:49 1999
RECONNECT? y

可以通过以下步骤来分析解决问题:

1。显示lost+found目录的内容
2。判断文件的类型 (file命令)
3。查看文件内容(ASCII文件用cat或more,二制文件用string)
4。如果文件是完整的,并且知其原始位置的,可以拷贝到原始位置;

调整链接数:

如果fsck发现在文件系统的inode的链接数与实际不一致时,会发出以下信息,让您判断是否调整:

** Phase 4 - Check Reference Counts
LINK COUNT DIR I=2 OWNER=root MODE=40755
SIZE=512 MTIME=Jan 18 15:59 1999 COUNT 4 SHOULD BE 3
ADJUST? y

在这个fsck过程中, you might also be asked to clear or remove a link.
BAD/DUP type I=200 OWNER=root MODE=40755
SIZE=512 MTIME=Mar 14 08:03 2002
CLEAR? y

修复空闲表:

如果fsck发现未分配的块数与超级块未分配块列表中不一致时,会发出是否以未分配的块数来修复列表内容:
** Phase 5 - Check Cyl groups
CG 0: BAD MAGIC NUMBER
FREE BLK COUNT(S) WRONG IN SUPERBLK
SALVAGE? y


用备份超级块:

超级块的坏掉会导致系统无法mount,系统会发出如下信息:

“Can't mount file_system_name”
or
“device_name is not this fstype”

每个文件系统在第32块都有一个备份块以供恢复超级块,如下:
# fsck -o b=32 /dev/rdsk/c1t3d0s0
如果第32块也属于坏掉的部分则没有办法从32块恢复,可用newfs -N来查看其它备份块,
newfs -N /dev/rdsk/c0t0d0s7
提示: 如果不加-N参数,则文件系统会被重写;
用newfs -N查看到其它备份块,用此来恢复数据:
fsck -o b=535952 /dev/rdsk/c0t0d0s7

六、管理文件系统应用

df – Displays the number of free disk blocks
du – Summarizes disk use
quot – Summarizes file system ownership



df 显示磁盘空间已用,可用,总共

-a Reports on all file systems, including those with entrIEs in
the /etc/mnttab file for which the ignore option is set
-b Prints the total number of Kbytes free
-e Prints only the number of files free
-k Displays disk allocation in Kbytes
-h Acts like the -k option, except that sizes are in a more
readable format, for example, 14K, 234M, 2.7G, or 3.0T
-l Reports on local file systems only


Fields for the df -k Command
Field Definition
Filesystem The mounted file system
kbytes The size of the file system in Kbytes (1024 bytes)
used The number of Kbytes used
avail The number of Kbytes available
capacity The percentage of file system capacity used
Mounted on The mount point

提示: 已用的和可用的,总共的可用的系统空间是除了minfree空间之外的部分.
如果系统文件用满后,普通用户会收到“File System Full”,对root用户而言是可用的.

用du命令显示磁盘的块数(512kb组成)

du -options Directory

-k 用kb显示
-s 显示目录概要
-a 全部显示

用quot命令显示有多少空间正在被那些户所用:

quot -options filesystem

-a Reports on all mounted file systems
-f Includes the number of files

用smc&打管理界面

标签: