将ext3转换为ext2 && 查询分区文件系统类型 [转]

将ext3转换为ext2 && 查询分区文件系统类型 [转]
2010-01-05 09:36
hi.baidu.com/zengyingluo/blog/item/247c0e19c0e5150f34fa4154.html
zonghe.17xie.com/book/10547491/48509.html
hi.baidu.com/zengyingluo/blog/item/cda63c24b239986834a80f0e.html

这 段时间,为了调试一个内核bug,需要去除掉ext3文件系统中的日志功能,baidu、google了一通,发现,只有将ext3文件系统转换为 ext2文件系统,才能够清爽去除journal日志效果。下面针对操作系统下三类分区(/root、/usr和其他分区)文件系统ext3转ext2的 步骤加以描述。


操作前准备工作:
如果要修改/root分区,就需要光盘操作系统一张,推荐ubuntu 9.04版本,参考www.ubuntu.com



注意

黄线部分为必须的步骤,且操作顺序不能变更。
蓝字为对应步骤的系统打印信息。


1、修改/root分区,我的系统下/root目录位于分区/dev/mapper/VolGroup00-LogVol00中
#以root身份登陆

#修改/etc/fstab,将/dev/mapper/VolGroup00-LogVol00分区的文件系统更改为ext2


[root@ab ~]#reboot

[root@ab ~] #以root身份登陆

[root@ab ~]# blkid /dev/mapper/VolGroup00-LogVol00 
/dev/mapper/VolGroup00-LogVol00: UUID="e2cf520c-30c7-4ad9-b68c-d9f3e68f7270" TYPE="ext3"

[root@ab ~]#cd /boot
[root@ab ~]#mv initrd-2.6.27.img initrd-2.6.27.img.ext3         #备份当前内核版本镜像文件
[root@ab ~]#mkinitrd initrd-2.6.27.img 2.6.27.5                #重新生成镜像文件

#光驱中放入ubuntu光盘

[root@ab ~]#reboot

#选择进入光盘系统

#sudo lvm vgscan
Reading all physicall volumes. This may take a while...
Found volumn group "VolGroup00" using metadata type lvm2

#sudo lvm vgchange -ay
2 logical volume(s) in volume group "VolGroup00" now active

#sudo lvm lvs
LV            VG                Attr          LSize    Origin   Snap%   Move   Log   Copy%   Convert
LogVol00 VolGroup00 -wi-a-       8.75G
LogVol01 VolGroup00 -wi-a-       1.00G

#ls /dev/mapper/
control     VolGroup00-LogVol00    VolGroup00-LogVol01 

# tune2fs -O ^has_journal /dev/mapper/VolGroup00-LogVol00

# e2fsck /dev/mapper/VolGroup00-LogVol00
 

# blkid /dev/mapper/VolGroup00-LogVol00 
/dev/mapper/VolGroup00-LogVol00: UUID="e2cf520c-30c7-4ad9-b68c-d9f3e68f7270" TYPE="ext2"



2、修改/usr分区,如/usr分区位于/dev/sda2
# 将ubuntu光盘放入光驱中

# reboot

# 进入ubuntu光盘操作系统

# umount /dev/sda2

# tune2fs -O ^has_journal /dev/sda2

# e2fsck /dev/sda2

# blkid /dev/sda2

# reboot

#拿出ubuntu光盘,进入硬盘下的原系统


3、修改/usr和/root以外的其他分区,如/dev/sdb,修改过程如下,对比前后文件系统类型,可知,分区/dev/sdb文件系统类型成功转换为ext3。
[root@ab ~]# blkid /dev/sdb                                #查询分区/dev/sdb对应的文件系统类型
/dev/sdb: UUID="7ab4a3c0-c25d-4b81-8508-04132f1ff4af" TYPE="ext3

[root@ab ~]# umount /dev/sdb                      
[root@ab ~]# tune2fs -O ^has_journal /dev/sdb 
tune2fs 1.41.3 (12-Oct-2008)
[root@ab ~]# e2fsck /dev/sdb 
e2fsck 1.41.3 (12-Oct-2008)
/dev/sdb has been mounted 76 times without being checked, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb: 30515/655360 files (0.3% non-contiguous), 151609/2621440 blocks
[root@ab ~]# vi /etc/fstab 
[root@ab ~]# mount /dev/sdb 
[root@ab ~]# blkid /dev/sdb 
                   #查询分区/dev/sdb对应的文件系统类型
/dev/sdb: UUID="7ab4a3c0-c25d-4b81-8508-04132f1ff4af" TYPE="ext2"



