功能描述
使用mkfs命令可以在分区上创建各种文件系统。mkfs命令本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。这里的文件系统是要指定的,如ext4、ext3、vfat或msdos等。磁盘设备可以是一个磁盘的分区、软盘或光驱等。
命令语法
mkfs [选项] [设备]
选项含义
选项
含义
-t
指定文件系统类型
-v
显示详细信息
-l
从文件中读取坏块列表
-c
创建文件系统之前检查设备的坏块
例
为/dev/sda5磁盘分区创建ext4文件系统。
[root@localhost ~]# mkfs -t ext4 /dev/sda5
格式化/dev/sda5分区,创建exit3文件系统。
[root@localhost ~]# mkfs -t ext3 /dev/sda5
格式化/dev/sda5分区,创建vfat文件系统。
[root@localhost ~]# mkfs -t vfat /dev/sda5
格式化/dev/sda5分区,创建msdos文件系统。
[root@localhost ~]# mkfs -t msdos /dev/sda5
列出mkfs格式
[root@localhost ~]# mkfs 【两次tab键】
mkfs mkfs.ext2 mkfs.ext4 mkfs.msdos
mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.vfat
格式化新硬盘
[root@localhost ~]# mkfs.ext4 /dev/sdb
在 /dev/hda5 上建一个 msdos 的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来 :
mkfs -V -t msdos -c /dev/hda5
##############################################################################################
拓展内容
比如:
mkfs.ext3 /dev/sda6 # 把该设备格式化成ext3文件系统
mke2fs -j /dev/sda6 # 把该设备格式化成ext3文件系统
mkfs.reiserfs /dev/sda6 # 格式化成reiserfs文件系统
mkfs.vfat /dev/sda6 # 格式化成fat32文件系统
mkfs.msdos /dev/sda6 # 格式化成fat16文件系统,msdos就是fat16
mkdosfs /dev/sda6 # 格式化成msdos文件系统
##############################################################################################
一个2Tb的磁盘,格式化时会出现以下信息
mkfs.ext4 -n /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=1 blocks, Stripe width=0 blocks
122101760 inodes, 488378368 blocks
24418918 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
14905 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
通过以上信息可以计算出磁盘格式化后inode占用的磁盘空间
122101760 * 256 / 1024 / 1024 = 29810mb
inode数量 122101760
乘以
每个inode占用的空间 256b
除以
1024 换算为kb
再除以
1024 换算为 mb
通过以上计算可以得出结论:磁盘空间很大的磁盘使用默认参数格式化磁盘会占用大量磁盘空间,浪费磁盘空间。
##############################################################################################
mkfs.ext4有参数-i,可以指定:多大磁盘空间分配一个inode
指定1m空间分配一个inode来格式化2TB磁盘
mkfs.ext4 -i 1048576 -n /dev/sdc
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=1 blocks, Stripe width=0 blocks
1907840 inodes, 488378368 blocks
24418918 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
14905 block groups
32768 blocks per group, 32768 fragments per group
128 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
通过以上信息可以计算出磁盘格式化后inode占用的磁盘空间
1907840 * 256 / 1024 / 1024 = 465mb
inode数量 1907840
乘以
每个inode占用的空间 256b
除以
1024 换算为kb
再除以
1024 换算为 mb
通过更改-i参数,节省了29G空间。
##############################################################################################
除了更改-i参加,也可以直接通过-T参数直接指定多大磁盘空间分配一个inode。
mkfs.ext4 -T largefile -n /dev/sdc1
mkfs.ext4 -T largefile4 -n /dev/sdc1
largefile和largefile4对应的【多大磁盘空间分配一个inode】其实是在 /etc/mke2fs.conf 定义的。
largefile 类型就是 1M 一个 inode
largefile4 类型就是 4M 一个 inode