mkfs.ext3 是最常用的命令之后. 跟他同一效果的命令是 mkfs -t ext3 都将会把指定分区格式化为ext3格式。
执行此命令之后,请确定你要格式化的分区已经没有重要数据,否则不要轻易执行它。
ext3文件系统是linux下最常用的文件系统格式,比ext2多了日志记录功能,牺牲了一点空间利用率,换来了数据的安全.
命令使用,比如我们用fdisk /dev/sda 给磁盘先分了一个分区 /dev/sda5 分区完记得执行partprobe将分区信息写入内核.
此时必须把分区格式化之后,才可以挂载到文件系统.
mkfs.ext3 /dev/sda5 格式化完毕之后,就可以正常挂载了 mount /dev/sda5 /data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这个命令可是我们进行硬盘优化的最基本命令之一,下面简单介绍一些关于磁盘优化的信息.
格式化时创建block。文件系统的存储原理,block size:1k.2k.4k
mkfs.ext3 -b 1024 /dev/sdb1
比较不同的block size对磁盘使用的影响:
[root@rhel /]# mkfs.ext3 -b 1024 /dev/sdb1
[root@rhel /]# mkfs.ext3 -b 4096 /dev/sdb2
[root@rhel /]# mount /dev/sdb1 /mnt/d1
[root@rhel /]# mount /dev/sdb2 /mnt/d2
[root@rhel /]# mkdir /mnt/d1/dir
[root@rhel /]# mkdir /mnt/d2/dir
[root@rhel /]# echo "yliang">/mnt/d1/dir/test
[root@rhel /]# echo "yliang">/mnt/d2/dir/test
[root@rhel /]# ls -lh /mnt/d[12]
/mnt/d1:
总用量 14K
drwxr-xr-x 2 root root 1.0K 4月 4 14:36 dir
drwx------ 2 root root 12K 4月 4 14:20 lost+found
-rw-r--r-- 1 root root
/mnt/d2:
总用量 24K
drwxr-xr-x 2 root root 4.0K 4月 4 14:36 dir
drwx------ 2 root root 16K 4月 4 14:21 lost+found
-rw-r--r-- 1 root root
可以观察到两个dir目录文件大小不同,一个是1k另一个是4k,这就是因为两个分区的block size不同。
[root@rhel /]# ls -lh /mnt/d[12]/dir/test
-rw-r--r-- 1 root root 7 4月 4 14:36 /mnt/d1/dir/test
-rw-r--r-- 1 root root 7 4月 4 14:36 /mnt/d2/dir/test
两个test文件都是7字节
[root@rhel /]# du -sh /mnt/d[12]/dir
2.0K
8.0K
统计两个目录的大小是不一样的。
索引节点:
每个节点使用多少个block数据块
mkfs.ext3 -b 4096 -i 8192 /dev/sdb1 每两个block编一个号
[root@rhel ~]# mkfs.ext3 -b 4096 -i 4096 /dev/sdb1
[root@rhel ~]# mkfs -t ext3 -b 4096 -i 8192 /dev/sdb2
[root@rhel ~]# e2label /dev/sdb1
[root@rhel ~]# e2label /dev/sdb2
[root@rhel ~]# mount LABEL=d1 /mnt/d1
[root@rhel ~]# mount LABEL=d2 /mnt/d2
这里表面上是看不出什么的,要使用tune2fs来查看,这个工具是用来查看ext2/ext3文件系统属性的。
[root@rhel ~]# tune2fs -l /dev/sdb1 |more
tune2fs 1.35 (28-Feb-2004)
Filesystem volume name:
Last mounted on:
Filesystem UUID:
Filesystem magic number: 0xEF53
Filesystem revision #:
Filesystem features:
e_super large_file
Default mount options:
Filesystem state:
Errors behavior:
Filesystem OS type:
Inode count:
Block count:
Reserved block count:
Free blocks:
Free inodes:
First block:
Block size:
Fragment size:
Blocks per group:
Fragments per group:
Inodes per group:
Inode blocks per group:
Filesystem created:
Last mount time:
Last write time:
Mount count:
Maximum mount count:
Last checked:
Check interval:
Next check after:
Reserved blocks uid:
Reserved blocks gid:
First inode:
Inode size:
Journal inode:
Default directory hash:
Directory Hash Seed:
Journal backup:
这两条信息就是
Inode count:
Block count:
保留块:是为管理员保留的磁盘管理空间,为防止磁盘空间剩余太少以致管理员无法编辑配置文件而设置的,默认是总数据块的5%。
用tune2fs -l /dev/sdb1查看保留块信息
[root@rhel ~]# tune2fs -l /dev/sdb1 |grep Reserved
Reserved block count:
Reserved blocks uid:
Reserved blocks gid:
mkfs.ext3 -b 4096 -i 8192 -m 2 /dev/sdb1
设置保留块的数量占总数的 2%。再用tune2fs查看
调整ext2/ext3文件系统
tune2fs是一个调整ext2/ext3文件系统的工具。
-l <device>
-c <count>
-i <n day>
-m <percentage> 保留块的百分比
-j
例:-c
没挂载过的分区挂载次数为0,最大34
tune2fs -l /dev/sdb1
Mount count:
Maximum mount count:
挂载后再查看
mount /dev/sdb1 /mnt/d1
tune2fs -l /dev/sdb1
Mount count:
Maximum mount count:
挂载过1次了,达到34的时候就会强制自检
-c就是来改变这个最大次数的
[root@rhel ~]# tune2fs -c 2 /dev/sdb1
tune2fs 1.35 (28-Feb-2004)
Setting maximal mount count to 2
[root@rhel ~]# tune2fs -l /dev/sdb1 |grep -i "mount count"
Mount count:
Maximum mount count:
这个值只在系统启动过程中起作用
把最大值设为负值就永远不会自检了
tune2fs -c -1 /dev/sdb1
-i <n day>
tune2fs -l /dev/sdb1
Check interval:
如果不自检可以把-i 设置为0
如果这样:tune2fs -c -1 -i 0 /dev/sdb1挂载次数和时间都不能让它自检了,要想自检只能手工的 fsck了
-m <percentage> 保留块的百分比
[root@rhel ~]# tune2fs -m 2 /dev/sdb2
tune2fs 1.35 (28-Feb-2004)
Setting reserved blocks percentage to 2 (532 blocks)
-j
[root@rhel ~]# df -T
/dev/sdb2
umount /dev/sdb2
tune2fs -j /dev/sdb2
mount /dev/sdb2
ext3不能被转换为ext2的,但是可以把ext3类型的强制挂载为ext2的,这时不会有日志
mount -t ext2 /dev/sdb1
文件系统检查工具
fsck和e2fsck[有点危险,识别ext2和ext3上有误差,尽量不用]
fsck是检查文件系统完整性的工具,并自动修复。
fsck的两种用法:
用法一: fsck -t ext2 /dev/sdb1
用法二: fsck.ext2 /dev/sdb1
这样手动运行时,如果文件系统上有错误,会部修复不修复yes or no,如果想全自动修复
fsck.ext2 -y /dev/sdb1这样就自动回答了yes
开机时会自动运行它就是/etc/fstab 中的最后一个参数
[root@rhel ~]# more /etc/fstab
LABEL=/