Sie sind auf Seite 1von 52

Linux 操作 系统

文件系统

周炯
上海艾基信 息技术有限 公司

Acegene IT Co. Ltd. 1


内容提 要
• 1. Linux 文件系统概况
– 1.1 Linux 文件系统的结构
– 1.2 Linux 文件系统的类型
– 1.2 Linux 文件系统的构成
• 2. Linux 文件系统管理
– 2.1 建立文件系统 fdisk mke2fs
mkswap
– 2.2 挂装和卸载硬盘分区
– 2.3 使用 /etc/fstab 文件
– 2.4 使用 fsck 工具程序进行文件系统恢复
– 2.5 文件系统配额管理
Acegene IT Co. Ltd. 2
1. Linux—— 文件系统
• Linux 是建立在文件系统的基础上的。
• 文件系统是对磁盘进行组织,在扇区和磁道组成
的物理基础上提供抽象操作层面的机制。
• 磁盘管理要处理以下任务
– 建立硬盘分区、
– 建立文件系统、
– 引导系统时自动挂装文件系统、
– 以及发生系统崩溃之后如何对它们进行恢复等等。
– 挂装网络文件系统、
– 硬盘空间配额管理、
– 自动挂装( automounter )子系统等等。

Acegene IT Co. Ltd. 3


1.1 文件系统 的树状结构

/bin /sbin /usr /etc /var /lib

/bin /etc /spoo /ad

Acegene IT Co. Ltd. 4


1.1 Linux 文件系 统介绍
• ( 1 ) /bin :该目录用于存放用户命令。 目录 /usr/bin
中也存放了一些用户命令。
• ( 2 ) /sbin :该目录用于存放许多系统命令,例如
shutdown 。目录 /usr/bin 中也包括了许多系统命令。
• ( 3 ) /root :该目录用于存放根用户(超级用户)的主
目录。
• ( 4 ) /mnt :该目录主要用于存放系统引导后被挂载的
文件系统的挂载点。
• ( 5 ) /boot :该目录用于存放内核和其它系统启动时使
用的文件。
• ( 6 ) /lost+found :该目录被 fsck 用于存放零散文件
(没有名称的文件)。
• ( 7 ) /lib :该目录用于存放被 /bin 和 /sbin 中的程
序使用的库文件。 目录 /usr/bin 中含有更多库文件。
• ( 8 ) /dev :该目录用于存放设备文件。
Acegene IT Co. Ltd. 5
1.1 Linux 文件系 统介绍
• ( 9 ) /etc :该目录用于存放许多配置文件和目录。
• ( 10 ) /var :该目录用于存放系统中不断扩充、变化的
文件,例如日志文件和锁定文件。
• ( 11 ) /usr :该目录用于存放与系统用户直接有关的文
件和目录。
• ( 12 ) /proc :该目录是一个虚拟的文件系统(不是实
际贮存在磁盘上的),它包括被某些程序使用的系统信息

• ( 13 ) /initrd :该目录用于存放在计算机启动时挂载
initrd.img 映像文件的目录以及载入所需的设备模块。
• ( 14 ) /tmp :该目录用于存放用户程序运行时所产生
或保存的一些临时文件。 /tmp 有全局读写权。
• ( 15 ) /home :该目录用于存放用户主目录的位置。

Acegene IT Co. Ltd. 6


1.2 Linux 文件类 型
普通文件
目录文件
特殊文件
• 文件链接

Acegene IT Co. Ltd. 7


1.2 文件权限
• 每个文件都被一个特定用户所拥有,但同
时文件还被系统指定的用户组所拥有。每
个用户在被建立用户目录时都至少被放在
一个用户组中,而且,系统管理员还可以
将用户编进多个用户组里。用户组通常是
根据使用计算机的用户的种类来划分的。
– 对文件和目录来说,每个文件和目录都有一组
权限标志和它们结合在一起。如果用 ls 命令加
-l 开关可能会看到目录列表

Acegene IT Co. Ltd. 8


1.3 文件 系统的构成
• Linux 的缺省文件系统 ext2 的全部抽象操
作层面的构成和管理操作。
• i- 结点
• 超级块

Acegene IT Co. Ltd. 9