参考
www.troubleshooters.com/linux/ext2toext3.htm#_three2two


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

1.3. 转换到 ext3 文件系统 1.4. 还原到 ext2 文件系统
 

1.3. 转换到 ext3 文件系统

tune2fs 程序能够不改变分区上的已存数据来给现存的 ext2 文件系统添加一个登记报表。如果文件系统在改换期间已被挂载,该登记报表就会被显示为文件系统的根目录中的 .journal 文件。如果文件系统没有被挂载,登记报表就会被隐藏,根本就不会出现在文件系统中。

要把 ext2 文件系统转换成 ext3,登录为根用户后键入:

/sbin/tune2fs -j /dev/hdbX

在以上命令中,把 /dev/hdb 替换成设备名,把 X 替换成分区号码。

以上命令执行完毕后,请确定把 /etc/fstab 文件中的 ext2 文件系统改成 ext3 文件系统。

如果你在转换你的根文件系统,你将需要使用一个 initrd 映像(或 RAM 磁盘)来引导。要创建它,运行 mkinitrd 程序。关于使用 mkinitrd 命令的信息,请键入 man mkinitrd。还请确定你的 GRUB 或 LILO 配置会载入 initrd

如果改换没有成功,系统仍旧能够引导,只不过文件系统将会被挂载为 ext2 而不是 ext3。

1.4. 还原到 ext2 文件系统

因为 ext3 相对来说比较新,某些磁盘工具可能还不支持它。例如,你可能需要使用 resize2fs 来缩小某分区,该命令不支持 ext3。在这种情况下,可能会有必要把文件系统暂时还原成 ext2。

要还原分区,你必须首先卸载分区。方法是登录为根用户,然后键入:

umount /dev/hdbX

在以上命令中,把 /dev/hdb 替换成设备名称,把 X 替换成分区号码。本节以后的示例命令将会使用 hdb1 来代表设备和分区。

下一步,把文件系统类型改回 ext2,以根用户身份键入以下命令:

/sbin/tune2fs -O ^has_journal /dev/hdb1

以根用户身份键入以下命令来检查分区的错误:

/sbin/e2fsck -y /dev/hdb1

然后通过键入以下命令来把分区重新挂载为 ext2 文件系统:

mount -t ext2 /dev/hdb1 /mount/point

在以上命令中,把 /mount/point 替换成分区的挂载点。

下一步,删除根目录下的 .journal 文件。方法是转换到分区的挂载目录中,然后键入:

rm -f .journal

你现在就有一个 ext2 分区了。

如果你永久地把分区改换成 ext2,请记住更新 /etc/fstab 文件。

>>>>>>>>>>>>>>>>>>>>>>>>>

既然写了 将ext3转换为ext2 && 查询分区文件系统类型” 
再补充一篇日志“将ext2转换为ext3”,以求圆满。

同样是针对linux下的三类分区:/root、/usr和其他分区,如果这些分区已被格式化为ext2文件系统,接下来,我们将逐一对它们转换成ext3。由于ext2转ext3相对容易,我没有实践验证,仅简单翻译了一下原文。


1、转换/分区(即/root分区),假设/位于/dev/sda1
* 以root身份登陆
* 修改/etc/fstab文件,将/r分区格式从ext2 改为ext3
* tune2fs -j /dev/sda1
* cd /boot
* mv initrd-2.4.18-26.8.0.img initrd-2.4.18-26.8.0.img.ext2
* mkinitrd initrd-2.4.18-26.8.0.img 2.4.18-26.8.0
* reboot

2、转换/usr/分区,如/usr位于/dev/sda3
* 以root身份登陆
* 确定文件/etc/fstab中已经有/dev/sda3的行,文件类型为ext2, read write可读可写
* mount -o remount,ro /dev/sda3
* tune2fs -j /dev/sda3
* 修改 /etc/fstab, 将分区/dev/sda3的文件系统类型由ext2 转换为ext3
* reboot
* 查询修改结果
blkid /dev/sda3

3、转换其他分区,如/dev/sda2
* 以root身份登陆
* 确定文件/etc/fstab中已经有/dev/sda2的行,文件类型为ext2, read write可读可写
* umount /dev/sda2
如果umount失败,可改用“mount -o remount,ro /dev/sda2”
* tune2fs -j /dev/sda2
* 修改 /etc/fstab, 将分区/dev/sda2的文件系统类型由ext2 转换为ext3
* reboot
* 查询修改结果
blkid /dev/sda2


参考
www.troubleshooters.com/linux/ext2toext3.htm#_two2three
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值