+ -
当前位置:首页 → 问答吧 → 我也来问一个LILO的问题

我也来问一个LILO的问题

时间:2006-02-28

来源:互联网

为什么我的Lilo装不上?

出错如下:
Warning: Partition 2 on /dev/hda is not marked Active.
Fatal: Filesystem would be destroyed by LILO boot sector: /dev/hda2

这是我的lilo.conf文件:
代码:
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
lba32 # Allow booting past 1024th cylinder with a recent BIOS
boot = /dev/hda2
bitmap = /boot/boot.bmp
prompt
timeout = 80
change-rules
reset
vga = 794

# Linux bootable partition config begins
#initrd = /boot/initrd.gz
image = /boot/vmlinuz
root = /dev/hda2
label = Linux(Default)
read-only
# Linux bootable partition config ends
#
# Linux 2.6.8 bootable partition config begins
image = /boot/vmlinuz-2.6.8
root = /dev/hda2
label = Linux2.6.8
#vga = 790
read-only
# Linux 2.6.8 bootable partition config ends
#
# Windows bootable partition config begins
other = /dev/hda1
label = Windows
table = /dev/hda
# Windows bootable partition config ends

作者: 独行侠   发布时间: 2006-02-28

从系统装好那一天就不能装上Lilo.每次升级内核我都再试,可就是不行.

作者: 独行侠   发布时间: 2006-02-28

不确定是不是内核的问题,2.6.8的内核,是你自己编译的吧,当前版本的slackware里只有2.4.31/2.4.32,2.6.13 /2.6.15的。

还有可能是你的bois太旧,不会认超过1024th cylinder的

作者: Oceany   发布时间: 2006-03-01

不应该是内核的问题吧?因为我从安装系统那一天就没装成功过LIlo,所以一直就是把它装在软盘里用的.

作者: 独行侠   发布时间: 2006-03-01

#liloconfig

一個指令,輕鬆搞定

作者: charliechan   发布时间: 2006-03-02

呵呵,还是那个错,要是这个liloconf可以的话,当初装系统的时候就可以了.

不过现在用的方法也不错:
装在软盘里,用虚拟软驱挂到NTLoader里,启动挺不错的.

作者: 独行侠   发布时间: 2006-03-02

引用:
作者: 独行侠
呵呵,还是那个错,要是这个liloconf可以的话,当初装系统的时候就可以了.

不过现在用的方法也不错:
装在软盘里,用虚拟软驱挂到NTLoader里,启动挺不错的.
没必要用虚拟软驱吧,可以用dd啊,
  dd bs=512 count=1 if=/dev/hdax of=bootsect.lnx
  然后再mount到DOS分区,将bootsect.lnx拷贝到C盘根目录下,
  进入Windows 2000,编辑C盘根目录下的boot.ini文件,加入以下:
  C:\BOOTSECT.LNX="Linux" 重启
至于安装lilo,如果安装系统的时候不行,可以用启动盘进入后mount进系统,再尝试安装lilo大多都会成功的,我好几次都这样。

作者: dreamawake   发布时间: 2006-03-02

引用:
作者: 独行侠
为什么我的Lilo装不上?

出错如下:
Warning: Partition 2 on /dev/hda is not marked Active.
Fatal: Filesystem would be destroyed by LILO boot sector: /dev/hda2
这里不是很清楚吗? /dev/hda2 没有设成活动分区,用fdisk改一下

作者: windrose   发布时间: 2006-03-02

引用:
作者: windrose
这里不是很清楚吗? /dev/hda2 没有设成活动分区,用fdisk改一下

改过啊,没效果。不知道是不是出了1024的范围了。


引用:
作者: windrose
没必要用虚拟软驱吧,可以用dd啊,
  dd bs=512 count=1 if=/dev/hdax of=bootsect.lnx
  然后再mount到DOS分区,将bootsect.lnx拷贝到C盘根目录下,
  进入Windows 2000,编辑C盘根目录下的boot.ini文件,加入以下:
  C:\BOOTSECT.LNX="Linux" 重启
不行了,我试过了,如果我装在hda2上就不行。dd 出来的512字节东西并不能启动。
不过去dd出mbr里的东西却可以。

现在我也不用虚拟软驱了,因为我我把 lilo装到了mbr里,没有问题。然后我dd出mbr到一个文件里,再把原来的mbr写回去。所以现在我还是用NtLoader,不过不再要虚拟软驱了。这样我更新过内核后就不用重启到Win里去改写启动项了。不过我不知道我现在如果写lilo -b /tmp/filename的话,这个filename能不能被NTLoader引导起来?

作者: 独行侠   发布时间: 2006-03-02

讨论了半天连虚拟软驱,ntloader都来了......linux离开了win就不能生存了吗?

1,楼主能否确认你正确的把hda2改成了活动分区?
2,实在不行换grub试试

作者: killads   发布时间: 2006-03-03