1.3 文件 系统的构成 : i- 结点
• UNIX 文件系统最基础的材料是 i- 结点 (i-node)
• i- 结点是一个包含着指针的控制结构,其中的指
针要么指向其他 i- 结点,要么指向数据块。
• i - 结点中的控制信息包括文件的所有者、访问权
限、长度、最后一次存取时间、建立时间、用户
分组 GID 号等等
– /usr/src/linux/include/linux/ext2-fs.h 文件中可以
查到完整的内核数据结构
– i - 结点中没有保存的东西就是文件名。
• 子目录本身就是文件的一种特殊形式。
– 这就意味着每一个子目录都有一个 i- 结点,
– i- 结点指向的数据块中包含子目录所有文件的信息资料
。 Acegene IT Co. Ltd. 10
1.3 文件 系统的构成 : i- 结点
• ext2 文件系统中 i - 结点和数据块的组织结构。

Acegene IT Co. Ltd. 11


1.3 文件 系统的构成 : 超级块
• 从磁盘上读出来的第一块信息就是它的超级块(
superblock )。
• 这个小数据结构中保存着好几个关键的数据,包
括磁盘的几何尺寸、可用空间容量、以及最重要
的—第一个 i- 结点的位置。
• 超级块数据结构被拷贝复制了许多份,散布保存
在整个磁盘上,以此对付第一个超级块被损坏事
件的发生。
– 在 Linux 的 ext2 文件系统中,在每一组数据块的后面
就安排有一个超级块。每个数据块组包含着 i - 结点和
数据。每个组有 8192 个块,这样第一个备份超级块
就在 8193 ,第二个在 16385 ,依次类推。

Acegene IT Co. Ltd. 12


2 管理文 件系统
• 2.1 建立文件系统 fdisk mke2fs
mkswap
• 2.2 挂装和卸载硬盘分区
• 2.3 使用 /etc/fstab 文件
• 2.4 使用 fsck 工具程序进行文件系统恢复
• 2.5 文件系统配额管理

Acegene IT Co. Ltd. 13


2.1 建立 文件系统
• Block Device Naming
– Most block devices are located in /dev
– SCSI disks
• Disk or logical volume: sd[a-iv]
• Primary partitions: sda[1-4]
• Logical partitions: sda[5-15]
– IDE disks
• Disk or logical volume: hd[a-t]
• Primary partitions: hda[1-4]
• Logical partitions: hda[5-31]

Acegene IT Co. Ltd. 14


2.1 建立 文件系统分 区
• 检查新设备,可以使用下列命令
– fdisk -l
– /proc/diskstats > dmesg
• fdisk 命令对硬盘做分区
– # fdisk [device]
• fdisk 里的常用命令
– a toggle a bootable flag
– d delete a partition
– m print this menu
– n add a new partition
– p print the partition table
– q quit without saving changes
– t change a partition's system id
• 82 Linux Swap
• 83 Linux
– w write table to disk and exit
Acegene IT Co. Ltd. 15
Creating Extended Partitions

# /sbin/fdisk /dev/sde
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-1020, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-1020,
default 1020): 1020

Command (m for help): w


The partition table has been altered!

Acegene IT Co. Ltd. 16


Creating Logical Partitions
# /sbin/fdisk /dev/sde
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (1-1020, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1020, default
1020): +5m

Command (m for help): p


Disk /dev/sde: 232 heads, 62 sectors, 1020 cylinders
Units = cylinders of 14384 * 512 bytes

Device Boot Start End Blocks Id System


/dev/sde1 1 1020 7335809 5 Extended
/dev/sde5 1 1 7130 83 Linux

Acegene IT Co. Ltd. 17


Listing Partitions
# cat /proc/partitions
major minor #blocks name rio rmerge …
8 0 8281507 sda …
8 1 8281476 sda1 …
8 16 4192965 sdb …
8 17 2048256 sdb1 …
8 18 2048287 sdb2 …
8 32 9430155 sdc …
8 33 9430123 sdc1 …
8 48 9430155 sdd …
8 49 4715046 sdd1 …
8 50 4715077 sdd2 …
22 0 252290 hdc …

Acegene IT Co. Ltd. 18


2.1 建立 文件系统
• /sbin/mkfs 格式化分区
– –t 指定文件系统类型
–如:
• Ext2: # mkfs –t ext2 /dev/sdb1
• Ext3: # mkfs –j /dev/sdb1
– 或使用 /sbin/mkfs.<fstype> 代替
• mke2fs 建立 ext2/3 文件系统;
# mke2fs /dev/hdb3
# mke2fs -j ext3 /dev/hdb3

