Gigabyte BRIX (XM11-3337)在路上飘近一个多月之后,终于到手。遂即安装了Win7及Ubuntu双系统,但Ubuntu不能正常启动。通过U盘启动了Ubuntu Live去查看原因, 在准备chroot环境时,不小心打错了命令:
tar zcvf /dev/sda*
结果,硬盘上的分区及引道记录全被覆盖,好在/dev/sda*只是设备名称,只冲写掉前面几个扇区,数据区域无碍。
通过/proc/partitions里的数据重建分区,前面的主分区正确识别,但扩展分区无法识别,应该是有错位,在新建的扩展分区前后搜索”55 AA”标志,遂找到了正确的扩展分区起始位置。主引导记录的修复只好用Windows 7安装光盘来修复。
后来还要接着搞grub无法启动Ubuntu的问题,grub提示无法找到/boot/grub/normal.mod,此时grub仅支持少量和命令,如ls, set, insmod等,linux及initrd命令必须等linux.mod加载后方能生效,通过set命令查看:
prefix=(hd0,msdos3)/boot/grub
(hd0,msdos3)为/boot分区,并不是root,故需要修改prefix为: (hd0,msdos3)/grub,即
set prefix=(hd0,msdos3)/grub
之后就可以手工启动Linux 了:
insmod linux
linux (hd0,msdos3)/vmlinuz-3.8.0-…-generic ro root=/dev/sdaX
initird (hd0,msdos3)/initrd-3.8.0-…-generic
boot
Ubuntu可以正常启动了,但问题的修复还要费些脑筋,因为我的Ubuntu系统设置了独立的boot分区,早知如此当初就不这么麻烦了,好在还有个比较投机的办法,在/boot目录下建了一个指向上层目录的symbolic link:
ln –s .. ./boot
重启系统并验证grub可以正常启动Ubuntu了。
生命不止,折腾不息!附个BRIX酷照: