侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux mkfs.ext2命令详解:如何创建ext2文件系统(附实例教程和注意事项)

Linux mkfs.ext2命令介绍

mkfs.ext2是一个用来创建ext2文件系统的命令,ext2是Linux下最早的文件系统之一,它使用inode作为文件的基本单位,存储文件的元数据和数据块的位置。ext2文件系统不支持日志功能,因此在出现断电或系统崩溃等情况时,可能会导致文件系统损坏或数据丢失。ext2文件系统适合用于小容量的存储设备,或者不需要频繁写入的场景。

Linux mkfs.ext2命令适用的Linux版本

mkfs.ext2命令在大多数Linux发行版中都是可用的,但是一些较新的发行版可能默认使用了ext4或其他类型的文件系统,因此在使用mkfs.ext2命令之前,需要先确认目标设备的分区类型是否为Linux或Linux LVM。可以使用fdisk或parted等工具来查看或修改分区类型。例如,如果要查看/dev/sdb1的分区类型,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ sudo fdisk -l /dev/sdb1
Disk /dev/sdb1: 8 GiB, 8589934592 bytes, 16777216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

从输出中可以看到,/dev/sdb1的分区类型为Linux,因此可以使用mkfs.ext2命令来创建ext2文件系统。如果分区类型不是Linux,可以使用fdisk或parted等工具来修改分区类型,或者使用mkfs命令的-t选项来指定文件系统类型。例如,如果要将/dev/sdb1的分区类型修改为Linux,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ sudo fdisk /dev/sdb
Welcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): t
Partition number (1-4, default 4): 1
Hex code (type L to list all codes): 83

Changed type of partition 'Linux' to 'Linux'.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Linux mkfs.ext2命令的基本语法

mkfs.ext2命令的基本语法如下:

mkfs.ext2 [options] device [block-size]

其中,device是要创建文件系统的设备或分区的名称,如/dev/sdb1;block-size是文件系统的块大小,可以是1024、2048或4096字节,如果不指定,默认为4096字节。

Linux mkfs.ext2命令的常用选项说明

mkfs.ext2命令的常用选项如下:

选项说明
-c检查设备上的坏块,并在创建文件系统时避免使用它们
-f指定文件系统的碎片大小,可以是1024、2048或4096字节,如果不指定,默认与块大小相同
-i指定每个inode的字节数,可以用来控制文件系统的inode数量,如果不指定,默认为每16KB有一个inode
-j创建带有日志功能的ext3文件系统,相当于使用mkfs.ext3命令
-l从指定的文件中读取坏块列表,并在创建文件系统时避免使用它们
-L指定文件系统的卷标,可以是最多16个字符的字符串
-m指定为超级用户保留的空间百分比,可以是0到100之间的整数,如果不指定,默认为5%
-n不创建文件系统,只显示创建文件系统时的信息
-q安静模式,不显示创建文件系统时的信息
-v详细模式,显示创建文件系统时的信息

Linux mkfs.ext2命令的实例

以下是一些使用mkfs.ext2命令的实例:

  • 在/dev/sdb1上创建一个块大小为2048字节,卷标为mydisk的ext2文件系统:
[linux@bashcommandnotfound.cn ~]$ sudo mkfs.ext2 -b 2048 -L mydisk /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 4194304 2k blocks and 524288 inodes
Filesystem UUID: 7c9f0a0f-9f0f-4c3c-9f0f-0a0f9f0f0a0f
Superblock backups stored on blocks: 
	16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
	2048000, 2383872, 2809856, 3211264, 3645440

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done
  • 在/dev/sdb1上创建一个带有日志功能的ext3文件系统,相当于使用mkfs.ext3命令:
[linux@bashcommandnotfound.cn ~]$ sudo mkfs.ext2 -j /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 8388608 1k blocks and 2097152 inodes
Filesystem UUID: 9f0f0a0f-9f0f-4c3c-9f0f-0a0f9f0f0a0f
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 
	1024001, 1990657, 2809857, 5120001, 5971969

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
  • 在/dev/sdb1上创建一个碎片大小为1024字节,保留10%空间给超级用户的ext2文件系统:
[linux@bashcommandnotfound.cn ~]$ sudo mkfs.ext2 -f 1024 -m 10 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 8388608 1k blocks and 2097152 inodes
Filesystem UUID: 0a0f9f0f-9f0f-4c3c-9f0f-0a0f9f0f0a0f
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 
	1024001, 1990657, 2809857, 5120001, 5971969

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done
  • 在/dev/sdb1上创建一个ext2文件系统,并检查设备上的坏块:
[linux@bashcommandnotfound.cn ~]$ sudo mkfs.ext2 -c /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Checking for bad blocks (read-only test): done                            
Creating filesystem with 8388608 1k blocks and 2097152 inodes
Filesystem UUID: 0a0f9f0f-9f0f-4c3c-9f0f-0a0f9f0f0a0f
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 
	1024001, 1990657, 2809857, 5120001, 5971969

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done
  • 在/dev/sdb1上创建一个每个inode占用32字节,不显示创建文件系统时的信息的ext2文件系统:
[linux@bashcommandnotfound.cn ~]$ sudo mkfs.ext2 -i 32 -q /dev/sdb1
  • 在/dev/sdb1上创建一个ext2文件系统,并从指定的文件中读取坏块列表:
[linux@bashcommandnotfound.cn ~]$ sudo mkfs.ext2 -l badblocks.txt /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 8388608 1k blocks and 2097152 inodes
Filesystem UUID: 0a0f9f0f-9f0f-4c3c-9f0f-0a0f9f0f0a0f
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 
	1024001, 1990657, 2809857, 5120001, 5971969

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

Linux mkfs.ext2命令的注意事项

以下是一些使用mkfs.ext2命令的注意事项:

  • 在创建文件系统之前,最好先备份设备上的重要数据,以防止数据丢失或损坏。
  • 在创建文件系统时,可以使用-c或-l选项来检查或避免坏块,但是这会增加创建文件系统的时间,而且可能不会发现所有的坏块。因此,建议使用专门的工具,如badblocks,来检测和修复坏块。
  • 在创建文件系统时,可以使用-j选项来创建带有日志功能的ext3文件系统,这样可以提高文件系统的可靠性和恢复能力,但是也会降低文件系统的性能和空间利用率。如果需要更高级的日志功能,可以使用ext4或其他类型的文件系统。
  • 在创建文件系统时,可以使用-i选项来指定每个inode的字节数,这样可以控制文件系统的inode数量,但是也会影响文件系统的最大文件数和最大容量。一般来说,每个inode的字节数越小,文件系统的inode数量越多,文件系统的最大文件数越多,但是文件系统的最大容量越小。反之亦然。
  • 在创建文件系统时,可以使用-m选项来指定为超级用户保留的空间百分比,这样可以防止文件系统被普通用户填满,导致系统无法运行。一般来说,保留的空间百分比越高,文件系统的安全性越高,但是文件系统的空间利用率越低。反之亦然。
  • 在使用mkfs.ext2命令时,如果遇到bash: mkfs.ext2: command not found的错误,说明系统中没有安装mkfs.ext2命令所需的软件包。可以使用以下命令来安装mkfs.ext2命令所需的软件包:
# 在基于Debian的发行版中,如Ubuntu,使用apt-get命令
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install e2fsprogs

# 在基于Red Hat的发行版中,如CentOS,使用yum命令
[linux@bashcommandnotfound.cn ~]$ sudo yum install e2fsprogs
0

评论区