Acegene IT Co. Ltd. 19


ext2 vs. ext3
• ext2 used to be the most common
Linux filesystem
• ext3 is based on ext2
– Same on-disk structure
– ext2 can be converted to ext3
– ext3 can be mounted as an ext2 file
system
• ext3 is a journaling filesystem
– Preserves data integrity better than ext2
– Faster and safer fsck after system crash
Swap 分区配置
• mkswap 建立 swap 文件系统。
– 使用 mkswap 命令设置 swap 空间也同样简
明。唯一的参数是在其上建立 swap 空间的分
区名称。如果想在 /dev/hdb2 上建立 swap
空间,需要输入下面的命令:
• # mkswap /dev/hdb2
• 物理内存的 2 倍,或大于 2 GB
• 获得 swap 分区信息 :
# /sbin/swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2096440 0 -1
/dev/sda6 partition 2096440 0 -2

Acegene IT Co. Ltd. 21


/proc Filesystem
• /proc is a virtual file system
• Provides an instantaneous view of
the operation of the system
– /proc/meminfo, /proc/mounts, /proc/partitions
– Can be viewed with cat, more, less
• Can be used to configure kernel
parameters
– Settable parameters are below /proc/sys
– Can be set with echo or via sysctl

Acegene IT Co. Ltd. 22


shmfs
• Mount tmpfs on /dev/shm via fstab
• Option “size=8g” means 8GB
• Option “size=??” can be larger than
physical RAM
• Required by Oracle for VLM mode
– Only used for buffer cache
– Never used in non-VLM mode

Acegene IT Co. Ltd. 23


裸设备 Raw Devices
• I/O directly to partitions instead of a filesystem
• Eliminates copying to/from filesystem cache
• Each raw device is a character device
– Character device major number 162
• Requires more experienced administration
• Devices will be either in /dev or /dev/raw
• Device names are raw1 – 255 by convention
– May need to manually create raw129 – raw255:
• e.g., mknod /dev/raw/raw129 c 162 129
• Minor #0 is special and can’t be used for I/O
– Implies a limit of 255 raw devices
• DB files should be symlinks to /dev/raw/raw*
Write

Read
Process Disk file
Acegene IT Co. Ltd. 24
创建裸 设备
• Create partitions of type “Linux” (type
id=83)
• Use /sbin/raw to bind raw device with a
partition
• Examples:
– # /sbin/raw /dev/raw/raw1 /dev/sdc1
– # /sbin/raw /dev/raw/raw1 8 33
• Give oracle user ownership of raw device:
– # chown oracle:dba /dev/raw/raw1
• Bindings are not persistent across reboot
– Use /etc/sysconfig/rawdevices

Acegene IT Co. Ltd. 25


System V Shared Memory
• Used by Oracle for the SGA
– May have multiple segments if shmmax is low
– Normally all segments deleted at shutdown
– If instance crashes, segments may hang
around
• To view existing segments:
– /usr/bin/ipcs
• To manually remove a segment:
– /usr/bin/ipcrm shm <shm_id>

Acegene IT Co. Ltd. 26


Oracle Clustered Filesystem
• OCFS delivers raw-like performance with
tremendous advantages in management
and usability
– All database related files reside on a clustered
filesystem
– Visible to all nodes
• Open source project sponsored by Oracle
• Supports asynchronous I/O as of v1.0.9
• Free to use
• Get fix for bug #2883583
– Allows cp, dd & tar of open database files
needed for hot backup
Acegene IT Co. Ltd. 27
2.2 挂装 和卸载硬盘 分区
• 文件系统的管理工作是从根目录 / 开始的。
• 包含着操作系统内核及核心目录结构的分区是在
系统引导时挂装的,这个分区上必须存放有使系
统进入单用户模式所必须的全部工具程序和配置
文件,其上许多子目录都是空的。
• 当挂装上一个新子目录的时候, mount 命令会
把原来挂装在这个位置的全部内容隐藏起来。
– 这样在我们的 /usr 例子里,如果在挂装 /dev/hda3
分区之前根分区的 /usr 子目录中确实保存有文件,挂
装后那些文件就看不见了(那些文件并没有被删除,
一旦 /dev/hda3 分区被卸载,原来 /usr 中的文件就
又出现了)

