欢迎,来自IP地址为:1.64.14.178 的朋友
对于 计算机来说,文件系统就是文件命名和逻辑存储、检索以及更新的方法,文件系统同时还要管理已有存储设备的存储空间。文件系统通常被划分为两类:用户数据和元数据。
本文将详细讲解 Linux 系统的 Ext2、Ext3、Ext4 等文件系统,并尝试演示如何创建以及转换不同的文件系统。
在开始之前,强烈建议大家在尝试之前备份好自己的数据,因为操作文件系统是需要有足够的经验,稍有不慎,就有可能带来无法弥补的损失。
首先,对 Linux 文件系统做一个简要的介绍:
Ext2 – Third Extended File System
- Ext2 最早发布于1993年,并成为早期诸如 Red Hat 和 Debian 等 Linux 发行版的默认文件系统
- 它的出现是为了摆脱经典 Ext file system 文件系统的限制
- 最大文件容量 16GB-2TB
- 不支持日志
- 该文件系统同样可以应用于 USB 闪存以及 SD 卡
Ext3 – Third Extended File System
- Ext3 于2001年同 2.4.15 内核同时发布,已经具备日志功能,可以通过检查文件系统日志来提升系统可靠性
- 最大文件容量 16GB-2TB
- 提供方便的 Ext2 到 Ext3 转换工具,无需经历备份和恢复数据
Ext4 – Fourth Extended File System
- Ext4,是备受期待的 Ext3 继承者
- 2008年10月, Ext4 稳定版同 2.6.28 内核一同出现
- 后向兼容
- 最大文件容量 16GB-16TB
- Ext4 可以使用选项开关控制是否启用日志功能
- 其他特性:子目录可扩展性、多块分配、延迟分配、快速文件系统检查
如何确定文件系统
想要确定系统所使用的文件系统,可以用 root 用户执行如下命令:
# df -hT | awk '{print $1,$2,$NF}' | grep "^/dev"
创建 Ext2、Ext3 和 Ext4 文件系统
在使用 fdisk 命令或 parted 命令创建好文件系统分区后,还需要使用 mke2fs 或 mkfs 命令将分区在操作系统层面启用(示例中的 sdXX 表示对应的分区编号):
# mke2fs /dev/sdXX //Ext2文件系统 # mke2fs -j /dev/sdXX //Ext3文件系统 # mkfs.ext3 /dev/sdXX //Ext3文件系统 # mke2fs -t ext4 /dev/sdXX //Ext4文件系统 # mkfs.ext4 /dev/sdXX //Ext4文件系统
Ext2、Ext3 和 Ext4 文件系统转换
Ext2 转换为 Ext3,使用如下命令即可:
# tune2fs -j /dev/sdXX
Ext2 转换为 Ext3,使用如下命令:
# tune2fs -O dir_index,has_journal,uninit_bg /dev/sdXX # e2fsck -pf /dev/sdXX
-p 选项表示自动修复文件系统
-f 选项表示强制进行文件系统检查
Ext3 转换为 Ext4,使用如下命令:
# tune2fs -O extents,uninit_bg,dir_index /dev/sdXX # e2fsck -pf /dev/sdXX
需要注意的是,运行以上命令后,将无法恢复或挂载回 ext3 文件系统。
因此,扫行命令后,我们必须运行 fsck 来修复一些 tune2fs 已修改的磁盘结构。