LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2162|回复: 19

【经验分享】LFS/BLFS*移*魂*大*法*

[复制链接]
发表于 2009-6-12 21:22:04 | 显示全部楼层 |阅读模式
【经验分享】LFS/BLFS*移*魂*大*法*

青 铜 镜


[color="Red"]安民告示

[color="Red"]1、严正声明:
1.1、本贴大概、也许、可能含有危险内容,非专业人士请勿阅读!禁止模仿!
1.2、即使有家长的陪同和指导也不要阅读!万一家长也跟着你掉进坑里了!
2、严重警告:
2.1、如果您决定继续阅读下去,那么表明您愿意承担因阅读本贴后所产生的不可预知的后果!
2.2、至此,我已经警告过你了!别说我没告诉你,真的有危险!别等到了痛苦时才后悔莫及!



[color="Red"]水贴正文



[color="Red"]1、        突发故障

青铜镜不仅喜欢折腾LFS/BLFS,而且还喜欢超频。目的就是想让有限的硬件平台发挥出超常的性能。有同事在思路上灌水,经常给青铜镜拷好多高清的片子。而青铜镜的机器播放起来比较吃力,只好想用此方法来折腾了。其实,LFS/BLFS已经是跑得很快了。然而经过超频以后,机器跑得更加快了。当然,为了机器跑更快更稳定,青铜镜自己手工更换了主板上内存、显卡等部位的14个电容。
一天晚上,电脑正在运行时,青铜镜听到显卡的风扇响咔咔的声音,就把机箱平放下来检查,突然电脑一下子关掉了,只见从机箱里面冒出一股烧焦的臭味,还伴着一缕青烟,青烟袅袅上升,慢慢变成了一只漂亮的蝴蝶,蝴蝶轻轻舒展着翅膀,悠悠地飞着,最后消失在我的眼前……唉,等青铜镜看不见蝴蝶了才定下神时,发现自己的主板和显卡都玩完了。都是机箱惹的祸呀:机箱的骨架不够结实,放平躺时,导致显卡错位,主板和显卡同时牺牲了……
次日,《江湖小报》的娱乐专版上报导了青铜镜的主板化蝶的消息,人们对此消息议论纷纷,都在猜测到底这个蝴蝶是公的呢?还是母的呢?有好事者还亲自在QQ上发来信息询问……
过了很久,青铜镜搞来一块华硕的主板和一块intel的CPU,装上了,重新开机,机器运行到一半就停下来了,进不了系统。于是青铜镜思考了好久,开始了LFS/BLFS*移*魂*大*法*的历程……




[color="red"]2、        配置对比

2.1、原来的配置:
主板:华擎K7V88
http://www.asrock.com/mb/overview.cn.asp?Model=K7V88&s=462
CPU:AMD Athlon XP 2000+
显卡:恩雅NVIDIA FX5200 128M
声卡:CMedia CMI9761 6 声道 AC'97 声卡芯片(主板集成)
网卡:VIA® 6103 10/100 以太网 LAN PHY
2.2、更换的配置:
主板:华硕p4p800-x
http://detail.zol.com.cn/49/48249/param.shtml
CPU:P4 2.8(支持超线程,打开KDE控制中心,看到两个CPU,太搞笑了!)
显卡:NV440 64M(从联想的主机上拆下来的)
声卡:AD1888 SoundMAX 6声道音频编码器,支持S/PDIF输出接口
网卡:10/100Realtek网卡
 楼主| 发表于 2009-6-12 21:25:38 | 显示全部楼层
[color="Red"]3、        具体分析

由于青铜镜在编译LFS时,曾经修改过optimize/opt_config.d/O3pipe_march这个文件。把文件里面的内容“-march=pentium4”全部改为“-march=athlon-xp”。编译系统时,针对CPU做了很好的优化。但是,速龙2000+和P4 2.8这两个CPU都是X86系列的,速龙2000+编译出来的东西应该是可以在P4 2.8上面运行的。所以这里的修改,问题并不大。
至于不能进入系统,应该是内核的驱动出了差错。
内核中的CPU、主板、声卡、显卡网卡等硬件都改变了,原来的驱动选项都不能用了,系统自然是没办法启动的。应该把原来的内核删掉后重新再装一个。只有给LFS/BLFS系统更换内核,才能让系统能够正常重新启动。




[color="red"]4、        挽救实践

用LiveCD启动电脑,进入到XFCE4,启动命令终端。在命令终端里面依次输入以下命令:
4.1、恢复到LFS第六章后的安装模式:
export LFS=/mnt/lfs
mkdir -pv $LFS
mount -v -t ext3 /dev/sda2 $LFS (说明:青铜镜用SATA硬盘,并且分成两个区,这是/分区。)
mount -v -t ext3 /dev/sda1/$LFS/boot (这是第二个分区:/boot。各位看官要根据自己的情况挂载分区。)
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts
mount -vt tmpfs shm $LFS/dev/shm
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
chroot "$LFS" /usr/bin/env -i \
    HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin \
    /bin/bash --login