Acegene IT Co. Ltd. 28


2.2 使用 mount 命令
• One-time Mounts
mount [options] device directory
• 用于 mount 选项:
– -o 命令的参数如下所示
• 下面的 mount 命令把 /dev/hda3 分区以只读属性挂装到
/usr 子目录上:
[ root@ford /root ]#mount -o ro /dev/hda3 /usr
– -a 把 /etc/fstab 文件(本小节后面介绍)中列出的
文件系统都挂装上
– -t fstype 定义挂装的文件系统类型。
• mount 命令通常可以自己检测出这类信息,例外 : OCFS
– -o options 定义作用于挂装过程的选项。它们通常是
一些与文件系统类型有关的选项(挂装网络文件系统
的选项不能够用来挂装本地文件系统)
/bin/mount /dev/sdb1 /oracle
Acegene IT Co. Ltd. 29
2.2 使用 mount 命令
• 挂载光盘
mount –t iso9660 /dev/cdrom /dir

• 挂载 iso 文件 (Loopback Mounts)


mount -o loop,ro [iso file] /[dir]
mount –t iso9660 –o loop /img/cd_1.iso /mnt/cdrom

• 挂载 samba 文件
mount -t smbfs -o username=usr,password=pwd //host/folder /[dir]
Etc/fstab:
//host/folder /dir smbfs username=user,password=pwd 1 2
Mount dir

• 挂载 NFS 文件
mount [host]:/[dir] /[dir]

Acegene IT Co. Ltd. 30


2.2 使用 mount 命令
• mount -o 命令的参数说明
– ro 以只读属性挂装该分区
– rw 以读 - 写属性挂装该分区(缺省值)
– exec 允许二进制代码的执行(缺省值)
– noatime 禁止刷新 i- 结点上的存取时间。用于存取时
间不重要的分区(比如新闻队列),可以提高性能
– noauto 如果使用了 -a 参数,禁止这个分区的自动挂
装(只作用于 /etc/fstab 文件)
– nosuid 禁止 setuid 程序的应用程序对此挂装分区置

– sb=n 告诉 mount 命令对一个 ext2 文件系统使用第
n 个数据块作为超级块

Acegene IT Co. Ltd. 31


2.2 卸载 文件系统
• 如果想卸载一个文件系统,使用 umount
命令。
– 下面是这个命令的格式:
• umount [-f] directory
– 其中的 directory 是准备卸载的子目录名。如
下所示:
• [ root@test /root ]#umount /usr
– 把挂装在 /usr 子目录位置上的分区卸载下来。

Acegene IT Co. Ltd. 32


2.2 卸载 文件系统
• umount 命令不足之处:如果文件系统正在使用
中(也就是说有人在那个分区上打开了文件),
就无法把这个文件系统卸载下来。有三种方法可
以用来解决这个问题:
– 使用 lsof 程序或者 fuser 程序检查有哪些进程打开了
文件,终止那些进程的运行或者让进程的所有者停止
操作。如果选择终止那些进程的运行,一定要明白自
己在做些什么。
– umount -f 参数强制执行卸载操作。任何在这个分区
上打开的进程都将被挂起来,可能会造成数据丢失。
– 最安全和适当的办法是把系统调整为单用户模式,然
后再卸载这个文件系统。在现实生活里,你可能不会
总有这个奢侈之举。
Acegene IT Co. Ltd. 33
2.3 /etc/fstab 文件
• /etc/fstab 是一个 mount 命令可以利用的配置
文件。
• 这个文件包含着一个系统中全部已知硬盘分区的
清单。在引导过程中,这个清单被读出,其中包
含的各个分区都被自动挂装到系统上。
• 下面是 /etc/fstab 文件中数据项的格式,下表定
义了 /etc/fstab 数据项的各组成元素。
/dev/device /dir/to/mount fstype parameters fs_freq fs_passno

• 挂载命令 :
– mount /oracle
– mount /dev/sdb1

Acegene IT Co. Ltd. 34


