本章节用到的命令主要有:mkfs,mke2fs,tune2fs,blkid,e2label,bc
一、mkfs命令
前文中介绍了如何给磁盘分区,那么分好了区的磁盘,如何使用呢?首先需要对分区进行格式化。格式化分区非常重要,它是用来创建文件系统的,其命令为mkfs,意为make file system。
创建文件系统时需要指定具体的类型,故mkfs命令可以与-t选项结合使用,其格式为:
mkfs -t FileSystemType /dev/part
注意,扩展分区是不能格式化的。
在RHEL4及以前的版面,默认支持的文件系统未ext2,RHEL5默认使用的是ext3,RHEL6建议使用ext4。事实上RHEL5、6能够支持各种不同的文件系统,但是否可以真正使用这些文件系统,要看内核编译时能否支持(内核编译将在后文中介绍)。这里我们将/dev/sdb3格式化为ext4类型的文件系统,可以进行如下操作:
[root@localhost ~]# mkfs -t ext4 /dev/sdb3
# 注意,这一步须反复确认以保证正确书写,因为格式化
# 操作会删除磁盘分区上的所有数据,须谨慎操作!
——————————————运行结果—————————————————
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655776 inodes, 2622603 blocks
131130 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2688548864
81 block groups
32768 blocks per group, 32768 fragments per group
8096 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
今后如果想要查看某个磁盘分区的文件系统类型,可以使用blkid DEVICE命令,如:
[root@localhost ~]# blkid /dev/sdb3/dev/sdb3: UUID="259690de-5ec4-4356-b590-02ba11c31730" TYPE="ext4"
这里可以看到/dev/sdb3这个设备的UUID号和文件系统类型。之所以要为磁盘分区生成UUID(全局唯一识别标识),是因为在实际生产环境中,一台服务器上可以挂载的磁盘分区可以达到成千上万台,故需要使用UUID对其进行区分。
二、mke2fs命令
在命令行中敲mkfs命令后连敲两下tab键补全命令,可以看到所有以mkfs开头的命令:
[root@localhost ~]# mkfsmkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.msdos mkfs.vfat
这里mkfs -t ext4 == mkfs.ext4
mkfs -t ext3 == mkfs.ext3
故可以直接使用mkfs.ext4命令来进行格式化操作。
事实上,mkfs命令在进行格式化操作时,功能不及mke2fs强大,此命令是专门用来创建ext2系列的文件系统的。故:
mkfs -t ext2 == mkfs.ext2==mke2fs
使用man命令来查看mke2fs的帮助文档,会发现mke2fs命令也可以用来创建ext3、ext4等文件系统。
[root@localhost ~]# man mke2fs
MKE2FS(8) MKE2FS(8)
NAME
mke2fs - create an ext2/ext3/ext4 filesystem
DESCRIPTION
mke2fs is used to create an ext2, ext3, or ext4 filesystem, usually in a disk partition. device is the special file corresponding to the device (e.g /dev/hdXX)...
-tfs-type Specify the filesystem type (i.e., ext2, ext3, ext4, etc.) that is to be created.
# mke2fs -t {ext2|ext3|ext4} 也可以用来指明具体的文件系统类型
-jCreate the filesystem with an ext3 journal.
# mke2fs -j 可以用来创建ext3类型的文件系统。故mkfs -t ext3 == mkfs.ext3 == mke2fs -j
-bblock-size Specify the size of blocks in bytes.
# 指定块大小mk2efs -b {1024|2048|4096},默认单位是k,大小为4k。块大小通常只有3中情况,
#即1k,2k和4k,这个大小取决于cpu对内存页框大小的支持,x86系统的默认页框大小为4k
#(页框概念会在后文中介绍)
-Eextended-options Set extended options for the filesystem.
# 设定文件系统的扩展属性
-Lnew-volume-label Set the volume label for the filesystem to new-volume-label.
# 设定卷标
-mreserved-blocks-percentage Specify the percentage of the filesystem blocks reserved for the super-user.
# 设定预留空间比例
-rrevision Set the filesystem revision for the new filesystem.
# 设定预留给管理使用的块个数
默认情况下,mke2fs命令会将磁盘分区格式化ext2类型的文件系统,但该命令有自己的配置文件,可以让用户自行定制想要格式化的默认特性、以及各文件系统的默认特性:
[root@localhost ~]# vim /etc/mke2fs.conf[defaults]
base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
blocksize = 4096
inode_size = 256
inode_ratio = 16384
[fs_types]
ext3 = {
features = has_journal
# 如果将此属性补充在defaults属性后面,则默认创建为ext3类型的文件系统
}
ext4 = {
features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
inode_size = 256
} ...
下面我们使用mke2fs命令再格式化一次/dev/sdb3:
[root@localhost ~]# mke2fs