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的破自行车,开上了法拉利

2009年7月26日星期日

移动硬盘又华丽的启动了

我的移动硬盘在外飘荡了半年多后又回到了我的手上。开始折腾。

安装grub4dos
  1. grubinstGUI安装mbr,注意不要选错硬盘,选择安装到整个硬盘
  2. 将grldr和menu.lst拷贝到分区根目录。grub4dos支持fat32、ntfs以及linux文件系统(Grub本来就是Linux的嘛)。可以使用chinese目录下的grldr以支持中文。
  3. 事实上,我另外还有一个字体文件,忘了哪里找的了,估计是maxdos
安装maxdos
  1. 恢复以前保存的文件后有问题,菜单乱码,也不能启动到dos环境
  2. 找了一台机器全新安装maxdos 7.1,拷贝MaxDos文件夹和maxldr.mbr、mxldr到分区根目录,使用上面安装的Grub4dos引导Maxdos成功。这个有点古怪,保存的旧文件以前是能启动的,文件也没有损坏,为什么就不行了呢?这是为什么呢?呵呵,不去管它了,摸的机器多了,也就慢慢习惯了
这里帖一下menu.lst中相关配置
title MaxDox 7.1
find --set-root /maxldr.mbr
chainloader /maxldr.mbr
savedefault --wait=2
在折腾中学习

在单位的Dell G620上测试成功,满心欢喜的抱回家,在笔记本上ED了。
  1. 由于Dell机上正常,且笔记本期间有过返修,拿回来发现bios有升级,首先怀疑的就是bios问题。
  2. 查看bios选项没什么发现。使用闪盘制作的启动盘可以启动(分别使用archlinux的usb安装镜像和杏雨梨云测试),看来bios的usb设备启动功能正常,再进一步在grub环境中测试证实是usb-hdd模式(闪盘显示为hd1)
  3. 而移动硬盘似乎被识别为了fd0,由于将整个设备处理为一个分区,不可避免的有错误,不能读取分区中的grldr。
  4. 又想起grubinstGUI错误的将硬盘的第一个分区认作ntfs,事实上是fat32。经过检查是分区id有错误,linux下用fdisk修正后问题依旧。
  5. 由于上面的一番折腾,尤其是泡了一段时间的时空论坛,尤其是不点的一些帖子,感觉不动bios,软件解决还是有希望的。
  6. 又是一番折腾终于成功:使用最新的DiskGenius,将硬盘转换成usb-hdd模式。注意该操作会删除所有的分区,请事先做好备份。如果已经是某个模式,相应的菜单项会显示创建启动分区而不是转换为xxx模式。中间还是经历的波折(最近点儿背)也可以说一下,在该笔记本上用bootlace.com(grub4dos-0.4.4-2009-06-20.zip)安装mbr,似乎会修改硬盘为错误的模式,所以还是回到老样子,不过认准了usb-hdd模式,多次实验后终于成功。
回想整个过程,虽然usb启动的三种模式早已知道,但一直以为是usb闪盘的事,移动硬盘理所当然是usb-hdd模式,以前在该笔记本上及现在Dell机上的成功都加深了这种看法,当然最主要的,我不知道什么软件可以用来处理移动硬盘这三种模式,所见都是usb闪盘工具

我的移动硬盘又华丽的启动了