引用:
作者: killads
讨论了半天连虚拟软驱,ntloader都来了......linux离开了win就不能生存了吗?
斑竹大侠稍安勿躁,各取所需嘛,linux离开了win可以生存,可我不能,还要靠它写文件报告混饭吃,用win引导lin,和用lin引导win,有区别么?尽管我用的是grub。

作者: dreamawake   发布时间: 2006-03-03

引用:
作者: killads
讨论了半天连虚拟软驱,ntloader都来了......linux离开了win就不能生存了吗?

1,楼主能否确认你正确的把hda2改成了活动分区?
2,实在不行换grub试试
恰恰相反,我现在几乎不用Windows,只是SLK用的是LILO,而我的硬盘分区方法又不能启动得了,所以就干脆用nlloader了。其实PC机本来设计就是和DOS/WIN分不开的,我觉得NTLOADER更简单而已,而且如果哪天想在机器上重装或新装WIN,也没有任何影响,这就是方便所在。

另:
1、完全可以确认,我从2.4.x一直到2.6.5, 2.6.8, 2.6.9...一直到2.6.15.4,每次编译完我都会去试。
2、我不想又装LILO又装GRUB,不喜欢在同一系统里放两个同样目的的软件。

还有一点想说,虚拟软驱也没什么不好的,至少它是很好的理解了引导过程的。

最后还想说一件事,我前几天在一台机器上装系统时,80G的硬盘,我先分了一个区给Linux,然后再装Windows,这时发现XP光盘无论怎么也不能启动,最后发现第一个分区一定不能是Linux分区,才算了结它。

作者: 独行侠   发布时间: 2006-03-09

我希望能得到帮助,也希望我提的问题能帮到一些人。

这个问题也只是想提供一些另外的方法来引导系统。其实之前我一直要挺不错的方法来引导我的系统。

作者: 独行侠   发布时间: 2006-03-09

引用:
作者: 独行侠
其实PC机本来设计就是和DOS/WIN分不开的,我觉得NTLOADER更简单而已,而且如果哪天想在机器上重装或新装WIN,也没有任何影响,这就是方便所在。
PC designed for DOS/Win?此话怎讲?
NTloader更简单?反了吧,每次新装win都会把MBR覆盖掉,怎么会没影响。

作者: dreamawake   发布时间: 2006-03-09

根本就是 boot=/dev/hda2 的问题。直接装进MBR怎么样?boot=/dev/hda。小心操作小心操作。

作者: shannleon   发布时间: 2006-03-09

这样我有多种选择,能在引导到其他引导程序后回到loader里头。
我通常做法是保证我的linux启动部分能在被我的bios读。 我那是8g,呵呵。
把lilo安装到分区的boot区,并不不放在mbr上。 这样让我觉得安全。466个字节
每次我都dd命令把boot部分的东西弄出来。留做备用。之后就是任何一个能把这内容放上去引导机器的方法都能进系统。不过最常用的还是loader。boot.ini修改引导。呵呵。
怎么做都不多说了。要是直接把内容写进mbr,只要不破坏分去表也没关系的。哈哈!!!

作者: 木人   发布时间: 2006-03-10

引用:
作者: dreamawake
PC designed for DOS/Win?此话怎讲?
NTloader更简单?反了吧,每次新装win都会把MBR覆盖掉,怎么会没影响。

91年之前可能是没有Linux吧?
PC机是什么时候开发出来的呢?
PC机的前十年用的是什么系统呢?
PC机到今天和他的前十年架构变了吗?


NTloader可以读写成文件的MBR的前466字节,这不是使用很简单?
正因为每次装Win都会把MBR覆盖掉,所以用NTloader不是更简单?

作者: 独行侠   发布时间: 2006-03-13

引用:
作者: shannleon
根本就是 boot=/dev/hda2 的问题。直接装进MBR怎么样?boot=/dev/hda。小心操作小心操作。
没错,就是/dev/hda2有些问题,但分区表我不是很清楚,不知道每一个分区头是怎么写的。这方面很少有系统的资料。

MBR我装过,没有问题,不过我只是不想装在MBR里而已。

作者: 独行侠   发布时间: 2006-03-13

不想装在MBR里就不要装嘛,用什么不是一样.512前446是引导信息,剩下的是分区表.(如果没错的话).
楼主好象一愤青.

作者: shannleon   发布时间: 2006-03-13

我来给大家讲讲引导。

一般我们用的pc机,也就是ibm兼容机。 启动的时候先是bios自检,
正常后确定启动磁盘。 如果硬盘启动,回读取mbr区域, 也就是绝对1扇区。硬盘的第一个可读写区域。
判断最后是不是55AA,这些是引导代码的事。 把这内容放到内存 7c00 位置,然后把控制权交给它。