2.3 /etc/fstab 文件
• /etc/fstab 文件的数据项说明
– /dev/device 将被挂装的分区
• 比如 dev/hda3
– /dir/to/mount: 分区挂装到其上的子目录(
• 比如 /usr )
– fstype: 文件系统的类型(比如 ext2/ext3 )
– parameters: mount 命令 -o 参数的附加参数
– mount option
• defaults 缺省值
• noauto 防止启动时自动加载
– fs_freq: 数值类型,告诉 dump 命令备份这个文件系
统的频率
– fs_passno: 数值类型,告诉 fsck 程序在引导时确定
文件系统的检查顺序(请注意所有文件系统在挂装之
前都要被检查)

Acegene IT Co. Ltd. 35


2.3 /etc/fstab 文件
• swap 分区是虚拟内存驻留的地方。
– Linux 的虚拟内存可以保存在根分区以外的另一个分区
上。
– swap 分区遵守的规则不同于普通的文件系统,所以这
样做可以提高性能。
– 因为这个分区不需要备份或者在机器引导时由 fsck 程
序检查,所以最后的两个参数都设置为 0
– 请注意 swap 还可以被保存为一个普通的磁盘文件。
详细资料请查阅 mkswap 命令的使用手册页 .

Acegene IT Co. Ltd. 36


2.3 /etc/fstab 文件
• /proc 文件系统
– 和 /proc 联系在一起的 none 数据项用来定义 /proc 文件系统。
这是一个特殊的文件系统,它提供了一个到内核参数的接口,通
过这个接口可以模拟任何其他的文件系统。
– 虽然它看起来好像是保存在磁盘上的文件,其实它不是的—所有
文件分别代表内核中的某些东西。
– 最引人注目的是 /dev/kcore ,它实际上就是抽取成文件的系统
内存映像。不熟悉 /proc 文件系统的人经常把它误认为是一个没
用的大文件,错误地删除了它,从而引起系统发生许多明显的故
障。除非你确实知道自己在干什么,否则最好还是把 /proc 中的
文件留在那里别动。
• /dev/pts 文件系统
– 数据项 /dev/pts ,是一个新的机制,用来完善网络终端支持
( ptys )的实现。
– 如果你打算让你的主机支持通过 rsh 、 telnet 、 rlogin 或者 ssh
的远程登录,这个数据项就是必不可少的。

Acegene IT Co. Ltd. 37


2.4 使用 fsck 程序
• fsck 工具程序的名字是 File System ChecK
(文件系统检查)的缩写,它被用来诊断和修复
在日常操作中可能已经损坏的文件系统。
– 系统发生崩溃的时候,一般都来不及把内部缓冲区中
的全部数据转存到磁盘上,所以类似的修复通常是十
分必要的。
• 如果确实发现某个文件系统的操作行为与其正常
情况不一样( log 日志是这类情况的最佳提示)
,你可能会在一个运转着的系统上运行 fsck 程序

• 唯一的不足之处是:为了执行这个程序,需要诊
断的文件系统必须先卸载下来。如果你选择了这
个方法,完成操作后别忘记把文件系统再挂装上
去。
Acegene IT Co. Ltd. 38
2.4 使用 fsck 程序
• e2fsck
– 注意 fsck 并不是 ext2 文件系统修复工具合适的名字
;它实际上只是 e2fsck 的一个别名。 fsck 尝试确定
哪一个文件系统需要修复,然后再调用适当的修复工
具程序,把我们传递给 fsck 的参数都传递过去。对
ext2 文件系统来说,真正的工具叫做 e2fsck 。
– 当发生系统崩溃的时候,与其依靠其他应用程序替你
调用 e2fsck ,还不如自己直接来调用它。

Acegene IT Co. Ltd. 39


2.4 e2fsck 的可用参数
• 如果想在 /dev/hda3 文件系统上运行
e2fsck ,需要输入下面的命令:
[root@test /root]#e2fsck /dev/hda3
• 强制进行文件系统检查并对出现的全部提
示都回答“ Ye s” ,需要输入下面的命令:
[ root@test ]#e2fsck -f -y /dev/hda3

Acegene IT Co. Ltd. 40


2.4 e2fsck 的可用参数
• e2fsck 的参数说明
– -b superblock 让 e2fsck 读取分区信息的超级块编
号。大多数情况下, e2fsck 可以在第一个数据块中
找到它,但是如果那个块损坏了,就需要指定另外一
个号码。超级块每隔 8192 个出现一次,因此第二个
超级块在 8193 、然后是 16385 等等
– -c 在运行 e2fsck 之前先执行 badblocks 程序。它对
整个硬盘按块查找并校验该块的完整性。这是检查硬
盘最彻底的方法,但是花的时间比较多
– -f 强制进行检查,即使认为文件系统已经没有问题了
– -y 告诉 e2fsck 对 e2fsck 提示的问题全部自动回答
为“ Ye s”

