2009年7月27日星期一

忍把xfs 换了ext4

换掉xfs可谓蓄谋已久,我再也无法忍受pacman -Syu时的龟速。现在ext4已经正式进入内核,移动硬盘也已回来,终于可以开工了。

想不到xfs出于绝望,竟然提前自杀了。最后一次halt报xfs出错,强行关机后分区已经不能mount。我暂时不想重装系统,准备修复:
  1. 启动到移动硬盘上新装archlinux系统。顺便说一下最新版的grub4dos(grub4dos-0.4.4-2009-06-20.zip)支持ext4,我是装好后才想起来的,也算是个惊喜。
  2. 运行xfs_repair /dev/sda1,提示要正常挂载/卸载一次,或使用-L参数。
  3. 遵医嘱xfs_repair -L /dev/sda1,顺利修复,lost+found里多了几个文件,文件名为纯数字,都是二进制文件。
  4. 进入本地系统,开启X四处看了一下,没发现什么问题。用pacman -Scc清理了本地下载的软件包。
回到移动硬盘上的系统,开始备份:
sudo mount /dev/sda1 /mnt
sudo tar jcvf sysback.tar.bz2 /mnt
由于还是不放心lost+found里文件,这里没有排除任何文件,我的备份文件只有718M。接下来格式化/dev/sda1:
sudo mkfs.ext4 /dev/sda1
为保险起见,我还是重启了一下,应该是没必要,不过最近运气差,小心驶得万年船。现在恢复系统:
sudo tar jxvf sysback.tar.bz2 -C /
这里要注意/dev/sda1要仍旧mount到备份时mount的目录上,这里是/mnt

下面还要调整一下系统。
  1. 由于格式化会改变分区的uuid(参见/dev/disk/by-uuid),请修改fstab、grub的menu.lst中相关uuid的内容。
  2. 别忘了重新生成kernel26.img,因为涉及到启动时加载ext4驱动。
  3. sudo chroot /mnt
    mkinitcpio -k 2.6.30-ARCH -c /etc/mkinitcpio.conf -g /boot/kernel26.img
重启进入本地系统,全面更新一下,哈,就象抛掉了xfs的破自行车,开上了法拉利

没有评论: