免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wolf2602
打印 上一主题 下一主题

Linux爱好者入门教程(随时更新)!! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-03-29 19:30 |只看该作者

Linux爱好者入门教程(随时更新)!!

LILO使用指南
作者:hubertzou@linuxaid.com.cn

计算机的最初启动是由BIOS控制的,在对一些硬件(如:内存、键盘等)初始化之后,它会试图加载硬盘的主引导记录(MBR)或软盘的引导扇区。MBR可通过两种方式运行,其一是定位到活动分区并加载相应的引导扇区,然后由引导扇区完成该分区内操作系统的基本组件的加载;其二是直接从一指定分区中加载信息,并通过它装入任一分区的操作系统,诸如 LILO、gurb,OS/2 boot loader及PartitionMagic等引导加载程序都可以配置成这种方式。软盘的引导扇区相当于硬盘活动分区的引导扇区,它通常用于装入软盘上的操作系统。


只要把LILO之类的多重引导器安装在MBR、活动分区或者引导软盘上,就能接管计算机的控制权,然后由多重引导器完成后继的引导过程。


LILO中建有一个引导表地址编码,借此它的引导程序就能定位到Linux的内核文件,这种地址编码既可以按照柱面/磁头/扇区(CHS)模式,又可以采用LBA的线性块号模式,因此,即使对某些SCSI控制程序LILO也能运转良好。

一,MBR还是Linux 的根分区

首先遇到LILO,估计应该在你安装Linux 的时候,你会被要求选择LILO的安装处,是MBR 还是Linux 的根分区。如果你有其他的启动管理程序例如Boot Magic 或者 System Commander 等,并且想使用他们,那么你应该把LILO 安装到Linux 的根分区。如果你选择使用LILO 作为启动管理程序,就可以选择MBR。如果你想在启动时传递参数给内核,也应该使用MBR。

使用LILO 作为启动程序后,机器启动后就会有LILO:的提示符,按下TAB 键,可以看到可以选择的操作系统列表。输入其中的操作系统标签名就可以启动到对应的操作系统,或者直接输入回车启动到缺省的操作系统。在 LILO.CONF中提及的映象可多达16个.


二,lilo.conf用法详解

我们来看一个LILO 启动的配置文件(/etc/lilo.conf)实例:

boot=/dev/hda3
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
message=/boot/message
default=new

image=/boot/vmlinuz-2.4.3
label=new
read-only
root=/dev/hda3

image=/boot/vmlinuz-2.2.19
label=linux
read-only
root=/dev/hda3

other=/dev/hda2
label=dos

本配置文件指定 LILO使用在/dev/hda路径上的主引导记录。启动时,引导装入程序会等待 5 秒的时间
让你按SHIFT键。如果未按,则上述提及的第一核心映象(vmlinuz-2.4.3),将被启动。如果按下了SHIFT键则引导装入程序就会问你要启动哪一个映象。 万一你忘了该选择启动哪个映象, 按[TAB]就会有个菜单给你选择。你在这时可以选定或者启动这个全新的内核,或者启动一个原来可靠的内核(vmlinuz-2.2.19),或者启动一个不同的操作系统。

由上可见,一个配置文件以一系列的全局选项开始),随之是不同映象选项的描述。在映象描述中的选项
将会覆盖全局选项所设定的内容。

全局选项部分


boot=boot-device

设定包含引导扇区的设备的名称(如一个硬盘的分区)。如果未指定该关键字引导扇区将从当前作为根文件系统安装的设备中读取(或者可能也会写入)。

compact

试图将相邻扇区的多次读取请求合并成一次读取请求。这样就大幅度地减少了读取时间,并使系统描述(MAP)更小。在从软驱进行读取时尤其要使用 compact 选项。

default=name

使用特别指定的映象作为默认的启动映象。如果未设置 defaul 选项,则将使用在该配置文件中最早出现的那个映象作为启动映象。


disc=device-name

定义特定硬盘的非标准参数。其对于定义 BIOS= 参数尤其有用。若你的硬盘的 BIOS 数据是 0x80 ,0x81(十六进制)等等,将无法判断哪一块 Linux 磁盘与哪一块 BIOS 磁盘相对应(因为这决定于 BIOS 的设置
和 BIOS 的类型)。因此若你采用的是非一般的安装,那你就需要说明 LINUX 磁盘和 BIOS 磁盘间的对应关
系。比如:


map=map-file

定位磁盘描述(MAP)文件。若未指定 map 选项,就会使用 /boot/map 文件。

message=message-file

指定一个含有在运行启动提示符前显示的信息的文件。在显示出 LILO 后等待按键的时间里不会有信息
显示。在信息中,用FF字符([Ctrl + L])清空本地显示器。信息文件的大小限制在65535字节以内。如果信息文件被改动或取消则必须重建磁盘描述(Map)文件。


prompt