Acegene IT Co. Ltd. 41


2.4 lost+found 子目 录
• 另外一个比较少见的情况是 e2fsck 找到了一些文件碎片
,但是没有办法把它们恢复到原始文件中去。这种情况下
,它会把这些碎片放到该分区的 lost+found 子目录里。
这个子目录就在该分区挂装的位置,因此如果分区
/dev/hda3 被挂装在子目录 /usr 上,那么子目录
/usr/lost+found 就对应于分区 /dev/hda3 。
• 任何东西都可以放到 lost+found 子目录里—文件碎片、
子目录、甚至一些特殊文件。如果在这里找到了普通文件
,可以看出它的所有者,你可以与该所有者联系看他们是
否还需要这些文件(他们通常都不需要)。如果在
lost+found 中遇到了子目录,与其试图从 lost+found
中重新建立它的结构,还不如从最近的备份中来恢复。
• lost+found 子目录至少可以告诉你有一些东西失去了定
位。但是,这种错误实在太少见了。

Acegene IT Co. Ltd. 42


2.5 硬盘 空间配额的 管理
• 实现配额管理的准备工作
• 设置配额
• 管理配额

Acegene IT Co. Ltd. 43


2.5 实现 配额管理的 准备工作
• 第一步是配置系统使用硬盘配额的一次性
设置工作,通过这个设置把实行配额管理
所必须的软件安排就位,以后每次开机时
就进入预备状态,
• 第二步是在 /etc/fstab 文件中进行必要的
设置,并在每个准备实行硬盘配额管理的
分区里加上必须的文件。第二步的工作需
要对每一个准备实行硬盘配额管理的分区
分别进行设置操作。

Acegene IT Co. Ltd. 44


2.5 设置 引导过程
• 大多数 Linux 发行版本(包括 RedHat )都已经把对配
额管理的支持作为标准安装的一个部分预先设置好了。因
此不必再对引导过程进行什么改动了。
• 如果想启动配额管理程序,在用户的引导脚本程序末尾
( rc.local 是个不错的选择)加上下面这几行语句:

Acegene IT Co. Ltd. 45


2.5 配置 各个分区
• 对每个准备实行硬盘配额管理的分区,需要进行三项设置
: usrquota 参数、 grpquota 参数和配额数据库。
– •usrquota 参数 编辑 /etc/fstab 文件,在每一个需要配额的硬
盘分区的挂装参数里加上 usrquota 参数。举例来说,假设
/dev/hda5 挂装到 /home 子目录,现在准备对这个子目录设置
用户配额, /etc/fstab 文件中的对应数据项应该修改为如下所示
的样子:
/dev/hda5 /home ext2 defaults,usrquota 11
– •grpquota 参数 需要用户分组配额支持的硬盘分区对应的
/etc/fstab 文件中的数据项应该有 grpquota 参数,与刚才介绍
的 usrquota 参数一样(请注意同时设置这两个参数是可以的)

– • 配额数据库建立相应的数据库文件保存用户和用户分组配额信
息。这些文件是空的,它们被放置在每一个实行配额的硬盘分区
的根目录下;只有根用户才能读取它们的内容;而且必须给它们
起名为 quota.user 和 quota.group 。

Acegene IT Co. Ltd. 46


