当前位置: 首页 > 工具软件 > Ext2Read > 使用案例 >

linux 将ext2变成ext4文件系统

臧威
2023-12-01

linux 将ext2变成ext4文件系统

ext2是非日志系统,断电很容易造成文件损坏。

1 卸载

sudo vim /etc/fstab

/dev/mmcblk1p7 /data auto defaults 0 0 前面加一个#,改成如下

#/dev/mmcblk1p7 /data auto defaults 0 0 

保存退出 (或  umount /dev/mmcblk1p7),重启reboot

2 格式化数据盘

sudo mkfs.ext4  /dev/mmcblk1p7

格式化后可检查盘有没有错误

sudo resize2fs  /dev/mmcblk1p7

sudo e2fsck -p -f /dev/mmcblk1p7

3 重新挂载

 sudo vim /etc/fstab

#/dev/mmcblk1p7 /data auto defaults 0 0 删除#,改成如下

/dev/mmcblk1p7 /data auto defaults 0 0

保存退出(或 mount  /dev/mmcblk1p7),重启reboot

4 检查是否挂载

  df -h

5 命令解析

5.1 mkfs.ext4

mkfs.ext4 参数

-b block-size 块大小(1k,2k,4k)
-c 坏块测试
-l filename从文件读坏块列表
-C cluster-size 簇大小 (大块分配持性)
-D 使用direct I/O
-E 扩展属性
   mmp_update_interval=MMP更新时间间隔,必需小于300s
   stride=条块大小(RAID组中每个条带单元chunk大小)
   stripe_width=条带大小 (单位为block),(在数据定时,块分配器尽可能的防止产生read-modify-write)
   resize=保留在线调整时的空间大小
   lazy_itable_init=0/1 inode表不完全初始化 (挂载时由内核在后台初始化)    // 40TG mount后50M写初始化55分钟 (格式化时:20s,强制初始化时:7min)  (mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 )
   lazy_journal_init=0/1日志inode表不完全清0
   test_fs设置文件系统体验标志
              
-F(force 强制)
-f  fragment-size  指定片段大小
-g blocks-per-group  指定每一个块组内块的数量
-G number-of-groups  指定块组数量(在元数据负载重时可以提高元数据性能)
-i bytes-per-inode  指定 bytes/inode 比率
-I inode-size 指定inode大小
-j 创建一个ext3日志。默认创建合适大小的日志区
-J 创建指定属性的日志。逗号分隔。 (size=1024块 内部日志大小,device= 外部日志设备 )
    size= journal-size  内部日志大小,单位为M,最小为1024个文件系统块,(最大为10240000个文件系统块或文件系统的一半)
    device = external-journal 外部日志块设备(设备名,标签,UUID)
    外部日志必需先创建:mke2fs -b 4096 -O journal_dev  external-journal (/dev/ramhda)
    mkfs.ext4 -J device= external-journal (/dev/ramhda)  -F /dev/mapper/vggxxxxxxx
-L 设置volume 标签,最长为16个byte
-m 指定保留空间百分比,为root用户
-M 设置最后挂载目录
-n 不真正创建文件系统,只是显示创建的信息
-S  只写超级块和块组描述符。(当超级块和备份超级块错误后,可以用来恢复数据。因为它不会touching inode表和bitmap)
-O feature 指定创建文件系统时的持性(/etc/mke2fs.conf)
	 bigalloc 使能大块分配(cluster-size)
	 dir_index 使用哈希B树加速目录查找
	 extents 使用extents替代间接块
	 filetype在目录项中存储文件类型信息
	 flex_bg 允许为每一个块组元数据(分配bitmap和inode表)存放在任何位置 
	 has_journal  创建ext3日志(-j)
	 journal_dev 在给定的设备上创建外部ext3日志
	 large_file 支持>2G的文件(现代内核会自动打开) 
	 quota 创建quota inodes(inode#3为用户配额,inode#4为组配额) ,并在超级块中设置。
	               (挂载后自己启用quota)
	 resize_inode 保留空间以便未来块组描述表增长。用于resize2fs
	 sparse_super 创建少量的超缓块拷贝
	 uninit_bg   创建文件系统时不初始化所有的块组,加速创建时间,和e2fsck时间、
-O^has_journal   不启用日志

5.2 resize2fs

resize2fs可用于调整ext2、ext3或ext4文件系统的大小。它可以用来扩容或缩小位于设备上的已卸载的文件系统。

参数:
-f      :强制执行 resize 操作
[device]:分区名;
[size]  :可以加也可以不加。如果加上 size 的話,加上一个单位例如 M,G。

5.3 e2fsck

e2fsck 详见

 

 类似资料: