首先确定你的内核支持ext4,grub也要支持挂载ext4,(28以上的都支持,ubuntu8。10以上的grub版本应该已经打好了ext4补丁,grub2肯定支持);

升级有一定的风险,建议备份重要数据后再做升级;俗语说尝鲜是要付代价的;

系统环境:(不过这个好像没太大关系,个人认为)

ext3无损转换ext4_休闲

使用df -T产看当前系统的文件系统格式为ext3:

ext3无损转换ext4_职场_02

可以看到第二行所显示的文件系统为ext3格式;我这里有两个分区挂在 /dev/sda1是/boot分区,/dev/sda3是根分区;

 在正常的系统启动下跟分区是不可以卸载的,进入紧急救援模式可以进行对磁盘分区的操作,进行紧急引导最简单的方法是:在引导时刻使用 GRUB 或 LILO 把 init=/bin/bash 选项传递给内核;具体方法及介绍请移步http://moonran.bokee.com/509934.html

ubuntu中启动的时候按shift可以进入grub引导菜单

ext3无损转换ext4_休闲_03

 

根据下面的提示按e键,进行引导选项的编辑,在quiet后添加 init=/bin/bash

ext3无损转换ext4_职场_04
然后是ctrl+x启动进入系统,进入的时候是只读模式;

ext3无损转换ext4_职场_05

将分区卸载 :

ext3无损转换ext4_休闲_06

然后进行分区转换:

ext3无损转换ext4_ext3转ext4_07

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

ext3无损转换ext4_ext3转ext4_08

 

ext3无损转换ext4_ext3转ext4_09

然后修改/etc/fstab的UUID,因为分区变化了之后UUID也变了
重启一下还是进这个模式;先挂载分区 ,因为要写入数据:

ext3无损转换ext4_ext3_10

ext3无损转换ext4_休闲_11

ext3无损转换ext4_职场_12

由于需要卸载分区,推荐使用livecd启动电脑,然后卸载分区,再进行转换。
如果修改了/boot分区,还要记得执行sudo update-grub 更新/boot/grub/grub.cfg文件,以免系统无法启动

ext3无损转换ext4_休闲_13


重启之后正常进入系统 df -T 命令查看:

 

ext3无损转换ext4_ext3转ext4_14

格式全都变成ext4了 !OK!!!!!!!!!!!

参考文档:

http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=288615&view=next

http://apt-blog.net/converting_from_ext3_to_ext4_with_ubuntu_9-04