li-problem.html

来自「学习linux的工具书」· HTML 代码 · 共 96 行

HTML
96
字号
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
   <meta name="Author" content="Edward Fu">
   <meta name="GENERATOR" content="Mozilla/4.05 [zh-CN] (X11; I; Linux 2.1.127 i686) [Netscape]">
   <title>Freesoft Linux FAQ -- 启动时显示LI后死机的问题</title>
</head>
<body>
zhaoyz wrote:
<p>> 宫大虾:
<p>大虾?你准备拿来红烧还是油闷呢? :-)
<p>> 我在scsi硬盘上装了lilo,MBR方式启动,只有一块seagate 3555w(4.3G)硬盘
<br>> 硬盘上只有linux分区,root在/dev/sda1下我也加入lilo了,可是每次起动
<br>> 显示LI就死机了,不知道为什么,谁能指教一下呀,我感觉是MBR没读出来
<br>> 有人能救我吗??
<p>你的SCSI卡是什么厂家的?
<br>有没有换卡?或者有没有在某机器上安装好Linux
<br>然后换到另一机器上用?
<br>如果有以上两中情况发生那么就不奇怪了。因为不同的SCSI卡有不同的扇区
<br>到柱面数/磁头数/每面扇区数的映射算法。Lilo会认为boot.b或者内核已经
<br>移动了,因而出错死机。据lilo的资料讲,当停机在Li的时候它的意思就是
<br>boot.b被移动了。
<p>另一个可能性是当你copy了一个新的内核到lilo安装时的文件后(比如说是
<br>/boot/vmlinuz)没有重新跑lilo。
<p>总之能不能把你的情况说得详细些,因为情况很复杂,我好根据情况告诉你该
<br>怎么样做。
<p>再见!
<p>宫敏
<p>--
<br>----
<br>NT=No Thanks, WWW=World Wide Wait
<br>Does PnP mean "Plug and Pray"?
<br>&nbsp;
<p>&nbsp;&nbsp;&nbsp; 对LILO还有个很有名的问题: Linux的根文件系统不能超出1024柱面,否则LILO可能不能正确
<br>读出boot.b或内核.其实很多操作系统都有类似的问题。解决办法是在跺死/瘟都死下使用loadlin
<br>.exe/load95来代替LILO,或者做个启动软盘,或者把Linux的根文件系统分配得靠前一些,LILO一旦
<br>读出内核后,内核不使用BIOS操作硬盘,将不再存在1024问题.专业的做法是:专门为根文件系统分配
<br>一个64M左右的分区(当然全部在1024以前), 然后为/usr,/var,/home等(视情况而定)分配分区(独立
<br>的文件系统).
<p>&nbsp;&nbsp;&nbsp; 在我整理这个FAQ时,我自己还遇到了以前未提到的问题.先描述一下背景:
<br>&nbsp;&nbsp;&nbsp; 我的计算机采用了华硕双CPU BX主板P2B-DS,集成了Adaptec
AIC-7890 SCSI卡,那时候Linux
<br>还不支持这种卡,只好找个IDE硬盘来装了Redhat 5.1,过了一段时间在suse的主页上找到一个补丁,
<br>内核升级到2.0.35并打上这个patch,就认这个卡了,于是我开始琢磨用自己编译的内核来代替RH启
<br>动盘上的内核,但我怎么精简内核配置,编译出来的内核(用make bzImage)总比启动盘上的大,后来
<br>有个网友告诉我在ftp.dialnet.net/pub/linux/aic78xx下已经有了最新的启动盘,于是下载了一个,原
<br>来它把aic-78xx编译成一个模块放在initrd.img里.我用这个启动盘把RH5.1装到SCSI硬盘上(9.1G),
<br>安装时我小心翼翼地设定Linux根文件系统全在1024柱面以内,并选择了Linear模式,重新启动,出现
<br>"L"后再也不动弹.于是想去掉linear参数看看: 进入BIOS设置IDE设备先于SCSI设备,启动IDE硬盘上
<br>的Linux,把自己编译的内核拷贝到SCSI硬盘上的Linux分区上,在/etc/lilo.conf里加上SCSI上的Linux
<br>启动项:
<br>&nbsp;&nbsp; image=/boot/bzImage
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root=/dev/sda4
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label=newlinux
<br>运行一遍lilo,然后就可以从IDE上的LILO启动SCSI上的Linux了.进去修改/etc/lilo.conf,去掉linear
<br>参数,运行lilo,显示倒是正常.重新启动并把SCSI设备设为先于IDE设备,启动后显示
<br>L 04 04 04 04 ...... 04反复循环.
<br>哈哈,很多网友提到的问题都让我遇到了! 没有办法,先去看看/usr/doc/lilo-0.2/README,04表示
<br>LILO不能正确认识硬盘的物理参数(CHS),怎么回事? 从IDE上LILO不是能正常工作吗?再仔细读读,哈!
<br>原来LILO还有个问题: 当系统里既有IDE硬盘又有SCSI硬盘时,LILO并不知道BIOS里设的是IDE先还是
<br>SCSI先,于是读硬盘的CHS参数时会乱套. 决定在/etc/lilo.conf里加上:
<br>&nbsp;&nbsp;&nbsp;&nbsp; disk=/dev/sda
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bios=0x80 &lt;=== 还记得吗,0x80表示第一个硬盘.
告诉LILO,SCSI硬盘为第一个硬盘
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sectors=63
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; heads=255
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cylinders=1110
<br>&nbsp;&nbsp;&nbsp;&nbsp; disk=/dev/hda
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bios=0x81 &lt;===0x81表示第二个硬盘
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sectors=63
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; heads=128
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cylinders=621
<br>问题就这样解决了(我原本准备去看原代码的).关于CHS参数可以用hdparm -g或fdisk的p命令看到.
<p>顺便还解决了另外一个问题:
<br>IDE上的LILO不能启动SCSI上的瘟都死98和NT,或启动后盘符不正确的问题.先把boot.0804拷贝过来,
<br>修改/etc/lilo.conf:
<br>&nbsp;&nbsp;&nbsp; other=/dev/sda1
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label=win98
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table=/dev/sda
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; map-drive=0x80
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
to=0x81
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; map-drive=0x81
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
to=0x80
<br>最后这四行实际上起到"软"切换硬盘顺序的作用,对于那些BIOS里没有设定IDE或SCSI先后顺序的机器
<br>特别有用.就算有,手动切换多麻烦呐!
<p>婆婆妈妈写了一大堆,希望对新手有点启发,自己多读文档,开动脑筋,大有益处.
<p>&nbsp;<a href="LILO-detail.html">索性写个LILO故障详述</a>
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?