文件系统及磁盘管理

文件系统:Filesystem
Windows:
 FAT32 --> EFAT NTFS
 
Linux: ext2 ext3 ext4
 xfs reiserfs jfs iso9660 swap GFS2 OCFS NFS SMBFS VFAT NTFS

VFS: Virtual FileSystem
Linux如何识别磁盘设备:
 /dev/
 
IDE(ATA): hd
SATA: sd
SCSI: sd
USB: sd
SAS: sd
a,b,c,d
/dev/hda
/dev/sda
/dev/sda5
查看分区:fdisk -l
创建分区:fdisk /dev/sd*
m 获得帮助 p 显示分区 n 创建新的分区d 删除分区
w保存修改并退出 q 不保存退出
partprobe
备份分区:sfdisk
如:sfdisk -d /dev/sdb > /root/sdb.part.bak
格式化:(高级格式化)
# mkfs -t ext2 /dev/sdb1 -L label
  e2label /dev/sdb1: 显示卷标
# mke2fs  /dev/sdb2
 -j
 -L
 -b {1024|2048|4096}
 -c
 -i
 -N
 -m
mount [-t fstype] [options] DEV MOUNT_POINT
 -a
 -n 挂载时不更新/etc/mtab文件
 -r 只读挂载
 -w 读写方式挂载
 -L label      mount DEV MOUNT_POINT,  mount -L label MOUNT_POINT
 -U uuid
 -o 指定挂载选项 
挂载本地 -o loop   
# umount DEV
# umount mount_point
fuser -v /mount_point 查看谁在挂载
fuser -km /mount_point 踢出用户
 
 
磁盘配额是管理员为普通用户设置的使用磁盘的限制,每个用户只能使用有限的磁盘空间。通过磁盘配额的设置,管理员可以很清楚的了解到每个用户的磁盘使用情况。同时,也避免了某些用户因为存储垃圾文件浪费磁盘空间导致其他其他用户无法正常工作。
 
    在linux中我们只能使用超级管理员root用户进行磁盘配额的设置,并且磁盘配额是基于文件系统的,也就是必须在文件系统上配置磁盘配额。我们可以对用户或组的所能使用的空间大小或是创建的文件个数进行限制。限制可以分为两种:
    1,软限制:当用户或组所分配的空间占满以后,在一定的宽限期内可以超出容量但是系统会给处警告,并在宽限期过后强制收回空间。
    2,硬限制:当用户或组所分配的空间占满以后,就不能在存储数据。
 
启用磁盘配额
1为要启用磁盘配额的文件系统设定挂载选项
假如新建分区为/dev/sda3.格式化为ext3文件系统,挂载到/myquota目录
fdisk /dev/sda 去新建分区/dev/sda3这里不再给出步骤
mke2fs -j /dev/sda3 格式化为ext3文件系统
mkdir /myquota 创建目录
假设给student用户设置磁盘配额,把.myquota目录属主属组改为student用户
chown student:student /myquota
然后编辑/etc/fstab vi /etc/fstab
添加如下行:
/dev/sda3      /myquota      ext3    defaults,usrquota 0 0 即把/dev/sda3分区挂载到/myquota目录下,并且启用用户磁盘配额。如果想要启用组磁盘配额的话,则在usrquota后添加grpquota即可。
挂载/etc/fstab,让/etc/fstab中刚刚添加的内容生效
mount -a
如果是对/etc/fstab中已经存在的文件系统设置磁盘配额则还需要执行命令
 mount -o remount,usrquota,grpquota  /myquota 启用用户和组磁盘配额
 
2生成磁盘配额数据库
使用命令 quotacheck -cmu  /myquota  之后就会在/myquota目录下生成用户的数据库文件aquota,user.
另外还可以使用一些选项
-c 创建新的数据库文件
-m 不将此文件系统挂载为只读
-u 设定用户配额数据库  
-g 设定组配额数据库
例如要启用组磁盘配额则用命令quotacheck -cmug  /myquota 
 
3启用文件系统上磁盘配额
使用命令quotaon  /myquota 则启用
                quotaoff  /myquota 则关闭
                quotaon  -a 启用所有的磁盘配额
                quotaoff  -a 关闭所有的磁盘配额  
 
4设定用户磁盘配额
edquota  -u student 对student用户设定磁盘配额  ,打开之后有如下内容
Filesystem        blocks         soft      hard        inodes      soft     hard
这几项的表示:
Filesystem 文件系统 对于本次设置则是/dev/sda3
blocks 已经使用的块个数 单位为1K
soft 块个数软限制,如果是0则表示禁用
hard 块个数硬限制,如果是0则表示禁用
inodes 已经创建的文件个数,*表示已经超出软限制
soft 创建的文件个数的软限制,0表示禁用
hard 创建的文件个数的硬限制,0表示禁用
 
edquota还有另外一些选项
-g 限定组磁盘配额 如 edquota  -g student
-p 复制一个用户或组的磁盘配额到另一个用户或组的磁盘配额,使其限制配额的限制相同。 如 edquota -p redhat student 把redhat用户的磁盘配额设定复制给student用户
-t 设定宽限期,默认为7天。可用days,weeks,months等
 
另外还有一个非交互式的命令setquota
-t 设定宽限
-a 对在/etc/fstab下的所有文件系统都有效
setquota的使用 如 setquota student 10240 40960 0 0 /myquota 表示student用户的磁盘配额软限制为10M 硬限制为40M
 
使用quota student 可以查看student的磁盘配额情况
repquota 显示使用磁盘配额的文件系统的所有相关用户的信息
如; repquota /myquota
 
warnquota 可以向超出配额的所有用户发出邮件进行警告
 
永久关闭磁盘配额
1删除/etc/fstab中编辑的内容
2删除数据库中的内容
3quotaoff
再使用quota则会立即生效