Chinaunix首页 | 论坛 | 博客
  • 博客访问: 381887
  • 博文数量: 136
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 1410
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-14 14:11
文章分类

全部博文(136)

文章存档

2008年(16)

2007年(27)

2006年(93)

我的朋友

分类: LINUX

2008-01-15 09:11:37

  http://blog.eshangrao.com/index.php/2007/10/25/438-dell-optiplex-320-ubuntu-server-710

   前面我说过最近在忙个项目,这不前几天客户测试用的Win2003服务器中毒,我就极力推荐客户将该服务器换成Linux,说的天花乱坠,总算是答应更换系统,当然服务器的搭建的重任就交给我了。

早上揣了张Ubuntu Server 7.10跑过去,信心满满的本以为也就个把小时就搞定的,可是安装盘引导的时候却报下面的错:

PCI:Cannot allocate resource region 1 of device 0000:00:14.0

Google了下,是ACPI的问题,很好解决,在Ubunt的安装菜单中,按F6编辑启动选项,在内核启动选项末尾加上

acpi=off

这样关闭了acpi支持后,安装过程一切顺利,咱心里那个美啊,一不小心,就神游着想完整和我亲爱的吃啥子了,但是现实是残酷的,TNND,安装完成后,Grub引导后,就停在那里,一个破光标一直在闪啊闪阿,压根就不引导系统,郁闷。

还好Internet这小妮子勾搭上Google就是风情万种,一查,原来很多朋友在这台Dell Optiplex 320栽跟头,原来是Grub不认得SATA的硬盘,造成的,晕。

既然是Grub的问题,那解决就简单了,替换Grub为其他支持SATA的引导程序好了,比如,,考虑到Grub的使用的普遍性,我采用,替换的方法很简单:

首先使用Ubuntu Live CD(如Ubuntu Desktop CD或者其他支持Live Linux的光盘)引导系统,进入系统后,再使用chroot切换到我们前面安装在硬盘的Ubuntu Server,最后在Ubuntu Server上安装Grub2就可以了,使用Live CD引导系统启动完毕后,打开终端使用如下命令chroot到硬盘中的我们安装的Ubuntu Server:

先创建一个目录,用于加载硬盘中的系统

sudo mkdir /media/root

加载硬盘中的Ubuntu root分区,我这里的root分区是:/dev/sda2

sudo mount /dev/sda2 /media/root

如果您有单独的boot分区,再加载boot分区,我的boot分区是:/dev/sda1

sudo mount /dev/sda1 /media/root/boot

然后,将Live系统中的proc和dev加载到/media/root中,以便后续的chroot

sudo mount -t proc none /media/root/proc
sudo mount -o bind /dev /media/root/dev

最后使用chroot切换到硬盘中的系统

sudo chroot /media/root

下面在实际的Ubuntu Server下安装Grub2,注意Grub2和Grub冲突,会自动卸载掉Grub:

sudo aptitude install grub2

接着,将Grub2安装到硬盘的引导扇区中,如果您象我一样有单独的boot分区,使用如下命令,/dev/sda为要安装Grub2的硬盘:

sudo grub-install /dev/sda

如果没有单独的boot分区,使用如下命令:

sudo grub-install --root-directory=/boot /dev/sda

然后,使用如下命令更新Grub2配置,自动发现系统可引导内核:

sudo update-grub

最后,和前面安装Ubuntu Server时类似的原因,我们要关闭内核的acpi支持,不然,虽然Grub2能够支持SATA引导系统,但是还是会因为acpi的原因而引导失败(msi非活动错误),修改/boot/grub/grub.cfg(Grub2的启动配置文件是grub.conf而不是menu.lsf),将:

menuentry "Debian GNU/Linux, linux 2.6.22-14-server" {
        linux   (hd0,1)/vmlinuz-2.6.22-14-server root=/dev/sda3 ro
        initrd  (hd0,1)/initrd.img-2.6.22-14-server
}
menuentry "Debian GNU/Linux, linux 2.6.22-14-server (single-user mode)" {
        linux   (hd0,1)/vmlinuz-2.6.22-14-server root=/dev/sda3 ro single
        initrd  (hd0,1)/initrd.img-2.6.22-14-server
}

修改为:

menuentry "Debian GNU/Linux, linux 2.6.22-14-server" {
        linux   (hd0,1)/vmlinuz-2.6.22-14-server root=/dev/sda3 ro acpi=off
        initrd  (hd0,1)/initrd.img-2.6.22-14-server
}
menuentry "Debian GNU/Linux, linux 2.6.22-14-server (single-user mode)" {
        linux   (hd0,1)/vmlinuz-2.6.22-14-server root=/dev/sda3 ro single acpi=off
        initrd  (hd0,1)/initrd.img-2.6.22-14-server
}

然后重新启动,这时候您应该注意到引导时的Grub显示的是1.95的版本,(如果不是的话,嘿嘿,那就是前面Grub2安装的不对,请回去检查。)系统也正常的启动了!

大功告成,这个世界太美好了,空气太清新了,哈!

PS:关于DELL的这个320的PC为什么这么变态难装,大家可以看的说明及总结。

 

大家不乱乱讨论了,我用这机器,说明一下
Dell的这批机器的BIOS有问题
为vista专门改的BIOS
所以一般的linux装上去根本没法用
特殊处理过的Redflag 5 可以装,但实在用不习惯像xp又不好用的linux

简单说明一下:
1.系统要可以安装的话在启动时加内核选项pci=nomsi
2.系统要可以引导的话有两 种选择,一种是换成lilo来引导,另外就是不用现在大多数发行版用的
grub 0.97 ,而用新的grub2 (1.97)

安装时最方便的发行版是Debian
我是用amd64-i386-ppc三合一版的DVD装的
安装前要选择expert模式,因为要装lilo或者grub2
装完系统后选装lilo或者chroot进安装好的系统装grub2 (不过这个似乎只有在sid有)
lilo的附加选项里要加pci=nomsi,要不然启动不了
grub2要设置一下把grub2写到mbr里去,要不然没有引导器(注意:grub4dos不能引导)
我就是装的grub2,不用写nomsi
google 这个题目《TestingOnX86 》有详细说明
我现在装的am64-sid+ grub2
只是这机器的显卡是ATI
有时候很卡
很郁闷

阅读(2004) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~