标准的主引导程序会检测活动分区。引导代码后面是分区表部分。具体的结构不多说了。
一共4条信息头个是引导标志,80标识代表是活动分区,如果有且只有一个活动分区。那么引导代码会把控制权交给它, 也就是把这个分区的头个扇区信息加载到内存 7c00 位置,并转过去执行它。
这就是系统引导部分都喜欢mbr的原因, 其实 放在那里都无所谓,只要 bios能正确读取,还有引导模块能把这部分信息加载进内存并执行, 通常都不会有问题。
所以大家应该明白问题出在那里了。

象楼主遇见的问题。 lilo提示 , 硬盘的第二分区,也就是安装lilo的分区boot区域,不是活动分区。
正常情况下不会把系统控制权给lilo。所以不好启动。但用其他方法仍然可以做到比如用 loader
另外可能的情况是, linux系统boot部分安装在bios可读取范围之外, bios 调用无法把那引导部分代码读出来。所以没办法实现系统引导。

只有linux kernel 引导后才会跳开bios磁盘中断调用的。从这个角度分析lilo引导问题。应该很快能解决问题的。

作者: 木人   发布时间: 2006-03-13

记错了。 确切点说是446字节,别多写入数据。不然分区表会不见的。

再次重复。 是446字节, 不是466,是 446 , 提醒大家,千万记住,别像我样记错。

作者: 木人   发布时间: 2006-03-13

引用:
作者: 木人
我来给大家讲讲引导。

一般我们用的pc机,也就是ibm兼容机。 启动的时候先是bios自检,
正常后确定启动磁盘。 如果硬盘启动,回读取mbr区域, 也就是绝对1扇区。硬盘的第一个可读写区域。
判断最后是不是55AA,这些是引导代码的事。 把这内容放到内存 7c00 位置,然后把控制权交给它。
……

谢谢!记下了。

我不是愤青。:ask :ask :ask

作者: 独行侠   发布时间: 2006-03-14

引用:
作者: 独行侠
91年之前可能是没有Linux吧?
PC机是什么时候开发出来的呢?
PC机的前十年用的是什么系统呢?
PC机到今天和他的前十年架构变了吗?


NTloader可以读写成文件的MBR的前466字节,这不是使用很简单?
正因为每次装Win都会把MBR覆盖掉,所以用NTloader不是更简单?
dos 是不是第一个pc操作系统我不清楚,就算是那也应该理解成dos/win designed for PC吧?

如果你的lilo安装在mbr,你重装win,对系统没影响么?你的lilo将没掉。 但lilo可以选择,你可以装在mbr,也可以装在linux分区的super block或者软盘而不影响系统。哪个更简单?如果你把“没有其他选择”理解成简单,我也无话可说:)

作者: dreamawake   发布时间: 2006-03-15

年轻人不知道历史,待我老人家来说两句:DOS确实是IBM PC的第一个操作系统,当年有微软提供的MS-DOS和IBM自己的PC-DOS,两者基本是相同的。微软也正是靠上了IBM这条大船才起家的。

管理多重引导,我曾经用过NTLoader,但现在我用苏哲当年开发的sbm(smart boot manager,http://btmgr.sourceforge.net/download.html ),这个东西不占用MBR,而是和当年的引导区病毒一样,安装在“硬盘的第一个磁道中(隐藏扇区), 它不需要任何特殊的分区, 所以它是真正系统无关的”,重装windows也不会影响到它(除非进行硬盘格式化)。

作者: windrose   发布时间: 2006-03-15

DOS也不是MS发明的。对了,前些时候发现一个GNU/DOS 2006,在这里http://danq.lunarpages.com/gnudos/。

作者: shannleon   发布时间: 2006-03-15

引用:
作者: 独行侠
91年之前可能是没有Linux吧?
PC机是什么时候开发出来的呢?
PC机的前十年用的是什么系统呢?
PC机到今天和他的前十年架构变了吗?

就事论事,不要涉及那么多内容,这里不是linux dos谁好谁坏的辩论赛

感觉这兄弟是ms的忠实fans,microsoft的东西真的很牛x吗?历史很久远?....

您听说过unix吗?别说10年前,追溯到30年前也可以,ms在哪里?

ps;废话多了2句,请大家见谅!

作者: killads   发布时间: 2006-03-15

我怎么会让人觉得是MS的FANS?
呵呵!

本来就不是,我也一直在说引导的问题,这和题目“lilo的问题”应该还不算离题吧?
我最早用的就是UNIX,所以现在用LINUX,也是因为它是*NIX,用SLK也是因为它是LINUX里比较宗于UNIX(BSD)的。向来都认为简洁是第一位的。

之所以会来讨论Lilo,并不是说它好不好,或者应该用哪一个Loader,就是因为对系统引导过程还是很迷惑。

所以感谢木人的那一段关于引导系统的话。

作者: 独行侠   发布时间: 2006-03-16

我一直都是装在 mbr 该 boot=/dev/hda

作者: lxzsir   发布时间: 2006-03-17