2.5 设置 配额
• 无论是对用户还是对用户分组,建立、修改和删
除配额的操作都是由 edquota 命令来完成的。首
先学习几个术语:
– 软限制 : 这个限制作用于用户或者用户分组。如果用
户的账户超过了软限制,就开始进入限制期,也就是
这个账户在超过软限制后还能存在多长的时间。在这
个期间,用户会收到警告他们的账户超标的消息。
– 硬限制 : 这个限制是由操作系统实行的,不允许超过。
试图在硬限制以外进行数据写操作会被拒绝。
– 限制期 ( 时间限制 ): 当用户的账户超过软限制的时候
,时钟开始计时。在限制期结束之前,用户是无法再
访问这个账户的。这个限制期的长度因系统而异,通
常会是一个星期。如果不想让这个账户被禁用,用户
需要删除或者压缩文件,使自己的硬盘空间消耗量降
低到软限制以下。
Acegene IT Co. Ltd. 47
2.5 edquota 的命令 行参数
• 当管理单个用户的配额时, edquota 命令只有三个参数
,如下所示:
#edquota [option] [user]
– -u login 为参数定义的用户设置配额数据
#edquota -u heidi
– -t 为硬盘分区设置限制期。把它与 -u 或者 -g 参数联合使用可以
分别为用户或者用户分组全部设置好限制期。请注意:如果用户 /
用户分组在同一个分区上,它们就不能有不同的限制期
– -g group 为参数定义的用户分组设置配额数据
– -p login 允许把一个用户的配额资料(用户名为 login )克隆给
另外一个用户。这个参数必须与 - u 参数合用
# edquota -p jyom ebosze
• 临时文件 .
– edquota 命令编辑这些信息时会给其临时文件起一个唯一的名字

– 保存这个临时文件—不要把这些信息写到 quota.user 或者
quota.group 文件上! edquota 命令会把这些信息自动调整到
这两个文件里去。 Acegene IT Co. Ltd. 48
2.5 edquota 命令示 范
• 各项限制的值都是 0 ,表示此时在 heidi 的账户
上还没有设置任何配额。请注意:对 i- 结点和数
据块都可以进行限制。别忘了 Linux 中的数据块
的长度是 1K 字节,而 i- 结点则是保存文件所必
须的控制信息。每个文件一般只需要几个 i- 结点
,文件长度加大时再增加。准备把 heidi 的数据
块软限制设置为 5000 、数据块硬限制设置为
6000 、 i- 结点软限制设置为 2500 、 i- 结点硬
限制设置为 3000 。下面就是输入完成后文件的
样子:

Acegene IT Co. Ltd. 49


2.5 管理 配额
• 激活配额功能并正常运行以后,另有三个可以帮助我们管理硬盘配额
的工具程序,它们是 quotacheck 、 repquota 和 quota 。
– quotacheck 命令检查配额数据库的完整性。
• -v 打开报告模式。再检查配额数据库的时候就会看到许多有用又有意思的信

• -u uid 检查 UID 是 uid 的用户的配额情况
• -g gid 检查 GID 是 gid 的用户的配额情况
• -a 检查所有设置了配额的文件系统(以 /etc/fstab 文件中的设置为准)
• -R 与 -a 参数合用。检查所有设置了配额的硬盘分区,但是不包括根分区
– repquota 命令用来生成系统上配额使用情况的统计报告。
• -a 统计所有文件系统的配额使用情况
• -v 统计所有配额的使用情况,没有用到的也要统计
• -g 以用户分组为单位统计配额使用情况
• -u 以用户为单位统计配额使用情况
– quota 命令是供用户使用的。这个命令可以让用户查看分配给自己的配
额。
• -g 给出用户所在分组的配额使用情况
• -u 给出该用户的配额使用情况(缺省操作)
• -v 给出支持配额的所有文件系统里与该用户有关的配额使用情况
• -q 如果该用户已经超标,显示一个消息给他

Acegene IT Co. Ltd. 50


Q&
A
QUESTIONS
ANSWERS
练习
• 增加新硬盘 10G
– 用 fdisk -l 检查新硬盘 假设为 /dev/sdg
• 创建三个分区 fdisk
– 类型 swap 82 /dev/sdg1 100M
– 类型 Linux 83 /dev/sdg2 500M
– 类型 Linux 83 /dev/sdg3 9G
• 格式 swap 分区
– mkswap /dev/sdg1
• 创建裸设备
– raw /dev/raw/raw1 /dev/sdg2
– chown -R oracle.oinstall /dev/rawctl
– chmod 777 /dev/rawctl
– chown -R oracle.oinstall /dev/raw/*
– chmod 777 /dev/raw/*
• 普通分区 ext3
– 格式化 mke2fs -j ext3 /dev/sdg3
– 加载到 /u01 目录 mount
• 通过配置 /etc/fstab 加载该文件系统
– 卸载该文件系统
• 将一个 iso 文件作为光驱挂载,配置在 /etc/fstab 中
– # mount -t iso9660 -o loop,ro /home/client.iso /mnt/cdrom
• ckfs 检查文件系统 /u01

Acegene IT Co. Ltd. 52

Das könnte Ihnen auch gefallen