LinuxSir.cn,穿越时空的Linuxsir!

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

求:LINUX系统启动过程介绍文章!

[复制链接]
发表于 2004-7-16 17:14:37 | 显示全部楼层 |阅读模式
如题
谢谢
发表于 2004-7-16 17:17:21 | 显示全部楼层
发表于 2004-7-16 17:19:24 | 显示全部楼层
我写的:

双引导总结
很多问题是关于双启动的,我看有必要总结一下.

请注意文中
第一个硬盘的第一扇区
分区的第一扇区


一.启动原理

A.
第一个硬盘的第一扇区是MBR:
一扇区只有512byte,放置一小段程序及分区表。
由于空间很小,不足以存放程序以显示启动列表等功能,所以一般只是一个跳转指令。
对于Microsoft的MBR,这小段程序将检查分区表,并跳转到可启动分区第一扇区
对于Linux的MBR,直接跳转到指定分区的boot manager 程序

B.
Linux的boot manager 程序有 lilo和grub等,
在windows中则是分区的第一扇区,然后又跳到windows的boot manager 程序.

boot manager主要做以下工作:
显示选择菜单,确定加载什么系统,并将控制交给相应内核


这就是启动全过程.

二.windows

DOS的 fdisk/mbr 将重置 MBR, 默任是跳转到分区表中可引导分区的第一扇区.
所以如果windows在第一硬盘的第一分区, 就可以直接用dos的 fdisk/mbr修复,但要注意把分区设为可引导分区.

三.linux

linux中一般用grub, lilo快淘汰了.
1. grub

先运行:
grub

Grub 对硬盘和分区有自己的一套命名方法,格式是(hdn,m), n 表示硬盘序号,m 表示分区序号,两个都是从0开始计数。也就是说,在Grub里, hda1 是 (hd0,0),hdb2 是 (hd1,1)。不同的是,Grub不把CD-ROM驱动器看作硬盘,所以如果你的hdb是CDROM,第二个硬盘是hdc,第二个硬盘在Grub里的名字还是 (hd1).

按照上面的规则,看一下你的根分区应该叫什么名字。我们这里假设你的根分区是 hda4.

首先,告诉 Grub 在哪里找它的 stage{1,2} 文件 -- 在Grub里,你随时都可以用 Tab 来显示出可能的选择:

root (hd0,3)

-----------------------------------------------------------------
注意:
下面的命令将覆盖你现在的启动加载器。如果你不想这样,就别运行下面的命令。比如,你想使用某个第三方的启动加载器来管理MBR(主引导记录)。这时,你可能应该把grub安装到Linux分区的启动部份,命令类似于:setup (hd0,3).
这时如果把hda4设为可引导分区,然后 fdisk /mbr, hda4上的linux也是可以启动的.

"安装linux后,windows找不到了" 就是因为 grub 覆盖了MBR
"安装windows后,linux找不到了" 就是因为 windows 覆盖了MBR
-----------------------------------------------------------------

然后告诉Grub把它自己安装在hda的 MBR (主引导记录)上:

setup (hd0)

如果一切正常,Grub会告诉你它在/boot/grub下找到了所需要的文件,行了,大功告成:

quit

现在我们需要创建 menu.lst 文件,它定义了 Grub 的启动菜单:

# Begin /boot/grub/menu.lst
# 位置可能不同
# By default boot the first menu entry.
default 0

# Allow 30 seconds before booting the default.
timeout 30

# Use prettier colors.
color green/black light-green/black

title Red Hat
root (hd0,2)
kernel /boot/kernel-2.4.20 root=/dev/hda3 ro
initrd /boot/initrd-2.4.20
# 以上文件可能不同,看看 /boot/ 下的kernel名字是什么

另外,如果你同时还要启动 Windows,下面的菜单项可以做到:

title Windows
rootnoverify (hd0,0)
chainloader +1
# +1 就是第一硬盘的第二扇区,也就第一硬盘的第一分区
# 根据windows的实际位置调整,比如 rootnoverify (hd1,1)
#end menu.lst

重新启动就行了

2.lilo
lilo很久不用了,我简单写吧.
首先配置 /etc/lilo.conf
位置可能不同,用 locate lilo.conf 查找

然后运行
lilo --config(可能是这个参数)
重新启动就行了


所以用一般用linux 上的boot manger 较好, windows 肯定也能实现,但我从来没机会试,不过我想应该比较复杂,可能要去修改注册表.


四. 可能遇到的问题

1. 对新手而言,主要是配置文件的位置可能不一样,可以用locate filename 找一下。
2. 有时连文件名也不一样,比如grub 现在用menu.lst 而老版本可能是 grub.conf, 幸运的是redhad之流好像还没用新的。
发表于 2004-7-16 17:22:16 | 显示全部楼层
著名的"From Power Up To Bash Prompt" HOWTO
http://axiom.anu.edu.au/~okeefe/p2b/
 楼主| 发表于 2004-7-16 18:05:28 | 显示全部楼层

楼上的兄弟你的图片能不能换一下啊
感觉不太好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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