不等待任何的按键事件发生就直接进入启动提示符模式。如设定了 promp选项而没设定 imeout 选项,则不能自行启动。


timeout=tsecs

为键盘输入设定一个超时选项(以10分之一秒为单位)。若在指定的时间内没有按键则第一个映象就会被自动启动。同样,如过用户停顿过长则密码输入就会被取消。默认的超时值是无限。



另外,内核配置参数 append,ramdisk,read-only,read-write,root以及vga都可在全局选项中被设定。如果在相应的核心映象的配置栏中没对其加以指定,该设定值其就会被用做默认的缺省值。

单一映象部分

一个单一映象或者以一行
image=pathname
开始(以提示含有一个LINUX内核的启动映象的文件或设备),或以一行
other=pathname
开始以提示启动其他独立的系统。


label=name

引导装入程序使用每个映像说明的主文件名(不包含路径)来标识该映像。通过设定变量label可使用不同的名称。

alias=name

通过指定一个别名可对同一个目录使用第二名称。

password=password

用密码保护映像。

restricted

若是在命令行被指定各参数则只在启动映像使需要输入密码。

内核选项部分

如果被启动的映像是一个LINUX内核,则可以将命令行参数传送到该内核。

append=string

将指定的各选项增加到传送于内核的参数行。其典型的运用于指定不能完全自检或彻查对其有危害的硬盘
的参数。比如:

append="hd=64,32,202"


ramdisk=size

该选项指定了任选RAM磁盘的大小。0 表示不应创立任何RAM磁盘。若不指定该参数,则使用在根文件系统中建立的RAM磁盘大小。

read-only

采用read-only 选项时,系统会把根分区挂接为只读方式,推荐采用这个选项,因为 fsck 程序要求文件系统只读。但不用担心你的根分区会不能写入了,相反,系统一旦启动就会把根分区挂接为读写方式。

read-write

其指定根文件系统应以可读写方式装载。

root=root-device

该参数指定应作为根文件系统装载的设备。如果目前使用的是指定的名称,则根驱动器就设在根文件系统目前所在的设备上。如果根设备被 -r 参数所修改,则使用相应的设备。若未指定 oot 参数,则使用包含核心映象的根设备设置(该设置是编译内核时在内核的 Makefile 文件中用 ROOT_DEV 变量设定的,并稍后可用 rdev(8)程序修改)

vga=mode

其指定在启动时应选择的 VGA 文本模式。 下列数值可被识别 (忽略大小写):

normal:选择普通 80x25 文本模式。

extent(或ext):选择 80x50 文本模式。

ask:停止并要求用户的输入(在启动时)

:使用相应的文本模式。在启动时用vga=ask选项或按[Enter]都可获得一个可用模式的列表。

若未指定该参数,则使用在核心映像中获得的 VGA 文本环境。(该设置是编译内核时在内核的 makefile文件中用 SVGA_MODE 变量设定的)

LILO 也可以让你手工在LILO 提示符下传递这些参数。例如:

LILO: linux single

就是告诉Linux 启动Linux 进入单用户模式。在引导区损坏时,可以从软盘启动,然后指定硬盘的根来修复硬盘引导扇区。

LILO: linux root=/dev/hda3


LILO 引导其他类型的操作系统和引导Linux 一样配置,但是更加简单:

other = /dev/hda3
label = dos
table = /dev/hda

other 指明操作系统所在的分区,同样的和Linux 下的image 一样也需要给定一个标签(label),table 选项指向包含分区表的设备,这个选项必不可少,因为LILO 会从这个这个分区表寻找对应的分区信息,然后把他传递给要启动的操作系统。

对lilo.conf 的任何改变都要求重新运行 /sbin/lilo ,保证最新的改变能写入分区。
另外,如果你升级内核或者重构了 initrd 映像,也需要重新运行 /sbin/lilo。

运行/sbin/lilo 后,可以看到如下信息:

Added linux *
Added dos
表示各种映像已经写入分区,带有 * 的分区是目前的缺省引导分区。
可以用 -D 参数改变缺省引导分区:

/sbin/lilo -D dos
Added linux
Added windows *
可以看到缺省分区已经成为 windows了。

install=boot-file

将指定的文件作为新的引导扇区来安装。若未设置 install 选项,则将boot/boot.b作为默认缺省值使用。

linear

产生线性扇区地址而非“扇区/磁头/柱面”地址。线性地址不依赖于磁盘的分区结构,且在运行时被翻译。注意如果使了linear选项则可能使启动盘不能被移植,这是因为BIOS中用于决定磁盘分区结构的服务对软盘的作用不稳定。在对大硬盘使用linear选项时,由于3D扇区地址在启动前是未知的,故 /sbin/lilo 可能会产生对不可访问的磁盘区域的一个参考。

lock

允许自动记录引导命令行,作为以后启动的默认缺省值。这样,在手工取消之前lilo会锁定一个选项。


loader=chain-loader


