如何把ext2和ext4文件系统升级为ext4

在Linux中确定文件系统类型的7种方法(Ext2,Ext3或Ext4)在Linux中确定文件系统类型的7种方法(Ext2,Ext3或Ext4)科幻创意百家号文件系统是文件被命名,存储,检索以及在存储磁盘或分区上更新的方式; 文件在磁盘上的组织方式。一个文件系统分为两部分:用户数据和元数据(文件名,创建时间,修改时间,目录层次结构中的大小和位置等)。在本指南中,我们将解释七种识别Linux文件系统类型的方法,如Ext2,Ext3,Ext4,BtrFS,GlusterFS等等。1.使用df命令df命令报告文件系统磁盘空间使用情况,将文件系统类型包括在特定的磁盘分区上,使用如下-T标志:$ df -Th$ df -Th | grep“^ / dev”2.使用fsck命令fsck用于检查和可选修复Linux文件系统,也可以在指定的磁盘分区上打印文件系统类型。该标志-N禁止检查文件系统的错误,它只是显示将做什么(但我们需要的是文件系统类型):$ fsck -N / dev / sda13.使用lsblk命令lsblk显示块设备,当与该-f选项一起使用时,它也会在分区上打印文件系统类型:$ lsblk -f4.使用mount命令mount命令用于在Linux中挂载文件系统,也可以用来挂载ISO映像,挂载远程Linux文件系统等等。当没有任何参数运行时,它打印有关磁盘分区的信息,包括文件系统类型,如下所示:$ mount | grep“^ / dev”5.使用blkid命令blkid命令用于查找或打印块设备属性,只需将磁盘分区指定为参数即可:$ blkid / dev / sda16.使用文件命令file命令标识文件类型,该-s标志启用块或字符文件的读取并-L启用符号链接的后续操作:$ sudo file -sL / dev / sda37.使用fstab文件的/ etc / fstab中是静态的文件系统信息(诸如安装点,文件系统类型,安装选项等)的文件:$ cat /etc/fstab而已!在这里,解释了七种识别Linux文件系统类型的方法。你知道这里没有提到的任何方法吗?在评论中与我们分享。本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。科幻创意百家号最近更新:简介:关注智能生活和前沿科技作者最新文章相关文章Linux文件系统第一篇—从Ext2到Ext3再到Ext41 概述
Linux继承了UNIX一切皆文件的设计哲学,用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据时不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。但对于程序员来说,了解文件系统的底层组织方式,是进行Linux系统编程所必备的。接下来的讨论主要聚焦于磁盘文件系统。2 索引式文件系统与日志式文件系统
2.1 索引式文件系统核心数据结构说明
Linux中文件和目录保存在称为块设备的磁盘或磁带上,通常每个磁盘上可以定义一个或多个文件系统,Linux文件系统的运行离不开三个重要的数据结构:superblock,inode,block,当然还包含引导块,存放引导程序,用来读入和启动操作系统。
superblock:记录文件系统的整体信息,包含inode/block的大小、总量、使用量、剩余量,以及文件系统的格式,文件系统挂载时间,最近一次数据写入时间,最近一次校验磁盘的时间等。inode:记录文件的属性,一个文件占用一个inode,inode大小(ext2中)大约为128B,并记录文件数据所在的block号码,具体来说包含的信息如下:文件的字节数文件拥有者的User ID文件的Group ID文件的读、写、执行权限文件的时间戳,共有三个:ctime表示inode上一次变动的时间,mtime表示文件内容上一次变动的时间,atime表示文件上一次打开的时间链接数:指有多少文件名指向这个inode文件数据的block号码在文件的block数量很大时,通常会采用多级block来记录block号码,这里采用Bitmap标记未使用的inode号码。block:实际记录文件的内容,若文件太大,则会占用多个block,通常的block大小有1K,2K,4K三种,这里内核记录block信息的数据结构是Bitmap。使用dumpe2fs命令可以查询某块设备上superblock和blockgroup的详细信息,这里不再详细给出。此外,这里再澄清两个概念:Hard Link:硬链接,硬链接文件和原始文件对应同一个inode号码,增加硬链接文件一般不改变磁盘的空间与inode数目,通常硬链接文件不能跨越文件系统建立,并且不能生成目录的链接文件。Symbolic Link:符号链接,创建一个新的文件,读取该文件时会让数据读取指向它link的文件的文件名,和原始文件的inode号码不同。如下图,passwd-hd和passwd-so分别是passwd的硬链接和软链接,可见前者和passwd的inode号码一致,而后者不一致。文件读取流程介绍
文件系统需要链接到目录树才能被我们使用,也就是所谓的挂载,挂载点一定是目录,该目录是文件系统的入口。假设我们想要读取文件/etc/paswd的内容,那么一般需要从根目录的inode内容开始往下读,直到找到正确的文件名,具体流程在我的ubuntu 16.04上如下:寻找/的inode:通过挂载点信息找到inode号码为2的inode,且其权限可以让我们读取block的内容;/的block:根据block的内容找到含有etc/目录的inode号码261633;etc/的inode:根据261633号inode内容中的权限值,知道可以读取etc/的block内容;etc/的block:根据block号码找到含有passwd文件的inode号码261846;passwd的inode:根据261846号inode内容中的权限值,知道可以读取passwd的block内容;passwd的block:读取block中的内容至内存缓冲区。
2.2 日志式文件系统
上述提到的文件系统称为索引式文件系统,Linux内核早期支持中的ext2文件系统正是这种类型。这是针对新增一个文件时,需要的步骤如下:确定使用者对于要增加新文件的目录是否具有w与x的权限,如有,方可新增;根据inode bitmap寻找到没有使用的inode号码,将新文件的权限/属性写入;根据block bitmap找到没有使用的block号码,将数据写入block中,更新inode的block指向数据;将刚刚写入的inode与block数据同步更新至inode bitmap和block bitmap,并更新superblock的内容。
上述的inode bitmap,block bitmap,superblock称为系统的元数据(metadata)。在系统故障时,会出现元数据内容与实际数据存放内容不一致的情况,当然在文件系统重新启动时,会调用文件扫描工具fsck来恢复损坏的元数据信息,但在文件系统很大时,要花费很长时间来恢复。针对上述不一致的情况,出现了日志式文件系统,日志式文件系统会专门划出一个区块记录系统写入和修改文件的步骤,此时写文件的步骤如下:准备:当系统写入一个文件时,会在日志记录区块记录文件要写入的信息;写入:写入文件的权限和数据,更新元数据的内容;完成:在数据与元数据更新完成后,在日志记录区块中完成文件的记录。在出现故障需要恢复时,可根据日志追踪之前提交到主文件系统的更改,大大减少了磁盘的扫描时间,实现丢失数据的快速重建,比传统的索引式文件系统更安全。Linux下的集中日志式文件系统有(目前是CentOS7的默认文件系统),,,。3 Ext2/Ext3/Ext4的区别和比较
3.1 Ext2与Ext3的比较
ext3和ext2的主要区别在于,ext3引入Journal(日志)机制,Linux内核从2.4.15开始支持ext3,它是从文件系统过渡到日志式文件系统最为简单的一种选择,ext3提供了数据完整性和可用性保证。ext2和ext3的格式完全相同,只是在ext3硬盘最后面有一部分空间用来存放Journal的记录;在ext2中,写文件到硬盘中时,先将文件写入缓存中,当缓存写满时才会写入硬盘中;在ext3中,写文件到硬盘中时,先将文件写入缓存中,待缓存写满时系统先通知Journal,再将文件写入硬盘,完成后再通知Journal,资料已完成写入工作;在ext3中,也就是有Journal机制里,系统开机时检查Journal的内容,来查看是否有错误产生,这样就加快了开机速度;
3.2 Ext3与Ext4的比较
Linux内核从2.6.28开始支持ext4文件系统,相比于ext3提供了更佳的性能和可靠性。下面先简单罗列出二者的差异,后续文章再来深入探索。1. 与 Ext3 兼容。 执行若干条命令,就能从 Ext3 在线迁移到 Ext4,而无须重新格式化磁盘或重新安装系统。原有 Ext3 数据结构照样保留,Ext4 作用于新数据,当然,整个文件系统因此也就获得了 Ext4 所支持的更大容量。 2. 更大的文件系统和更大的文件。 较之 Ext3 目前所支持的最大 16TB 文件系统和最大 2TB 文件,Ext4 分别支持 1EB的文件系统,以及 最大16TB 的文件。 3. 无限数量的子目录。 Ext3 目前只支持 32,000 个子目录,而 Ext4 支持无限数量的子目录。 4. Extents。 Ext3 采用间接块映射,当操作大文件时,效率极其低下。比如一个 100MB 大小的文件,在 Ext3 中要建立 25,600 个数据块(每个数据块大小为 4KB)的映射表。而 Ext4 引入了现代文件系统中流行的 extents 概念,每个 extent 为一组连续的数据块,上述文件则表示为“该文件数据保存在接下来的 25,600 个数据块中”,提高了不少效率。 5. 多块分配。 当写入数据到 Ext3 文件系统中时,Ext3 的数据块分配器每次只能分配一个 4KB 的块,写一个 100MB 文件就要调用 25,600 次数据块分配器,而 Ext4 的多块分配器“multiblock allocator”(mballoc) 支持一次调用分配多个数据块。 6. 延迟分配。 Ext3 的数据块分配策略是尽快分配,而 Ext4 和其它现代文件操作系统的策略是尽可能地延迟分配,直到文件在 cache 中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。 7. 快速 fsck。 以前执行 fsck 第一步就会很慢,因为它要检查所有的 inode,现在 Ext4 给每个组的 inode 表中都添加了一份未使用 inode 的列表,今后 fsck Ext4 文件系统就可以跳过它们而只去检查那些在用的 inode 了。 8. 日志校验。 日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。Ext4 的日志校验功能可以很方便地判断日志数据是否损坏,而且它将 Ext3 的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能。 9. “无日志”(No Journaling)模式。 日志总归有一些开销,Ext4 允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。 10. 在线碎片整理。 尽管延迟分配、多块分配和 extents 能有效减少文件系统碎片,但碎片还是不可避免会产生。Ext4 支持在线碎片整理,并将提供 e4defrag 工具进行个别文件或整个文件系统的碎片整理。 11. inode 相关特性。 Ext4 支持更大的 inode,较之 Ext3 默认的 inode 大小 128 字节,Ext4 为了在 inode 中容纳更多的扩展属性(如纳秒时间戳或 inode 版本),默认 inode 大小为 256 字节。Ext4 还支持快速扩展属性(fast extended attributes)和 inode 保留(inodes reservation)。 12. 持久预分配(Persistent preallocation)。 P2P 软件为了保证下载文件有足够的空间存放,常常会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。 Ext4 在文件系统层面实现了持久预分配并提供相应的 API(libc 中的 posix_fallocate()),比应用软件自己实现更有效率。 13. 默认启用 barrier。 磁盘上配有内部缓存,以便重新调整批量数据的写操作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写 commit 记录,若 commit 记录写入在先,而日志有可能损坏,那么就会影响数据完整性。Ext4 默认启用 barrier,只有当 barrier 之前的数据全部写入磁盘,才能写 barrier 之后的数据。4 小结
目前,大多数Linux发行版,包括我的Ubuntu 16.04的默认支持文件系统是ext4,ext4也是首个专门为Linux设计的文件系统,我们可以轻易的从ext3迁移到ext4,对于程序员来说,了解文件系统的演化脉络是十分重要的,后续会继续深入讨论Linux下的各个文件系统。参考资料【1】【2】【3】132 条评论分享收藏&[ 6 篇帖子 ]&
&文章标题 : 求助:如何把ext2文件系统升级为ext4?发表于 :
0:16帖子: 31
接收感谢: 0 次
本人菜鸟,刚刚学习Linux不久。我有一块硬盘里几乎装满了数据,但是它的文件系统是ext2,我想把它升级成为ext4,以便使用ext4的日志。‘然而我不想直接格式化,而想保留硬盘里的数据(手头没有可以用于备份的设备),有没有什么方法能把ext2升级为ext4同时保留原有的数据?
_________________我自己的开源软件工作室:胡戎航软件工作室 支持开源软件运动
&文章标题 : Re: 求助:如何把ext2文件系统升级为ext4?发表于 :
1:05帖子: 14683地址: Tencent
系统: Mac OS X
没听说过文件系统能直接升级。。。
_________________twitter求fo:博客求踩:
&文章标题 : Re: 求助:如何把ext2文件系统升级为ext4?发表于 :
9:26帖子: 923
接收感谢: 0 次
ext3好像能直接到ext4巴ext2不知道
&文章标题 : Re: 求助:如何把ext2文件系统升级为ext4?发表于 :
0:16帖子: 31
接收感谢: 0 次
枫叶饭团 写道:没听说过文件系统能直接升级。。。啊啊,那好吧……我去借一块移动硬盘做个备份吧……
_________________我自己的开源软件工作室:胡戎航软件工作室 支持开源软件运动
&文章标题 : Re: 求助:如何把ext2文件系统升级为ext4?发表于 :
8:48帖子: 26402地址: 东海硇州,一双管钥。
系统: Fundu i64
听说ext2能转ext3,ext3也能转ext4,至于ext2能不能直接转ext4就不清楚了,楼主可以试一下先转ext3看看吧,不过,分区升级有危险,强烈建议升级前先备份好数据。
_________________◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。?执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
&文章标题 : Re: 求助:如何把ext2文件系统升级为ext4?发表于 :
10:53帖子: 1988
系统: Ubuntu 14.04
貌似fat能转NTFS
显示帖子 : 全部帖子1天7天2周1个月3个月6个月1年&排序 作者发表时间文章标题 升序降序&
&[ 6 篇帖子 ]&
正在浏览此版面的用户:Bing [Bot] 和 5 位游客
您 不能 在这个版面发表主题您 不能 在这个版面回复主题您 不能 在这个版面编辑帖子您 不能 在这个版面删除帖子您 不能 在这个版面提交附件
选择一个版面
------------------
公告/注意事项
& &新闻和通知
& &校园社团支持
& && &华东校区
& && &华南校区
& && &华北校区
& && &华中校区
& && &东北校区
& && &西北校区
& && &港澳台校区
& && &国外校区
& &软件推荐
& &非常任务
系统安装区
& &教学和常见问答
& && &课堂教学和培训
& &初学者园地 - Ubuntu 18.04 LTS (Bionic Beaver)
& &系统安装和升级
& && &新立得和软件源
& && &Wubi安装讨论
& &启动和引导
& &网卡问题以及网络和拨号
& && &校园网拨号
& &笔记本、UMPC支持
& &手机和平板
& && &Ubuntu移动应用开发
& &常用硬件支持
& &系统架构支持
配置美化区
& &字体美化和中文支持
& && &个人配置文件存放点
& &桌面特效
& &窗口管理器
& &屏幕抓图
& &办公、图像、机械电子设计等
& && &Vim和Emacs
& &因特网相关软件
& &影音多媒体
& &Wine及其分支
& &游戏和游戏模拟器
& &虚拟机和虚拟化
& &其它类软件
& &开源模板库
服务器管理
& &服务器基础应用
& &数据库管理
& &服务器维护和硬件相关
& &Ubuntu VPS
参与Ubuntu开发
& &软件和文档翻译
& &编译或打包
& &Ubuntu错误报告
程序设计区
& &Shell脚本
& &GTK+和QT
& &软件/网站开发
& && &Python/Php/Perl
& && &C/C++/Java
& &内核及嵌入式开发
& &开源小工具
& &Ubuntu 18.10
& &Ubuntu 16.04 LTS
& &Ubuntu 14.04 LTS
& &Ubuntu 12.04 LTS
& &Ubuntu 10.04 LTS
& &老旧版本支持
衍生发行版
& &Ubuntu GNOME
& &Kubuntu
& &Xubuntu & Lubuntu
& &Ubuntu中文衍生版
& && &UbuntuKylin
& &Ubuntu国外衍生版
& && &Mint
& &Ubuntu衍生版制作
& &其它类Unix OS发行版
& && &Arch发行版
& && &Debian发行版
& && &OpenSUSE发行版
& && &Deepin
& &深度PK版
& &Ubuntu故事和感慨
& &Full Circle开源杂志
分享交流区
& &同城交流
& &线下活动专版
& &Ubuntu宣传推广
& &论坛管理
& && && &Ubuntu中文网上商店一个项目从ext3 升级到ext4有什么捷径吗
[问题点数:100分,结帖人yjsyx333]
一个项目从ext3 升级到ext4有什么捷径吗
[问题点数:100分,结帖人yjsyx333]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年 总版技术专家分年内排行榜第五
2018年4月 总版技术专家分月排行榜第一2018年2月 总版技术专家分月排行榜第一2017年8月 总版技术专家分月排行榜第一
2014年7月 Web 开发大版内专家分月排行榜第三
匿名用户不能发表回复!|Linux文件系统从ext3升级到ext4【linux吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:190,468贴子:
Linux文件系统从ext3升级到ext4收藏
转载自:创意安天论坛 尽管 ext4 出来已经有一段时间了,由于有一些 bug 还没被大量应用到服务器生产环境中,不过对于桌面用户来说 ext4 已经足够成熟了。去年发布的最新 RHEL 5.4 版本默认文件系统依然是 ext3。 最近 Linux 内核开发人员、ext4 文件系统的维护者 Ted Ts’o 跳槽到 Google,并在 Google 继续从事 ext4 的研发和 Linux kernel 方面的工作。在一篇 mailing list 里,Google 工程师 Michael Rubin 也提到了一些 Google 内部使用 ext4 的情况。经过 Google 内部测试,ext4 和高性能的 xfs 文件系统性能很接近,Google 选择 ext4 而不是 xfs 的主要原因是因为他们的现有系统是 ext2,这样升级到 ext4 会更容易一些。还有一个有意思的地方是,大多数人对 dbench 很信任,选用 dbench 来做文件系统的测试工具。&&&& 如何从 ext3 升级到 ext4?首先需要确保 Linux kernel 是支持 ext4 的,其次要注意 /boot 分区最好使用 ext3,因为现在系统上的 grub 很可能不支持 ext4,需要有这个 commit 的特别版本 grub 才能支持 ext4. 用下面的命令转换:&&&& # cd /; umount /dev/sda1&&&& # tune2fs -O extents,uninit_bg,dir_index /dev/sda1&&&& 记住,转换成 ext4 后必须用 fsck 扫描,否则不能 mount,-p 参数说明 “自动修复” 文件系统:&&&& # fsck -pf /dev/sda1&&&& 挂载 ext4 文件系统:&&&& # mount -t ext4 /dev/sda1 /path/to/转载自 it专家论坛 作者 浪漫天使
登录百度帐号

我要回帖

更多关于 ext2fsd ext4 的文章

 

随机推荐