Ext2, Ext3和Ext4是什么以及如何创建和转换Linux文件系统
LInux Ext2, Ext3和Ext4文件系统创建和转换
·
按照这里的指导,任何人能够转换它们的文件系统,但因为以下任务需要高级的管理规范,在做这之前,确保你必须做了重要的备份。如果遇到任何错误,至少你能够用备份数据恢复。
在计算机中,文件系统是命名并且逻辑放置文件来存储,获取以及更新数据的一种方法,并且也用于在可用设备上管理空间。
文件系统被分成了两个部分,分别称为用户数据和元数据。在这里,我尝试探求在Ext2, Ext3和Ext4文件系统之间如何创建和转换各种Linux文件系统以及高级不同。
在进一步阅读前,简要介绍Linux文件系统。
Ext2 -- 第二种扩展文件系统
- 在1993年引入ext2文件系统,由Remy Card开发了Ext2。在如Redhat和Debian的若干Linux发行版种,它是第一种默认文件系统。
- 它克服了老旧Ext文件系统的限制。
- 最大文件尺寸16GB - 2TB。
- 没有日志特性。
- 它还用于基于闪存存储介质,如USB闪存驱动器,SD卡等。
Ext3 -- 第三种扩展文件系统
- 在2001年引入了Ext3文件系统,并且于具有日志特性,与内核2.4.15集成,其增强了稳定性并且消除了在不干净关机后需要检查文件系统的需求。
- 最大文件尺寸16BG-2TB。
- 提供了从Ext2到Ext3文件系统升级的功能,而不需要备份和恢复数据。
Ext4 -- 第四种扩展文件系统
- Ext4,高预期的Ext3继任者。
- 在2008年10月,Ext4作为稳定代码被融合到了内核2.6.28,其包含了一个Ext4文件系统。
- 向老版本兼容
- 最大文件尺寸16GB到16TB。
- ext4文件系统能够选择关闭日志特性。
- 其它特性,如子目录可扩展性,多块分配,延迟分配,快速FSCK等。
如何确定文件系统类型
要确定文件系统类型,在终端种以root用户执行以下命令。
[root@areadetector blctrl]# df -hT | awk '{print $1,$2,$NF}' | grep '^/dev'
/dev/mapper/rl-root xfs /
/dev/mapper/rl-home xfs /home
/dev/sda2 xfs /boot
/dev/sda4 xfs /home/blctrl
/dev/sda1 vfat /boot/efi
/dev/sdb4 vfat /run/media/blctrl/Rocky-8-6-x
创建一个Ext2或Ext3或Ext4文件系统
一旦你用fdisk或parted命令创建一个文件系统,使用mke2fs命令创建以上任一种文件系统并且确认用你想要的设备。
创建一个Ext2文件系统
[root@areadetector blctrl]# mke2fs /dev/sdb
mke2fs 1.45.6 (20-Mar-2020)
Found a dos partition table in /dev/sdb
Proceed anyway? (y,N) y
Creating filesystem with 2007040 4k blocks and 501952 inodes
Filesystem UUID: 60474893-7fb7-4a49-8235-a897662fd4eb
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
检查磁盘/dev/sdb上的文件系统:
[root@areadetector blctrl]# fsck -N /dev/sdb
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext2 (1) -- /dev/sdb] fsck.ext2 /dev/sdb
[root@areadetector blctrl]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 vfat 9170-5EA4 /boot/efi
├─sda2 xfs 2a91513c-5b4f-43fa-8703-342700a4d86a /boot
├─sda3 LVM2_memb 62W36P-liwA-r1Lf-nOpd-2d1n-w1Gp-Vk1d0Y
│ ├─rl-root xfs 30b3e38f-4f2b-45b9-adb2-b31917f15bfd /
│ ├─rl-swap swap feb6eecc-e719-4ef8-8483-18a7ef823d66 [SWAP]
│ └─rl-home xfs 81befc77-f182-4683-a6de-b2f3fb7687cc /home
└─sda4 xfs 0004936f-714e-4a93-9a4f-befe9d579cfe /home/blctr
sdb ext2 60474893-7fb7-4a49-8235-a897662fd4eb
sdc
└─sdc1 ntfs Elements 10A88FA0A88F8348
sr0
创建一个Ext3文件系统
[root@areadetector blctrl]# mke2fs -j /dev/sdb
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdb contains a ext2 file system
created on Mon Jul 11 12:03:44 2022
Proceed anyway? (y,N) y
Creating filesystem with 2007040 4k blocks and 501952 inodes
Filesystem UUID: a40a8d74-e6d7-499d-bf56-1fc44a89c11a
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks):
done
Writing superblocks and filesystem accounting information: done
[root@areadetector blctrl]#
[root@areadetector blctrl]# fsck -N /dev/sdb
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext3 (1) -- /dev/sdb] fsck.ext3 /dev/sdb
或者
[root@areadetector blctrl]# mkfs.ext3 /dev/sdb
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdb contains a ext3 file system
created on Mon Jul 11 12:49:35 2022
Proceed anyway? (y,N) y
Creating filesystem with 2007040 4k blocks and 501952 inodes
Filesystem UUID: c241224c-b00e-4d11-bce1-1e232bf5dfad
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
[root@areadetector blctrl]# fsck
fsck fsck.ext2 fsck.ext4 fsck.minix fsck.vfat
fsck.cramfs fsck.ext3 fsck.fat fsck.msdos fsck.xfs
[root@areadetector blctrl]# fsck -N /dev/sdb
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext3 (1) -- /dev/sdb] fsck.ext3 /dev/sdb
创建一个Ext4文件系统
[root@areadetector blctrl]# mke2fs -t ext4 /dev/sdb
或者
[root@areadetector blctrl]# mkfs.ext4 /dev/sdb
转换一个Ext2, Ext3或者Ext4文件系统
卸载文件系统并且转换它们总是一个更好的方式。在不卸载和挂载文件系统下,可用做转换。再次使用你的设备名称。
转换Ext2到Ext3
要更改一个Ext2文件系统到Ext3,启用日志特性,使用命令:
[root@areadetector blctrl]# fsck -N /dev/sdb # 磁盘原来的文件系统类型
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext2 (1) -- /dev/sdb] fsck.ext2 /dev/sdb
[root@areadetector blctrl]# tune2fs -j /dev/sdb # 将ext2文件系统转换成ext3
tune2fs 1.45.6 (20-Mar-2020)
Creating journal inode: done
[root@areadetector blctrl]# fsck -N /dev/sdb # 磁盘现在的文件系统类型
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext3 (1) -- /dev/sdb] fsck.ext3 /dev/sdb
转换Ext2到Ext4
要从老的ext2文件系统转成具有最新日志特性的新ext4文件系统。运行以下命令:
[root@areadetector blctrl]# fsck -N /dev/sdb # 原来的文件系统
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext2 (1) -- /dev/sdb] fsck.ext2 /dev/sdb
[root@areadetector blctrl]# tune2fs -O dir_index,has_journal,uninit_bg /dev/sdb #转换ext2文件系统到ext4
tune2fs 1.45.6 (20-Mar-2020)
Creating journal inode: done
[root@areadetector blctrl]# fsck -N /dev/sdb # 现在的文件系统
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext4 (1) -- /dev/sdb] fsck.ext4 /dev/sdb
-p选项自动修复这个文件系统。
-f选项:即使文件系统看起来干净,强制检查文件系统。
接着,用e2fsck命令进行完全的文件系统检查来修复。
[root@areadetector blctrl]# fsck -N /dev/sdb
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext4 (1) -- /dev/sdb] fsck.ext4 /dev/sdb
[root@areadetector blctrl]# e2fsck -pf /dev/sdb
/dev/sdb: 11/501952 files (0.0% non-contiguous), 52322/2007040 blocks
转换Ext3到Ext4
要在一个已有ext3文件系统上启动ext4特性,使用命令。
[root@areadetector blctrl]# fsck -N /dev/sdb # 磁盘原来的文件系统
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext3 (1) -- /dev/sdb] fsck.ext3 /dev/sdb
[root@areadetector blctrl]# tune2fs -O extents,uninit_bg,dir_index /dev/sdb # 将文件系统由ext3转存ext4
tune2fs 1.45.6 (20-Mar-2020)
[root@areadetector blctrl]# fsck -N /dev/sdb # 磁盘现在的文件系统
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext4 (1) -- /dev/sdb] fsck.ext4 /dev/sdb
[/usr/sbin/fsck.ext4 (1) -- /dev/sdb] fsck.ext4 /dev/sdb # 修复tune2fs已经修改的某些磁盘上的结构
[root@areadetector blctrl]# e2fsck -pf /dev/sdb
/dev/sdb: 11/501952 files (0.0% non-contiguous), 52322/2007040 blocks
警告:你一旦运行了以上命令,不能恢复或者挂载回ext3文件系统。
在运行这个命令后,我们必须运行e2fsck修复tune2fs已经修改的某些磁盘上的结构。
更多推荐
已为社区贡献5条内容
所有评论(0)