4.2、删除原来的内核
rm –rf /boot/lfskernel-版本号
rm –rf /boot/System.map-版本号
rm –rf /boot/config-版本号
rm –rf /lib/modules/内核的版本号
(说明:rm –rf这个命令很猛烈!那不是一般的利害!一定要小心呀!青铜镜再次强调:有危险!)
4.3、重新编译安装内核:
cd /sources
tar -jxvf linux-2.6.16.27.tar.bz2
cd linux-2.6.16.27.tar.bz2
patch -Np1 -i ../linux-2.6.16.27-utf8_input-1.patch
make mrproper
make menuconfig
make
make modules_install
cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.16.27
cp -v System.map /boot/System.map-2.6.16.27
cp -v .config /boot/config-2.6.16.27
(说明:青铜镜用来救援的LiveCD还是6.2-1版的光盘。但真正安装的内核并不是这个版本,而是用U盘另外拷进机器里面的。)




[color="red"]5、        最后结果

如果说硬件平台是电脑的骨架的话,那么,安装到电脑里面的操作系统和在操作系统上运行的各种应用软件就是电脑的灵魂。青铜镜的机器更换了主要的骨架以后,顺便把原来的“灵魂”也给移过来了。哈哈哈,真的是很有成就感!
其实,更换不同的主板和CPU以后,不能进入系统,那是很正常的事。而且,青铜镜常遇上在Window$XP里面更换不同的主板而不能进入系统的情况。但是,Window$XP有一个修复安装的功能,只要拿一个纯净的安装光盘启动电脑,选择修复安装,也是能把windowsXP救回来的。
这次青铜镜的LFS/BLFS系统挂掉,纯属意外!本来是给显卡更换了一个新风扇,目的就是想保证机器超频时,显卡也能保持清凉。不料电线没整理好,风扇刮在电线上,机箱骨架不够硬朗,平放时就牺牲了主板和显卡。唉……
事实证明,按照上面所说的LFS/BLFS系统*移*魂*大*法*很成功。现在,青铜镜的系统还是很强壮、稳健!本来想秀个图上来,轻轻显摆一下下,但是为了保持一贯低调的作风,还是不秀图了!

[color="Red"]最后,再强调一下:
本贴大概、也许、可能含有危险内容!小心、小心、再小心!



回复 支持 反对

使用道具 举报

发表于 2009-6-12 21:50:51 | 显示全部楼层
低调!不知道有几个人能练到这种武功!
回复 支持 反对

使用道具 举报

发表于 2009-6-12 21:53:26 | 显示全部楼层
呵呵,这种方法非常、十分、及有可能出问题。

问题在于您系统过于优化,与特定硬件绑定过紧。
不出问题是幸运,出些奇怪问题也不意外。

俺有更好方法,一般人不告诉他。

其实很简单,保留一份 通用的不优化的 基本系统 和 内核,如果愿意也可以是完整系统。
在当前,针对 i686 编译是可行的,i586 及以下机器基本已淘汰。
接着,随便用什么方法安装 基本系统 和 内核 到目标机。
启动,想最优化系统,在环境变量中设置合适优化参数,重编译一遍即可,前提是要保留自己的编译脚本,手工做体力活多无聊。

俺这么做是因为历史问题,家里机器品种多,仅供参考。
回复 支持 反对

使用道具 举报

发表于 2009-6-13 01:18:41 | 显示全部楼层
基本上按照新硬件重新编译一次内核就ok了。gentoo不就是这么从stage开始构建的么。
为何保持良好的兼容性,还是用i686比较稳妥。当然这就让楼主失去了压榨cpu剩余价值的乐趣了。
回复 支持 反对

使用道具 举报

发表于 2009-6-13 07:14:09 | 显示全部楼层
其实镜兄要重装内核,可以考虑装另一个版,安装好及成功启动後才干掉旧版不是更保险?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-13 20:41:37 | 显示全部楼层
Post by 聚焦深空;1997113
呵呵,这种方法非常、十分、及有可能出问题。

问题在于您系统过于优化,与特定硬件绑定过紧。
不出问题是幸运,出些奇怪问题也不意外。

俺有更好方法,一般人不告诉他。

其实很简单,保留一份 通用的不优化的 基本系统 和 内核,如果愿意也可以是完整系统。
在当前,针对 i686 编译是可行的,i586 及以下机器基本已淘汰。
接着,随便用什么方法安装 基本系统 和 内核 到目标机。
启动,想最优化系统,在环境变量中设置合适优化参数,重编译一遍即可,前提是要保留自己的编译脚本,手工做体力活多无聊。

俺这么做是因为历史问题,家里机器品种多,仅供参考。




事实证明:
俺是幸运的!
俺LFS/BLFS轻轻站起来了,
而且还跑得挺顺溜的……
看来,
俺得去买个六合彩!


呵呵,
LFS/BLFS更换核心,
玩的就是心跳呀!

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-13 20:52:36 | 显示全部楼层
Post by d00m3d;1997215
其实镜兄要重装内核,可以考虑装另一个版,安装好及成功启动後才干掉旧版不是更保险?



从现在的结果来看,
重装内核是最快的捷径,
比另外装一个新版要快得多。
俺就是希望用简单有效的方法,
去解决复杂困难的问题。

把原来针对旧硬件优化的内核挖掉,
重新编译安装内核,
顺便针对新装上的硬件再优化一下下,
机器跑起来,
那不是更爽么?

唉,
优化,
就象是欧美X片一样,
对俺很有吸引力啊!

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-13 22:01:51 | 显示全部楼层


很搞笑的intel超线程技术,
一个CPU,
看起来竟然有两个!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2009-6-14 07:59:33 | 显示全部楼层
我一直覺得這所謂超線程技術是在誤導消費者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表