该参数指定了将使用的连锁装入程序。使用默认缺省/boot/chain.b。如果是从其他设备而非第一硬盘或软盘启动则必须指定连锁装入程序。

三,关于lilo的问题


<一>;、先装了Windows,再装Linux时,不能安装LILO。这是大多数Linux新手的问题;


有些BIOS不能识别大于8.4G的硬盘,旧的LILO不能识别位置大于1024柱面的系统内核(kenerl)。因此可能的问题是:LILO被装入MBR,而为Linux准备的硬盘分区远在1024柱面之外,因此Linux不能引导;LILO被装入Linux的root分区(根分区),而它恰好在8.4G之外,又挂了!

解决方案:

也许你已经安装了Linux,不要delete它,改改还能用!好,现在开始:

1. 用PartitionMagic5.0在第一个硬盘的开始分出个10M的ext2分区,格式化。最好把为Linux准备的分区也一同准备好,省得以后麻烦。

2. 用Loadlin或Linux的boot和rescue盘引导系统。mount那个10M的分区--/dev/hda1,假设我使用boot和rescue盘,mount到/mnt/tmp。把/boot/*和内核映象文件拷贝到/dev/hda1相同的目录下,编辑/etc/lilo.conf,在所有的目录前加上/dev/hda1的mount路径,并且将LILO安装到/dev/hda1。

把lilo.conf中的
boot = /dev/hda
install= /boot/boot.b
message = /boot/bootmsg
map= /boot/map
image = /boot/vmlinuz-2.2.13

修改为
boot = /dev/hda1
install= /mnt/tmp/boot/boot.b
message = /mnt/tmp/boot/bootmsg
map = /mnt/tmp/boot/map
image = /mnt/tmp/boot/vmlinuz-2.2.13

调用lilo命令,重新安装LILO。重起系统,就完了。
记住,要卸载Linux,可以用DOS下的fdisk /mbr清除MBR中的LILO。


<二>;、多重引导NT、9x和Linux,并且想要比LILO更有好的界面,Linux+NT-Loader-mini-HOWTO中有详细的介绍;


主要的问题是如何将Linux的引导记录写入bootsect.???文件,这里假设你已经成功地安装好Windows9x与NT了。

(这里假设Linux安装于第一个逻辑分区,在Linux下为/dev/hda5,Windows9x安装于第一个主分区,在Linux下为/dev/hda1,WindowsNT安装于第二个主分区,在Linux下为/dev/hda2。)

解决方案:

用Loadlin或Linux的boot和rescue盘(指BluePoint光盘的启动选项,RedHat里好像没有)引导Linux系统。(loadlin比较好,rescue盘上可能没有mtools,只能mount cp umount)用一下几句命令创建该文件:
dd if=/dev/hda5 of=/root/bootsect.lix bs=512 count=1
插入软盘,
mcopy /root/bootsect.lix a:
重新引导系统,进入DOS会快一些看到你的成果,进入ntldr所在硬盘分区的根目录,或者说安装WindowsNT前可引导的硬盘分区的根目录(这里是Windows9x)。拷贝软盘上的bootsect.lix文件。去除boot.ini的只读、隐藏属性。在最后添加c:ootsect.lix="Go to Linux"。存盘退出,添加boot.ini的只读、隐藏属性。重新引导系统,再试试看!注意在对Linux内核的作任何修改后,都必须重作以上步骤,才能正确引导Linux系统。

<三>;、安装多余一个的Linux系统;
主要的问题还是如果多个Linux的LILO或根分区不能被BIOS找到,系统就会挂起!这里假设BluePoint Linux安装于第一个逻辑分区,在Linux下为/dev/hda5,RedHat Linux安装于第二个逻辑分区,在Linux下为/dev/hda6。)

解决方案:

我们就同样的建个10M的分区。将两个Linux的引导文件多拷贝到此分区,通常是/boot下的一切,有可能还有/vmlinuz--内核文件,依Linux的发行版本而不同。建议将其分装入两个目录。假设为/bootBlurPoint和/bootRedHat。
编辑lilo.conf文件:

原始
boot = /dev/hda
install= /boot/boot.b
message = /boot/bootmsg
map = /boot/map

image = /boot/vmlinuz-2.2.13
label = linux
root = /dev/hda1



修改为
boot = /dev/hda1
install= /mnt/tmp/bootBluePoint/boot.b
message = /mnt/tmp/bootmsg
map = /mnt/tmp/bootBluePoint/map

image = /mnt/tmp/bootBluePoint/vmlinuz-2.2.13
label = BluePoint
root = /dev/hda5

image = /mnt/tmp/bootRedHat/vmlinuz
label = RedHat
root = /dev/hda6

<四>;,从主引导记录中移走LILO并重存原先的windows MBR

1. c:>; fdisk /mbr
2. #/sbin/lilo -u /dev/hda
3. #dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1
4. #cat /boot/boot.0300 >; /dev/hda

注意:只有你原先安装windows 95后再安装Linux时,/boot/boot.0300才是你原先的windows 95 MBR。

<五>;,重存LILO到MBR

1. 用安装软盘或光盘启动到boot:

boot: vmlinuz root=/dev/hdXY (如: hda1 )
启动完成后运行 #/sbin/lilo

2. 用两张软盘启动后:
#mount -t ext2 /dev/hda1 /mnt
#ln -s /mnt/boot boot
#ln -s /mnt/etc/lilo.conf /etc/lilo.conf
#/mnt/sbin/lilo

<六>;,拷贝LILO到软盘

1. /sbin/lilo -b /dev/fd0
2.用Redhat 安装盘引导到 boot:
boot: vmlinuz root=/dev/hdXY (hdXY 为你的根分区)
update /etc/lilo.conf
root=/dev/fd0
boot=/dev/fd0
再运行:#/sbin/lilo -v

<七>;,制作一张Redhat Linux 引导盘

#mkbootdisk --device /dev/fd0 2.2.19

<八>;,拷贝内核至软盘,让软盘单独引导Linux并挂上硬盘上的根文件系统。

#fdformat /dev/fd0H1440
#dd if=/boot/vmlinuz of=/dev/fd0
#rdev /dev/fd0 /dev/hda1

四,lilo的启动错误显示分析

<1>;当LILO装入它自己的时候,显示单词"LILO": 每完成一个特定的过程显示一个字母。如果LILO在某个地方失败了,屏幕上就停留几个字母,以指示错误发生的地方。在技术文档中有更详细的描述。 (注:LILO不是一个程序,而是一组程序) 注意,如果磁盘发生瞬间故障,可能会在第一个字母"L"后插入一些十六进制数字。除非LILO停在那里并不停地产生错误码流,否则并不说明有严重问题。

<2>; (<启动后什么也不显示> LILO一点也没装入。LILO可能没有安装,或分区没有被激活。

<3>; L <错误码>; ... LILO的第一部分已经被装入并运行了,但它不能装入第二部分的引导程序.两位数字的错误码指示问题的类型(请看后面"磁盘错误码"。 这种情况通常是在介质访问失败或硬盘几何参数(CHS, chs)不匹配。
LI LILO的第一阶段已经装入了LILO的第二部分,但是执行它失败.错误的原因是硬盘几何参数不匹配或
/boot/boot.b被移 动后没有重 新运行映射(map)安装程序。

LIL 第二阶段已经启动,但它不能从映射(map)文件读出描述符表(descriptor table)典型原因是介质
出错或硬盘几何参数不匹配。

LIL? LILO的第二部分被装入到错误的地址。典型原因是硬盘几何参数微妙的不匹配或/boot/boot.b被
移动而没有运行映射安装程序。

LIL- 描述符表被破坏了。这可能是/boot/map被移动后没有运行映射安装程序或几何参数不匹配。

LILO LILO的所有部分都被成功地装入。

1010101010 分区情况已经改变却没有重新安装LILO,据说超频也会出这种情况。

磁盘错误码:

0x00 "内部错误"。由LILO扇区读子程序产生.可能是因为被破坏的文件,重建map文件试试看。另一个原
因也许是,当使用linear参数时去访问超出1024的柱面。

0x01 "非法命令"。它不该发生,如果它出现了,意味着LILO去访问BIOS不支持的硬盘。整理这份文档的时
候,我的一个朋友就遇到了L010101...的错误,因为他把Linux装在第二个IDE口上(/dev/hdc),加上Disk参数就好了。

0x02 "没找到地址标记"。通常是介质问题,多试几遍看看。

0x03 "写保护错"。仅在写操作时出现。

0x04 "扇区未找到"。典型的原因是硬盘参数不匹配。

0x06 "激活顺序改变"。这应该是短暂的错误,再试一次。

0x07 "无效的初始化"。BIOS没有适当地初始化硬盘,热启动一次或许有帮助。

0x08 "DMA超出限度"。这不应当发生,重新启动。

0x09 "DMA试图越过64k边界"。这不应当发生,建议忽略COMPACT参数。

0x0C "无效的介质"。这不应当发生,重新启动看看。

0x10 "CRC错误"。检测到介质错误。建议多启动几次,运行map安装程序,把map文件从坏块写到正常的介
质上。
0x11 "ECC矫正成功"。读错误发生然后被矫正,但是LILO并不知道这个情况,终止了启动过程.

0x20 "控制器错误"。不应该发生。

ox40 "定位失败"。这可能是介质问题,重新启动试试。

0x80 "磁盘超时"。磁盘或驱动器没有准备好。介质坏了或磁盘没有转,如果从软盘启动则可能是没有关门。

0xBB "BIOS错误"。这不应该发生,如果反复发生,则考虑移去COMPACT参数或加上/取消LINEAR参数。如果在写操作过程中发生错误,则在错误码前有个前缀"w"。尽管写错误并不影响启动过程,但它们指示一些错误,因为它们暗示系统中存在错误,一个好的建议是重新配置LILO成只读(read-only)。


五,忘记密码?

系统启动结束后您将看到一个基于控制台的登录画面或者基于 XDM 的登录画面。以 root 身份登录,使用您安装时设定的密码。如果您忘记了这个密码,

您可以使用single或者emergency boot选项。 在LILO boot:提示符下敲入linux single以boot进入单用户模式。在单用户模式下,您的本地文件系统将被安装而网络服务将不会被激活。在紧急事务模式下,系统几乎没有做任何设置工作,仅仅root根文件系统被安装,而且是只读方式。

进入单用户模式后,您可以使用passwd改变root的口令。


六,如果lilo 被损坏或者不能启动时,如何紧急启动系统?


您可以用光盘或安装软盘启动,出现 boot: 提示符后键入:

vmlinuz root=/dev/linuxrootpartition noinitrd

其中,root= 后面填入您的linux root分区的分区号,例如:

vmlinuz root=/dev/hda3 noinitrd

回车之后,即可进入您的linux系统,您可以编辑/etc/lilo.conf 编辑之后,运行 /sbin/lilo 即可完成。

论坛徽章:
0
12 [报告]
发表于 2003-03-29 19:33 |只看该作者

Linux爱好者入门教程(随时更新)!!

原帖由 "zerocool2003" 发表:
      
呵呵,我的是7.2版的,在安装时,插入安装盘(在98下),但是,只走了几步,就无发安装了,我进了ms dos 删除了一个逻辑盘(要安装的目标盘),之后再安装,但,装好后,只能用text模式,无发启动X..........


看看这个或许又用!!

Linux安装的几点经验

Linux操作系统的好处许多文章已经介绍过了,想必你一定知道,前不久,我在我的PC上安装了一套Linux操作系统(版本是Red Hat Linux 2.0),安装过程中有一些收获和体会,在此与各位交流一下,也算是体现一下Linux所倡导的共享精神。
  
1. 安装前一定要对硬盘规划好,即确定好Linux安装在哪个分区。因为Linux支持的分区格式:Linux Native(根分区)和Linux Swap(数据交换区),与Win 9x支持的分区格式FAT、Windows NT支持的分区格式NTFS,他们之间互不兼容。也就是说,如果你还要继续使用Win 9x、NT的话(相信大多数人会是这么做的),Linux就必须安装在单独的分区下。另外,Linux应安装在硬盘分区的最后一个扩展分区。例如:原来分区为C、D、E、F,一定要将Linux安装在F盘。如果你将Linux安装在了D盘,那么进入Win 9x后,原来的E盘成了D盘,F盘成了E盘。虽然各盘的软件都还能运行,但是桌面、开始菜单的快捷键却都已无效。更麻烦的是注册表内还是原先E、F盘的信息。
  2. Linux的Swap分区必须保证有60MB。Native 分区的大小由你要安装的Linux组件多少决定,但最少要保证240MB。由于现在Linux的应用软件比较少,Native分区也不必留的太大。我建议Native分区不要超过550MB。
  3. 由于安装过程中会询问一些有关硬件的信息,因此要提前搜集好PC硬件方面的信息。硬件信息主要有显示器、显卡、鼠标、键盘等。特别是显示器的信息,将直接决定你安装Linux后,使用图形界面程序fvwm95的效果。
  4. Linux的安装比Windows的安装麻烦得多。首先,安装时它不支持鼠标,你必须频繁使用Tab、箭头、空格、回车等键做出选择。另外,如果你对满屏的英文没有十分把握,你手边最好放本字典。
  5. Linux系统区分大小写。在安装、使用中输入命令时,请注意大小写。
  6. 下面谈谈Linux、Win 9x、NT多重启动方法。首先,在安装Linux的过程中,要制作好一张启动盘(Bootdisk)。安装过程中,系统会要你选择Linux的启动方法(Lilo Installation)。这里有两种方法选择:Master Boot Record和First Sector of Boot Partition。第一种方法是直接从C盘,通过Linux系统的Lilo多重引导系统,选择某种操作系统启动;第二种方法是通过启动盘启动。我建议使用第二种方法启动。这是因为毕竟现在大多数情况我们还是要使用Win 9x(或NT)系统。这样,平时启动时直接由C盘进入到Windows系统(同时装有Win 9x、NT、MS-DOS时,可通过NT的多重引导程序,做出选择,进入其中一个系统),如果要运行Linux系统,将Linux启动盘放入软驱,由它引导进入。 Linux安装完成后,等待你的是深入学习它,了解它的好处。祝你在这个“新星”中,实现自己的梦想。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
13 [报告]
发表于 2003-03-29 21:21 |只看该作者

Linux爱好者入门教程(随时更新)!!

建议置顶!!或加精华!

谢谢wolf2602兄,贴了不少实用的文章,给包括我在内的新手少走了弯路!!

论坛徽章:
0
14 [报告]
发表于 2003-03-30 10:32 |只看该作者

Linux爱好者入门教程(随时更新)!!

加为精华吧!!!!!!!!!!

论坛徽章:
0
15 [报告]
发表于 2003-03-30 13:32 |只看该作者

Linux爱好者入门教程(随时更新)!!

我的是RH8,不知有没有关于grub的资料?

论坛徽章:
0
16 [报告]
发表于 2003-03-30 13:46 |只看该作者

Linux爱好者入门教程(随时更新)!!

[quote]原帖由 "xuehua"]我的是RH8,不知有没有关于grub的资料?[/quote 发表:

有时间给你找找,今天很忙!

谢谢大家支持!!!!   

论坛徽章:
0
17 [报告]
发表于 2003-03-30 16:48 |只看该作者

Linux爱好者入门教程(随时更新)!!

##################
# GRUB的优点 #
##################
GRUB 是引导装入器(boot loader) -- 它负责装入内核并引导 Linux 系统。GRUB 还可以引导其它操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT 和 2000。尽管引导操作系统看上去是件平凡且琐碎的任务,但它实际上很重要。如果引导装入器不能很好地完成工作或者不具有弹性,那么就可能锁住系统,而无法引导计算机。另外,好的引导装入器可以给您灵活性,让您可以在计算机上安装多个操作系统,而不必处理不必要的麻烦。
GRUB 是一个很棒的boot loader。它有许多功能,可以使引导过程变得非常可靠。例如,它可以直接从 FAT、minix、FFS、ext2 或 ReiserFS 分区读取 Linux 内核。这就意味着无论怎样它总能找到内核。另外,GRUB 有一个特殊的交互式控制台方式,可以让您手工装入内核并选择引导分区。这个功能是无价的:假设 GRUB 菜单配置不正确,但仍可以引导系统。哦,对了 -- GRUB 还有一个彩色引导菜单。

更令人惊讶的是,这是一个自由软件!!!



##################
# GRUB菜单 #
##################
先来看一个例子,这是位于/boot/grub/目录下的menu.lst文件。
此文件将在开机是产生一个菜单,包含有Debian linux,Windows2000,RedHat linux和 Mandrake linux,共四个选择项。我一共分了8个区,一个fat16(0x6),一个ntfs(0x7),三个ext2fs分区(0x83),一个swap分区(0x82)。ntfs用来装win2000,三个ext2fs装了三个linux,c盘fat16分区没有装任何东西。
#例子由此开始

######################
# #
# 一个GRUB configure 的例子 #
# #
######################

timeout 10
default 2


# -->; Debian linux <--

title Debian linux
root (hd0,2)
kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro
initrd /boot/initrd-2.2.18.gz


# -->; Debian END <--

# -->; Windows 菜单选项 <--

title Windows2000
root (hd0,0)
chainloader +1

# -->; Winddows 结束 <--

# -->; RedHat linux 菜单选项 <--

title RedHat linux
root (hd0,
chainloader +1 # 在硬盘主引导分区装了lilo,所以也用了chainloader。

# -->; RedHat linux 结束 <--

# -->; Mandrake linux 菜单选项 <--

title Mandrake linux
root (hd0,5)
kernel /boot/vmlinuz-2.4.3-20mdk root=/dev/hda6 ro
initrd /boot/initrd-2.4.3-20mdk.img

# -->; Mandrake linux 结束 <--


#例子到此结束

以符号井"#"开头的行表示被注释掉,没有任何意义。

timeout表示默认等待的时间,这儿是10秒钟。超过10秒,用户还没有作出选择的话,系统将自动选择默认的操作系统。

默认的操作系统就是由default控制的。default后加一个数字n,表明是第n+1个。需要注意的是,GRUB中,计数是从0开始的,第一个硬盘是hd0,第一个软驱是fd0,等等。所以,default 2 表示默认的操作系统在这儿是 Redhat linux。

接下来,正如你所想象的,title表示的是“Debian linux”菜单项。root (hd0,2)表示第一个硬盘,第三个分区。这儿的root 于linux的root分区及其不同,此root非彼root也!

在 Linux 中,当谈到 "root" 文件系统时,通常是指主 Linux 分区。但是,GRUB 有它自己的 root 分区定义。GRUB 的 root 分区是保存 Linux 内核的分区。这可能是您的正式 root 文件系统,也可能不是。我们讨论的是 GRUB,需要指定 GRUB 的 root 分区。进入 root 分区时,GRUB 将把这个分区安装成只读型,这样就可以从该分区中装入 Linux 内核。GRUB 的一个很“酷”的功能是它可以读取本机的 FAT、FFS、minix、ext2 和 ReiserFS 分区。

到目前为止,您可能会感到一点疑惑,因为 GRUB 所使用的硬盘/分区命名约定与 Linux 使用的命名约定不同。在 Linux 中,第一个硬盘的第五个分区称作 "hda5"。而 GRUB 把这个分区称作 "(hd0,4)"。GRUB 对硬盘和分区的编号都是从 0 开始计算。另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。现在,可以发现如果要引导 Linux 硬盘 hda5,应输入 "root (hd0,4)"。

知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。
kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro说明/boot/vmlinuz-2.2.18 就是要载入的内核。后面的都是传递给内核的参数。root=/dev/hda3就是linux的硬盘分区表示法,ro是以readonly的意思。
initrd用来初始的linux image,并设置相应的参数。

是不是感觉很简单啊!再来看一看windows的定义段吧。
这里,我添加了一项来引导 Windows2000。要完成此操作,GRUB 使用了“链式装入器”(chainloader)。链式装入器从分区 (hd0,0) 的引导记录中装入 win2000 自己的引导装入器,然后引导它。这就是这种技术叫做链式装入的原因 -- 它创建了一个从引导装入器到另一个的链。这种链式装入技术可以用于引导任何版本的 DOS 或 Windows。

我的RedHat linux在硬盘主引导分区装了lilo,所以也用了chainloader。

GRUB的配置文件要简单就这么简单,如果你要更个性化一点,试一试把“color light-gray/blue ”加在default语句的下面,下一次启动GRUB时,看看有什么变化,再试一试“color light-blue/red",惊喜吗? 有趣吧!

######################
# GRUB的交互性 #
######################




GRUB 最好的优点之一就是其强健的设计 -- 在不断使用它时请别忘了这点。如果更新内核或更改它在磁盘上的位置,不必重新安装 GRUB。事实上,如有必要,只要更新 menu.lst 文件即可,一切将保持正常。

只有少数情况下,才需要将 GRUB 引导装入器重新安装到引导记录。首先,如果更改 GRUB root 分区的分区类型(例如,从 ext2 改成 ReiserFS),则需要重新安装。或者,如果更新 /boot/grub 中的 stage1 和 stage2 文件,由于它们来自更新版本的 GRUB,很有可能要重新安装引导装入器。其它情况下,可以不必理睬!

GRUB的最大的特点就是交互性特别强。在开机时,按一下“c”,将进入GRUB 控制台。显示如下:

GRUB version 0.5.96.1 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]

grub>;

欢迎使用 GRUB 控制台。现在,再研究命令:
我将通过GRUB 控制台绕过lilo来启动RedHat linux,

grub>; root (h

现在,按一次 Tab 键。如果系统中有多个硬盘,GRUB 将显示可能完成的列表,从 "hd0" 开始。如果只有一个硬盘,GRUB 将插入 "hd0,"。如果有多个硬盘,继续进行,在 ("hd2" 中输入名称并在名称后紧跟着输入逗号,但不要按 Enter 键。部分完成的 root 命令看起来如下:

grub>; root (hd0,

现在,继续操作,再按一次 Tab 键。GRUB 将显示特定硬盘上所有分区的列表,以及它们的文件系统类型。在我的系统中,按 Tab 键时得到以下列表:

grub>; root (hd0, (tab,按tab一下键)
Possible partitions are:
Partition num: 0, Filesystem type is fat, partition type 0x6
Partition num: 2, Filesystem type is ext2fs, partition type 0x83
Partition num: 4, Filesystem type unknown, partition type 0x7
Partition num: 5, Filesystem type is ext2fs, partition type 0x83
Partition num: 6, Filesystem type is fat, partition type 0xb
Partition num: 7, Filesystem type is fat, partition type 0xb
Partition num: 8, Filesystem type is ext2fs, partition type 0x83
Partition num: 9, Filesystem type unknown, partition type 0x82

如您所见,GRUB 的交互式硬盘和分区名称实现功能非常有条理。这些,只需要好好理解 GRUB 新奇的硬盘和分区命名语法,然后就可以继续操作了
grub>; root (hd0,
现在已安装了 root 文件系统,到装入内核的时候了

grub>; kernel /boot/vmlinuz-2.4.2 root=/dev/hda5 ro
[Linux-bzImage, setup=0x1200, size=0xe1a30]

您已经安装了 root 文件系统并装入了内核。现在,可以引导了。只要输入 "boot",Linux 引导过程就将开始。是不是很cool啊,GRUB的menu.lst更像一个linux下的脚本程序。


#####################
# GRUB启动盘 #
#####################
要制作引导盘,需执行一些简单的步骤。首先,在新的软盘上创建 ext2 文件系统。然后,将其安装,并将一些 GRUB 文件复制到该文件系统,最后运行 "grub" 程序,它将负责设置软盘的引导扇区。准备好了吗?

将一张空盘插入 1.44MB 软驱,输入:

# mke2fs /dev/fd0
创建了 ext2 文件系统后,需要安装该文件系统:

# mount /dev/fd0 /mnt/floppy
现在,需要创建一些目录,并将一些关键文件(原先安装 GRUB 时已安装了这些文件)复制到软盘:

# mkdir /mnt/floppy/boot
# mkdir /mnt/floppy/boot/grub
# cp /boot/grub/stage1 /mnt/floppy/boot/grub
# cp /boot/grub/stage2 /mnt/floppy/boot/grub
再有一个步骤,就能得到可用的引导盘。

在linux bash中,从 root 用户运行“grub”,该程序非常有趣并值得注意,因为它实际上是 GRUB 引导装入器的半功能性版本。尽管 Linux 已经启动并正在运行,您仍可以运行 GRUB 并执行某些任务,而且其界面与使用 GRUB 引导盘或将 GRUB 安装到硬盘 MBR 时看到的界面(即GRUB控制台)完全相同。
在 grub>; 提示符处,输入:

grub>; root (fd0)
grub>; setup (fd0)
grub>; quit

现在,引导盘完成了。
如果要把GRUB装到硬盘上,也很容易。这个过程几乎与引导盘安装过程一样。首先,需要决定哪个硬盘分区将成为 root GRUB 分区。在这个分区上,创建 /boot/grub 目录,并将 stage1 和 stage2 文件复制到该目录中,可以通过重新引导系统并使用引导盘,或者使用驻留版本的 GRUB 来执行后一步操作。在这两种情况下,启动 GRUB,并用 root 命令指定 root 分区。例如,如果将 stage1 和 stage2 文件复制到 hda5 的 /boot/grub 目录中,应输入 "root (hd0,4)"。接着,决定在哪里安装 GRUB -- 在硬盘的 MBR,或者如果与 GRUB 一起使用另一个“主”引导装入器,则安装在特定分区的引导记录中。如果安装到 MBR,则可以指定整个磁盘而不必指定分区,如下(对于 hda):

grub>; setup (hd0)

如果要将 GRUB 安装到 /dev/hda5 的引导记录中,应输入:

grub>; setup (hd0,4)

现在,已安装 GRUB。引导系统时,应该立即以 GRUB 的控制台方式结束(如果安装到 MBR)。现在,应创建引导菜单,这样就不必在每次引导系统时都输入那些命令。



小结:在这里只是介绍了 GRUB 的一部分。例如,可以使用 GRUB 来执行网络引导,引导 BSD 文件系统,或更多操作。另外,GRUB 有许多配置和安全性命令也很有用。如需所有 GRUB 功能的完整描述,请阅读 GRUB 出色的 GNU 文档。只要在 bash 提示中输入 "info grub" 就可以阅读该文档。


有用的一些信息:xosl是一个支持鼠标的图形界面boot loader,可以于system command和boot manager相比,
网址是www.xosl.org。

GRUB的下载:ftp://alpha.gnu.org/gnu/grub/

论坛徽章:
0
18 [报告]
发表于 2003-03-31 00:49 |只看该作者

Linux爱好者入门教程(随时更新)!!

请问linux上有没有代理服务器软件象windows上的wingate一样的东西.

我宿舍用铁通网,要开浏览器登陆一个jsp网页,填上账号,密码才可以浏览网页和下载,很麻烦,,我在linux那里可以看到登陆界面,但是按确定后没有反应,不会跳转,还是原来的界面,,所以现在linux不可以上网,我用的是redhat8,请问有没有方法可以解决.

打开页面后,输入账号和密码,按submit没有反应,即submit(提交按钮)好像按不了的样子,反正没有反应,是不是要安装什么插件,还是什么软件,我知道在wingdows那里要安装java虚拟机,linux那里要吗

我可以想到的解决方法是通过代理服务器软件,通过我宿舍其他同学的机来上网,请问在linux上怎样搞.多谢.

论坛徽章:
0
19 [报告]
发表于 2003-03-31 08:02 |只看该作者

Linux爱好者入门教程(随时更新)!!

请问linux上有没有代理服务器软件象windows上的wingate一样的东西.

我宿舍用铁通网,要开浏览器登陆一个jsp网页,填上账号,密码才可以浏览网页和下载,很麻烦,,我在linux那里可以看到登陆界面,但是按确定后没有反应,不会跳转,还是原来的界面,,所以现在linux不可以上网,我用的是redhat8,请问有没有方法可以解决.

打开页面后,输入账号和密码,按submit没有反应,即submit(提交按钮)好像按不了的样子,反正没有反应,是不是要安装什么插件,还是什么软件,我知道在wingdows那里要安装java虚拟机,linux那里要吗

我可以想到的解决方法是通过代理服务器软件,通过我宿舍其他同学的机来上网,请问在linux上怎样搞.多谢.

论坛徽章:
0
20 [报告]
发表于 2003-03-31 17:05 |只看该作者

Linux爱好者入门教程(随时更新)!!

楼上的朋友,我也在找相关软件那,还没找到呢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP