• 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #17 如何使用ext4


    HACK #17 如何使用ext4

    本节介绍ext4的编写和挂载方法、开发版ext4的使用方法。
    ext4是ext3的后续文件系统,从Linux 2.6.19开始使用。现在主要的发布版中多数都是采用ext4作为标准文件系统。
    除了间接参照块管理以外,ext4还以扩展形式支持块的管理,使其能够处理更大的文件、文件系统。另外,还增加了确保多块(multiblock)注1、确保延迟块、提高fsck速度、碎片整理等新的功能。在ext3中,时间戳(time stamp)的单位为毫秒,而ext4中变成了纳秒,可管理的时间日期上限也从2038年为止扩展到2514年为止。时间戳的种类也在以往的mtime、atime、ctime基础上增加了保存文件生成时间的crtime注2。
    表3-1所示为ext3和ext4主要功能的差异。
    表3-1 ext3和ext4的性能、功能比较
    image
    image

    ext4的生成与挂载
    下面介绍ext4的生成方法。生成文件系统时可以使用e2fsprogs中的mke2fs命令。mke2fs有很多种选项。表3-2介绍其中的一部分。
    表3-2 mke2fs的选项
    image

    选项的详细情况请参考mke2fs命令的操作指南。
    生成ext4时,需要将文件系统的种类指定为ext4,执行mke2fs命令。在该例子中使用的是Fedora 14的e2fsprogs-1.41.12-5,在/dev/sdb1上生成ext4。

    # mke2fs -t ext4 /dev/sdb1 或mkfs -t ext4 /dev/sdb1
    

    挂载ext4时可以执行mount命令。需要向变量指定设备和挂载点。在该例子中是挂载到/mnt。

    # mount -t ext4 /dev/sdb1 /mnt
    

    关于mount选项
    ext4中增加了很多功能。这些功能多数都可以在生成文件系统时或挂载时选择启用/禁用。这里介绍可以在挂载中设置的一部分选项(见表3-3)。
    mount选项的详细内容请参考mount命令的操作指南或内核文档(Documentation/filesystems/ext4.txt)。
    表3-3 ext4的挂载选项
    image

    开发版ext4的获取方法
    现在论坛也在对ext4进行积极开发。开发版的ext4包含新的功能和bug的修改等。利用开发版时,需要从ext4的维护人员所管理的Git树中获取。这里将介绍获取开发版内核、命令的方法。获取时可以使用git命令。
    ext4 patch queue的获取
    正在开发的ext4的补丁包括在ext4 patch queue中。可以使用下列方法来获取。

    # git clone http://repo.or.cz/r/ext4-patch-queue.git
    

    获取成功后,就会生成ext4-patch-queue目录。其中就有适用于ext4的补丁。对应的内核版本、适用的补丁的顺序记载在series文件中。

    # cat ext4-patch-queue/series
    
    # BASE v3.0-rc1
    #
    correct-comments-for-ext4_free_blocks
    fix-max-file-size
    use-FIEMAP_EXTENT_LAST-flag-for-last-extent
    fixed-tracepoints-cleanup
    
    # potential problems?
    fix-oops-in-jbd2_journal_remove_journal_head
    
    ##########################################
    # unstable patches
    ####################################################
    stable-boundary
    ...
    

    将这些补丁适用于内核的源代码后,生成的内核就具有ext4的最新功能。
    开发版的e2fsprogs的获取
    e2fsprogs的Git树可以执行下列命令来获取。

    # git clone http://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
    

    这时获取的是最新的稳定版e2fsprogs,因此需要切换到开发版的“next”分支。

    # git checkout next
    

    这样就切换到了开发版的e2fsprogs。可以通过执行configure,make来使用各种命令。由于内核、命令都是开发版,因此在使用过程中可能会发现bug。这时请向linux-ext4@vger.kernel.org报告。
    小结
    本节介绍了ext4的生成与挂载、获取开发版ext4的内核补丁和命令的方法。ext4具有比ext3更多的功能,作为更加便捷的文件系统,能够吸引更多的用户。
    参考文献
    Ext4(and Ext2/Ext3)Wiki
    https://ext4.wiki.kernel.org/index.php/Main_Page
    Mailing list ARChives
    http://marc.info/?l=linux-ext4&r=1&w=2
    —Akira Fujita

  • 相关阅读:
    C#String地址、拼接性能学习
    MySql触发器实现数据同步学习
    京东手机销售价格抓取
    判断是否是数字
    Ftp上传下载
    外部表不是预期的格式。
    C#获取带汉字的字符串长度
    C# Excel导入Access
    C# string.Format()格式
    规则“Microsoft Visual Studio 2008 的早期版本”失败。此计算机上安装了 Microsoft Visual Studio 2008 的早期版本。请在安装 SQL Server 2008 前将 Microsoft Visual Studio 2008 升级到 SP1。
  • 原文地址:https://www.cnblogs.com/tcicy/p/8552805.html
Copyright © 2020-2023  润新知