文件系统的维护
1.ext2/ext3文件系统的优化与高级特性
优化ext2/ext3文件系统
在格式化的时候创建小的数据块(存储单元)
[root@localhost root]# mkfs.ext3 -b 1024 /dev/sda2
格式化系统为最小存储单元为1024B=1k,1024可以改为2048,4096两种
[root@localhost root]# mkfs.ext3 -b 1024 /dev/sdb1
[root@localhost root]# mkfs.ext3 -b 4096 /dev/sdb4
[root@localhost root]# mount /dev/sdb1 /mnt/d1
[root@localhost root]# mount /dev/sdb4 /mnt/d2
[root@localhost root]# echo "h1" > /mnt/d1/test
[root@localhost root]# echo "h1" > /mnt/d2/test
显示/mnt/d1/test,/mnt/d2/test的信息:
[root@localhost root]# ls -lh /mnt/d[12]/test
显示两个目录的大小:
[root@localhost root]# du -sh /mnt/d[12]
[root@localhost root]# mkdir /mnt/d1/dir
[root@localhost root]# mkdir /mnt/d2/dir
分别写入文件:
[root@localhost root]# echo "h1" > /mnt/d1/dir/test
[root@localhost root]# echo "h1" > /mnt/d2/dir/test
[root@localhost root]# ls -lh /mnt/d[12]
[root@localhost root]# du -sh /mnt/d[12]
[root@localhost root]# mkfs.ext3 -b 4096 -i 4096 /dev/sdb1 //每个节点一个Block
[root@localhost root]# mkfs.ext3 -b 4096 -i 8192 /dev/sdb1 //每个节点两个Block
检查Linux文件系统的属性:
[root@localhost root]# tune2fs -l /dev/hda1 |more
Inode count: 26104 //节点数
Block count: 104391 //块数
保留块-为管理员保留的磁盘管理空间(防止因为硬盘太满,而使管理员无法编辑配置文件),默认
为总数据块的5%
[root@localhost root]# mkfs.ext3 -b 4096 -i 8192 -m 2 /dev/sda2
设置保留块的数量占总数的百分比为2%
[root@localhost root]# tune2fs -l /dev/hda1 |more
Reserved block count: 5219
过滤这个值:
[root@localhost root]# tune2fs -l /dev/hda1 |grep Reserved
tune2fs - 调整ext2/ext3文件系统特性的工具
<1> -l <device> 查看文件系统信息
<2> -c <count> 设置强制自检(当一个分区挂载的次数达到一定的次数后,就会进行
强制自检)的挂载次数
<3> -i <n day> 设置强制自检的间隔时间
<4> -m <percentage> 保留块的百分比
<5> -j 将ext2文件系统(没有日志功能)转换为ext3(有日志功能)格式
示例:
[root@localhost root]# tune2fs -l /dev/hda1
显示:Maximum mount count: -1 //最大的挂载次数
如果最大的挂载次数为-1,表示Mount count 永远不会达到-1,从而hda1文件系统永远不会自检
设置强制自检次数:
[root@localhost root]# tune2fs -c 2 /dev/hda1
tune2fs 1.32 (09-Nov-2002)
Setting maximal mount count to 2
[root@localhost root]# tune2fs -l /dev/hda1 |grep -i "mount count"
Mount count: 24
Maximum mount count: 2
-i 选项表示忽略大小写,过滤出"mount count"
[root@localhost root]# tune2fs -l /dev/hda1
Check interval: 0 (<none>) //强制自检的间隔时间,0表示不会强制自检
查看保留块的百分比:
[root@localhost root]# tune2fs -l /dev/hda1 |grep -i "reserved"
Reserved block count: 5219
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
以ext2文件系统格式化hda1
[root@localhost root]# mkfs.ext2 /dev/hda1
[root@localhost root]# df -T //可以查看文件类型
文件系统 类型 1K-块 已用 可用 可用% 挂载点
/dev/hda2 ext3 3020172 2457404 409348 86% /
/dev/hda1 ext3 101089 9324 86546 10% /boot
none tmpfs 62996 0 62996 0% /dev/shm
[root@localhost root]# tune2fs -j /dev/hda1
//把ext2文件系统转换为ext3文件系统。
//但是ext3文件系统不能转换为ext2文件系统
//这个转换过程不破坏原分区里面存放的文件
[root@localhost root]# mount -t ext2 /dev/hda1 /mnt/d1
//我们可以使用这条命令,将文件系统格式为ext3的/dev/hda1分区,以ext2
格式强制挂载,这样磁盘就不具有日志功能。造成磁盘的长时间自检或文件的丢失
判断文件系统是否有日志:
[root@localhost root]# tune2fs -l /dev/hda1 |more
Filesystem features: has_journal filetype sparse_super
//表示有日志功能
文件系统的检查工具
fsck --检查文件系统数据完整性的工具
用法一:fsck -t ext2 /dev/hda1
用法二:fsck.ext2 /dev/hda1
e2fsck 检查ext2/ext3文件系统的工具 (危险,不要使用)
[root@localhost root]# fsck.ext3 /dev/hda1 //这条命令开机一般会自动运行
[root@localhost root]# fsck -t ext3 /dev/hda1
fsck 1.32 (09-Nov-2002)
e2fsck 1.32 (09-Nov-2002)
/boot: clean, 41/26104 files, 12626/104391 blocks
//表示无错,假如有错,会提示修复
[root@localhost root]# fsck.ext3 -y /dev/hda1 //带y参数,表示自动修复所有
错误
使用磁盘配额
磁盘配额作用是限制普通用户使用的磁盘空间,不至于因为个别人的浪费影响所有
使用的人。
需要内核支持。
只有ext2/ext3文件系统目前被支持。
需要用户程序包quota软件包。
磁盘配额配置过程
<1>使用usrquota(用户的磁盘配额),grpquota(组的磁盘配额)选项挂载一个分区,
激活内核的支持
磁盘配额只能在分区上做
mount -o usrquota,grpquota /dev/hda1 /mnt/d1 或
mount -o remount,usrquota,grpquota / (重新挂载根分区)
<2>init 1 (进入单用户环境,防止多个用户使用磁盘,产生冲突)
<3>quotacheck -cvuga检查并创建磁盘配额的数据库文件
c 表示create 创建
v 表示显示详细的创建信息
u 表示user
g 表示group
a 表示所有激活磁盘配额的分区,使用a就不要使用分区,使用分区就不要使用a
数据库文件保存在每一个分区的根目录下
配置好后一般需要重新启动计算机
<4>edquota -u <username>为指定用户分配磁盘空间和节点数量
-u 表示指定用户名
-g 表示指定组名
<5>quota命令可以查看用户的配额使用情况
实际配置过程:
[root@localhost root]# mount /dev/sdb1 /mnt/sd1 -o usrquota,grpquota
//表示指定的分区支持磁盘配额
结果保存在/etc/mtab里面
可是使用命令查看:
[root@localhost root]# more /etc/mtab
/dev/hda2 / ext3 rw 0 0
none /proc proc rw 0 0
none /dev/pts devpts rw,gid=5,mode=620 0 0
none /dev/shm tmpfs rw 0 0
/dev/hda1 /mnt/test ext3 rw,usrquota,grpquota 0 0
[root@localhost root]# quotacheck -cvuga 或
[root@localhost root]# quotacheck -cvug /dev/sdb1
查看/mnt/sd1:
[root@localhost root]# ls /mnt/sd1
aquota.group aquota.user //表示新建的数据库文件,保存每个用户的配额情况
[root@localhost root]# quotaon -a //激活所有的分区,或者:
quotaon /dev/sdb1 or quotaon /mnt/sd1
编辑磁盘配额(xulei用户)
[root@localhost root]# edquota -u xulei
编辑xulei用户在这个磁盘分区上能够使用的块的数量和节点的数量
块(blocks)的限制分为软限制(soft,可以超过)和硬限制(不可以超过)
节点(inodes),表示文件的个数,指示用户在这个分区上能够创建的文件数
可将soft(blocks)设置为1024(字节)
Disk quotas for user xulei (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/hda1 0 1024 4096 0 2 4
[root@localhost root]# mkdir /mnt/sd1/redhat
把权限赋给redhat:
[root@localhost root]# chown redhat /mnt/sd1/redhat
切换成redhat身份:
[root@localhost root]# su - redhat
进入文件夹:
[redhat@localhost redhat]$ cd /mnt/sd1/redhat
用quota命令查看:
[redhat@localhost redhat]$ quota
[redhat@localhost redhat]$ dd if=/dev/zero of=file1 bs=1k count=1024
//bs 表示一次读1k,连续读1024个
创建文件:
[redhat@localhost redhat]$ touch aa
删除文件:
[redhat@localhost redhat]$ rm file1
删除所有文件:
[redhat@localhost redhat]$ rm *
做磁盘配额的时候必须限制用户的块数量和可创建的文件数量
检查用户的磁盘配额:
[root@localhost root]# quota -u redhat
打印所有用户的磁盘配额情况:
[root@localhost root]# repquota -a
修改过期时间:
[root@localhost root]# edquota -t
关闭分区和磁盘的配额:
[root@localhost root]# quotaoff /mnt/sd1 或者
[root@localhost root]# quotaoff /dev/sda1
为了让磁盘配额永久有效,我们需要编辑fstab文件,把挂载选项写进fstab:
[root@localhost root]# vi /etc/fstab
把 /dev/sda1 的defaults项换成defaults,usrquota,grpquota
如果不使用磁盘配额,应先使用quotaoff先关闭磁盘配额,再删数据库文件:aquota.group
aquota.user,删除 fstab里面的",usrquota,grpquota"
2.磁盘检查
3.磁盘配额
4.自动挂载分区