分页: 1 / 1

无损转换ext3到ext4,with Ubuntu Jaunty

发表于 : 2009-06-27 21:23
young001
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://young001.blogbus.com/logs/39254154.html

Ubuntu Jaunty 9.04开始正式支持ext4文件系统,关于ext4,其优点应该早有听闻,对任何用户而言都具有难以拒绝的诱惑:对一般用户而言,有更好的磁盘性能,快速的预分配、删除,更可靠的日志,更迅速的磁盘检查(不会像ext3可能花几分钟来check,ext4经常是瞬间完成的)……更专业的描述可以看看 IBM文库的这篇《Migrating to ext4》。

从Ubuntu 8.10升级到9.04,一定程度上是看上其对ext4的支持,不过如果为此重新格式化分区重装系统,对于使用积累较多的系统来说代价太高了点(PT现在用的系统是去年的8.04,后来升级8.10,再到现在的9.04……),不过根据《Migrating to ext4》的说法,从ext3到ext4的无损转换是可能的,而且并不耗时间,就如Kernel Wiki里面的Ext4 Howto提到转换所用的命令,其实也很简单:

tune2fs -O extents,uninit_bg,dir_index /dev/DEV
e2fsck -fD /dev/DEV



查了下tune2fs的man页,uninit_bg是支持快速check的特性,dir_index则是创建二叉树散列的目录查找,至于 extents在man页没提到,Kernel Wiki里面说是ext4专有的特性,完成后用e2fsck check一次,这样就完成ext4的转换了,整个过程的耗时并不多。

不过这样转换出来的分区有点不完美的地方是,原本存放在分区内的文件结构还是ext3的结构,由ext4的机制透明兼容,以后存放的文件才是 ext4的格式。本来影响不大的,不过相信会影响众多完美主义者的精神状态,所以很多人宁愿把文件全复制出来,格式化了分区再复回去。

IBM的文章内提到,因为ext4支持了在线的碎片整理,对于转换的ext4,使用e4defrag整理一遍,就是纯种的ext4了,不过到目前为之,e4defrag并未完全可用。不过相信不久的将来,转换到纯种ext4完全可以一气呵成。

最近有谣言说/boot不能是ext4,不然grub引导不了。事实上Ubuntu 9.04已经完全支持ext4,不然此前怎么会有ext4系统的9.04 21秒引导系统的新闻?不过对于升级过来的9.04,安装在/boot/grub里面的程序还是旧版的,没有自动升级,因此可能出现引导问题,相信这也是谣言的出处,所以升级过来的同学要注意了。可以使用grub-install来重新安装一次grub的文件,就如《Upgrade Ubuntu 8.10 to Ubuntu 9.04 and ext3 to ext4 in 10 Minutes》那样。不过grub-install有点要注意,grub-install复制的文件是以/为起始位置的(特别是使用了--root- directory=DIR参数的),如果boot单独分区,同时在livecd里面单独挂载了出来,很可能新复制过去的文件会多了一层boot目录,变成新旧版的引导文件共存以致没法引导grub……(我也感觉我说得一塌糊涂了……总之boot独立分区的同学使用grub-install注意它安装到什么地方去了就好)。

对于从ext3升级到ext4的系统,还有重要的一点就是fstab,完成上述的操作后,先运行blkid查看分区的新UUID,用编辑器打开/etc/fstab,替换转换了的分区的UUID,当然还有挂载类型改成ext4。

Re: 无损转换ext3到ext4,with Ubuntu Jaunty

发表于 : 2009-06-28 17:46
studyhard
学到东西了,谢谢啦,我一开始装的时候就用EXT4,呵,很爽啊

Re: 无损转换ext3到ext4,with Ubuntu Jaunty

发表于 : 2009-06-28 18:02
skyacker
:em02 ...偶是新手..对这种格式之类的还不是很了解..
不知道转换起来是不是也和WINDOWS下的格式转换一样方便..

Re: 无损转换ext3到ext4,with Ubuntu Jaunty

发表于 : 2009-06-29 11:51
aniu289
谢谢~~~试试EXT4先

Re: 无损转换ext3到ext4,with Ubuntu Jaunty

发表于 : 2009-06-29 12:32
photor
:em09