第一章:介绍Linux
什么是Linux?
Linux是一个操作系统。最初它是由在芬兰赫尔辛基大学念书的Linus Torvalds作为一种业余爱好开发出来的。Linus对用于教学的一种小型的Unix操作系统-Minix很感兴趣,决定开发出超过Minix的操作系统。在1991年,他开始Linux的开发,那时候的Linux是0.02版。到了1994年,Linux内核的1.0版发布了。现在稳定的Linux内核版本是2.2版,开发工作还在继续进行。
Linux的开发是遵循GPL的,它的源代码任何人都可以免费获得。但是这并不是说Linux以及Linux的发行版本是免费的。只要源代码保持公开,开发人员是可以要求获得适当的报酬。Linux可以用在很多方面,包括:网络、软件开发和桌面平台。Linux常被认为是其它昂贵的操作系统的替代品。
因为Linux操作系统的稳定和健壮,以及很容易得到,它在世界上越来越流行。成千上万的程序员在根据自己的需要利用Linux的源代码。现在,有很多正在进行中的项目尝试着把Linux移植到不同的硬件平台上,或把Linux用于其它的用途。
为什么要用Linux
首先,它是免费的。尽管Linus Torvalds拥有Linux的商标。Linux的内核和相关的软件是遵循GPL的。这意味着你可以更改源代码,并靠买程序获利,但是最初的作者拥有版权而且你必须公布修改过的源代码。
尽管Linux在基于Intel平台的计算机上最流行,但是相对其它操作系统,它可以运行在更多的CPU和硬件平台上。其原因是:除了拥有很多天才的开发人员之外,Linux是带着源代码一起发行的,而且它的内核是可移植的。
现在软件和硬件行业的趋势是让用户去买更快的计算机,不断地扩充内存和增加硬盘空间。Linux并不受这些“增肥”趋势的影响,它甚至可以在内存不是很多的486计算机上运行得很好。
Linux很少死机,你可以停止那些有问题的进程,而让操作系统正常地运行下去。而且,Linux用的是最先进的内存管理技术,不会让你的操作系统失去控制,也根本不要经常重启操作系统。
如果需要安装的是一个服务器操作系统,那么Linux是有很多优势的,特别是比起其它操作系统,如Windows 2000,要便宜得多了。还有一个优点是:Linux几乎不受病毒的攻击。因为遵循GPL和开放源代码,基本上你可以获得操作系统以及操作系统上所有软件的源代码。
让我们排除对使用Linux的一些害怕和疑虑
Linux不过是一个象玩具一样的操作系统
可能微软公司希望这 娴模鞘率挡⒉皇窍笏窍M哪茄inux正被越来越多的Fortune 5000的企业、政府部门和消费者所采用。不信的话,去问一问IBM、Compaq、Dell、Apple Computer、Burlington Coast Factory、Amtrak、Virginia Power、NASA或成百上千万的Linux用户吧。
Linux没有技术支持
尽管有不少人认为Linux是没有技术支持的操作系统,但是每个Linux的发行版都提供12,000多页的文档。Linux的商业发行版,例如:RedHat Linux、Caldera、SuSE 和OpenLinux给注册用户提供安装支持,小企业和公司可以得到一些商业技术支持公司的服务支持。作为一个开放源代码的操作系统,你可以得到Linux的全部源代码。如果你遇到一些问题而且自己有解决问题的能力,就自己解决吧!不用为了得到技术支持等上很长的时间,许多严重的问题(如系统安全问题)可以在Internet上的Linux社团的帮助下几个小时内解决。
第二章:安装Linux服务器
了解你的硬件环境
了解硬件环境是成功安装RedHat Linux的关键。因此,必须用一些时间熟悉一下自己的硬件环境。准备好回答如下的问题:
1. 计算机上有几个硬盘?
2. 每个硬盘的大小?
3. 如果有两个以上的硬盘,哪一个是主盘?
4. 内存有多大?
5. 计算机上有SCSI卡吗?如果有,型号是什么?由哪家公司生产的?
6. 鼠标是什么类型的(串口,还是PS/2)?
7. 鼠标有几个键?
8. 如果是串口鼠标,那么连在哪个串口上?
9. 显卡的产商和型号,有多少显存?
10. 显示器的产商和型号?
11. 如果想把计算机连接到网络上,请再注意下面几个问题:
a) 计算机的IP地址?
b) 网络掩码?
c) 网关地址?
d) 域名服务器的地址?
e) 域名?
f) 主机名?
g) 网卡型号和厂商?
创建启动盘,引导Linux
如果你安装过很多次Linux,结果都失败了,那么可能需要一个修正过的软盘镜像。在这种情况下,可以去RedHat Linux的勘误网站去下载特殊的软盘镜像。
因为这是很少见的情况,应该尽可能地先试一下标准的安装软盘,只有在实在不能完成安装的情况下,才有必要去勘误网站看看。RedHat 6.1的光盘可以从光驱直接启动。如果你的计算机不支持直接启动,那么也可以在MS-DOS下创建启动盘,请用下面的命令(假定CD-ROM的盘符是d:,里面放的是RedHat Linux 6.1的光盘):
在windows下打开MS-DOS方式(开始 | 程序 | MS-DOS方式):
C:$#@62; d:
D:$#@62; cd dosutils
D:dosutils$#@62; rawrite
Enter disk image source file name: ..imagesoot.img
Enter target diskette drive: a:
Please insert a formatted diskette into drive A: and press --ENTER-- :
D:dosutils$#@62;
当rawrite.exe要求输入软盘镜像的时候,输入完整的boot.img的路径名,把软盘插入A驱。当程序问你把镜像写入哪个软盘驱动器的时候,输入a:。
RedHat Linux的勘误网站是:http://www.redhat.com/errata。
因为我们不从CD-ROM启动,而从软盘启动安装,所以把软盘插入A:驱,然后重新启动计算机。当出现boot:的时候,按下回车键,继续引导。
* 选择语言
* 选择键盘类型
* 选择鼠标类型
安装类型和方法
RedHat Linux 6.1有以下几种安装类型:
* GNOME工作站
* KDE工作站
* 服务器
* 自定义
有些安装类型(GNOME工作站、KDE工作站和服务器),简化了安装过程,但是失去了很多灵活性。
因此,我们建议你选择“自定义”安装,这样你可以选择安装什么服务器软件以及如何划分你的硬盘。
我们的目标是安装尽可能少的软件,以保证系统的高效率。而且,安装的软件越少,安全漏洞也就越少。
选择“Custom”,继续安装。
创建分区
警告
我们强烈建议在分区之前,先备份你当前的系统。为了保证系统高效、稳定和安全,我们还建议你象下面介绍的那样分区。我们这样分区是假定你要配置一个Web和Proxy服务器。
之所以在分区中有两个特殊的“/chroot”和“/cache”分区是因为:“/chroot”分区是为DNS服务器、Apache服务器和其它需要改变根目录的(chrooted)服务器准备的;“/cache”分区是为Squid Proxy服务器准备的。如果你不打算安装Squid Proxy服务器,那么不必创建“/cache”分区,但是请注意:Squid+Apache的结合会把服务器的性能和安全提高很多。
如果想让数量比较多的用户访问你的服务器,必须把“/tmp”和“/home”放在不同的分区上,这几乎是强制的。这样做可以避免分区被一些用户文件填满。把“/var”和“/usr”放在不同的分区也是一个好主意。使“/var”和其它分区分开也可以避免分区被填满。
在我们的分区安排中,特别保留了400MB的磁盘空间给改变根目录的(chrooted)程序,比如:Apache、DNS以及其它软件。这是必须的,因为Apache的DocumentRoot文件和其它可执行的程序都会被安装在这个分区上。注意:Apache chrooted目录在“/chroot”分区上的大小是和“DocumentRoot”文件的大小成正比的。如果不准备安装和使用Apache,可以把分区大小减小到10M,这10M是DNS服务器所必需的。
最小的分区要求
下面是Linux能够正常运行的最小分区要求。这样的分区安排甚至可以适用于只有512MB硬盘的老式486计算机机。当然,这种分区安排只是一个建议。
/ 35MB
/boot 5MB
/chroot 10MB
/home 100MB
/tmp 30MB
/usr 232MB
/var 25MB
Disk Druid分区工具
Disk Druid是RedHat Linux带的一个分区工具。选择“Add”添加新的分区,“Edit”改变分区,“Delete"删除分区,“Reset”恢复原来的分区状态。在添加一个新分区的时候,会出现一个窗口,要求你添上有关这个分区的一些必要的信息。要求添的信息是:
* Mount Point: 分区装载(mount)的目录
* Size: 分区的大小,以兆为单位
* Partition Type: 分区类型。Linux的文件系统要使用Linux native类型的分区,Linux交换分区请用Linux Swap类型。
如果你有一个SCSI硬盘,那么这个设备的名称将是“/dev/sda”;如果你有一个IDE硬盘,那么这个设备名称将是“/dev/hda”。如果很在意系统的高性能和稳定性,我们建议你用SCSI硬盘。
Linux分区的命名方式是字母和数字相结合的,这种命名方式很灵活也很直观。下面是一个小小的总结:
* 前两个字母:前两个字母表示设备类型,“hd”代表IDE硬盘,“sd”表示SCSI硬盘
* 第三个字母:这个字母是说明具体的设备。例如:“/dev/hda”表示第一个IDE硬盘;“/dev/hdb”表示第二个IDE硬盘。
请记住这些,这样给Linux分区的时候,会觉得容易一些也不会混淆。
交换分区
交换分区是用于虚拟内存的。如果计算机的内存少于16M,你必须创建交换分区。即使有更多的内存,我们还是建议你建立交换分区。交换分区最小必须等于计算机的内存,如果内存多于16M,最小只要16M就行了。交换分区最大大约为1GB,(Linux 2.2内核现在可以支持1GB的交换文件,如果多于1GB就是浪费)。注意:可以创建多于一个的交换分区,尽管只有在安装大型服务器的时候才有这个必要。尽量把交换分区放在硬盘驱动器的起始位置,因为一个磁盘的起始位置在物理上是在最外的柱面上,所以磁头每转一圈可以覆盖更大的面积。
下面是一个例子,教你怎么建立分区(这样的分区安排是安装我们在书中介绍的服务器所需要的),下面的例子是用Disk Druid的命令:
Add
Mount Point: /boot our /boot directory
Size (Megs): 5
Partition Type: Linux Native
Ok
Add
Mount Point: /usr our /usr directory.
Size (Megs): 1000
Partition Type: Linux Native
Ok
Add
Mount Point: /home our /home directory.
Size (Megs): 500
Partition Type: Linux Native
Ok
Add
Mount Point: /chroot our /chroot directory.
Size (Megs): 400
Partition Type: Linux Native
Ok
Add
Mount Point: /cache our /cache directory.
Size (Megs): 400
Partition Type: Linux Native
Ok
Add
Mount Point: /var our /var directory.
Size (Megs): 200
Partition Type: Linux Native
Ok
Add
Mount Point: our /Swap partition (leave the Mount Point Blank).
Size (Megs): 150
Partition Type: Linux Swap
Ok
Add
Mount Point: /tmp our /tmp directory.
Size (Megs): 100
Partition Type: Linux Native
Ok
Add
Mount Point: / our / directory.
Size (Megs): 316
Partition Type: Linux Native
Ok
分区完毕之后,你可以在屏幕上看到类似的信息:
Mount Point
Device
Requested
Actual
Type
/boot
sda1
5M
5M
Linux Native
/usr
sda5
1000M
1000M
Linux Native
/home
sda6
500M
500M
Linux Native
/chroot
sda7
400M
400M
Linux Native
/cache
sda8
400M
400M
Linux Native
/var
sda9
200M
200M
Linux Native
$#@60;Swap$#@62;
sda10
150M
150M
Linux Swap
/tmp
sda11
100M
100M
Linux Native
/
sda12
316M
315M
Linux Native
Drive
Geom [C/H/S]
Total (M)
Free (M)
Used (M)
Used (%)
sda
[3079/64/32]
3079M
1M
3078M
99%
现在,选择“Next”继续安装。分区创建完之后,安装程序会让你格式化分区。选择想要格式化的分区,选中“Check for bad blocks during format”选择框,按“Next”继续。这样就开始格式化分区,并且激活分区。Linux就可以使用这个分区了。
下一步如果选择安装LILO,你会看到LILO的配置。可以选择把LILO装在主引导扇区(MBR),或引导分区的第一个扇区。
在通常情况下,应该选择把LILO安装在主引导扇区。(如果你的计算机上装有NT,或一些多重引导程序,如System Command,你最好仔细看一遍LILO-HOWTO,以免不必要的损失)。然后,开始配置网络和时钟。接着,要输入root口令和进行安全验证的配置。不要忘了选上:
* Enable MD5 passwords
* Enable MD5 passwords
没有必要选择Enable NIS,因为我们不在这台服务器上安装NIS服务。