分类: LINUX
2008-04-26 13:59:02
Filed Under ,
也许你看到下面密密麻麻的文字时,就开始头大了——这算哪门子零命令啊!不过请允许我在这里啰唆一番,也许你对下面即将介绍的知识已经了如指掌,但是我还是建议你简单的浏览一番,或者就当是为我挑错。而如果你是第一次安装Ubuntu,下面的这些准备知识是对于顺利地安装Ubuntu必要的。本文并不打算成为百科全书式的介绍,因此下面涉及到很多内容是非常粗略的。想深入了解更多知识,你可以请教搜索引擎,而我的唯一建议是,请尽量看新的文章。的发展日新月异,老旧的Linux文档很可能会对读者认识Linux产生误导。
1. 硬盘分区
一块硬盘可以分为四个主分区,或三个主分区加上一个扩展分区。扩展分区其实只是一个容器,我们实际上并不直接使用扩展分区。在扩展分区内,我们可以继续划分逻辑分区。一般的认为在一个扩展分区内,能分出无数个逻辑分区。正因为有了逻辑分区,一块硬盘才能被分成很多个分区。
另一个可能涉及的概念是活动分区。电脑加电启动时,BIOS会寻找硬盘上有活动分区标识的分区寻找操作系统引导程序。如果一块硬盘上没有活动分区,则即使这块硬盘上有引导程序和完好的操作系统,也将无法成功启动。(关于什么是引导程序将在后面介绍。)一块硬盘上只能有一个活动分区,而且只有主分区才能成为活动分区。
2. Linux中的硬盘分区
与Windows不同,Linux并不是用C, D, E, F等盘符来标识每一个分区的,而是用一系列设备文件来标识——Linux把一切硬件设备都当成文件。比如,Linux下,四个主分区分别对应/dev/sda1, /dev/sda2, /dev/sda3, /dev/sda4。其中/dev是设备文件所在的目录(即,文件夹,下同),sd代表SCSI Disk,a代表第一个SCSI设备,数字1,2,3,4分别代代表了四个主分区。如果你不知道什么是SCSI Disk,不用担心,因为你并不需要知道它究竟是什么。通常,如果你的电脑中只有一块硬盘,那么,这块硬盘一定是/dev/sda。
可能你以前接触过Linux,或曾经在一些老旧的资料中看到过/dev/hda代表第一个主IDE通道上的硬盘,……你现在已经无需知道这些了。因为Ubuntu已经取消了用hd和sd区分不同类型的硬盘的机制,取而代之的,用sda统一代表电脑中的第一块硬盘。
Linux下,/dev/sdaX中的数字X的编号是有限的。在Linux下,最大的分区编号是16。因此,主分区和扩展分区编号占用 1~4,逻辑分区占用5~16。即使你的硬盘中只有一个主分区(如,/dev/sda1)和一个扩展分区(/dev/sda2),剩下的两个主分区编号:/dev/sda3, dev/sda4 也不会分配给逻辑分区。第一个逻辑分区一定是从/dev/sda5开始编号的。这点与Windows下盘符的编制类似。如:A盘一定是3.5英寸软驱,B盘一定是5.25英寸软件,而从C盘开始才是硬盘分区。即使电脑上没有软驱,第一个硬盘分区的编号也是C,而不是A。
3. 引导程序与MBR
引导程序是负责将操作系统的内核从硬盘上加载到内存中的程序。在使用Windows的时候,我们似乎从没有关心过引导程序。不过安装过双Windows系统的读者一定认识Windows的引导程序——即使你从来没有意识到这一点。Windows的引导程序叫做OS Loader,即操作系统加载器,负责在启动的时候根据boot.ini中的配置信息,在屏幕上显示操作系统选择菜单,然后根据用户的选择引导合适的操作系统。
Linux下有两种引导程序:一种叫做Lilo,一种叫做Grub。Lilo是一个非常经典的引导程序。最初因为它不支持引导位于1024柱面后的Linux内核,而被Grub所取代。新版的Lilo已经能够支持引导1024柱面后的Linux内核了。现在,几乎所有的主流发行版都使用Grub作为默认的引导程序。Linux的引导程序与Windows的OS Loader类似。比如,Grub的作用就是负责读取配置文件(menu.lst),显示操作系统的选择菜单,并根据用户的选择引导合适的操作系统。
MBR,又称主引导记录,位于硬盘的第一个柱面的第一个磁道的第一个扇区中。大小为512B,引导程序就位于MBR中。BIOS在开机过程中,会读取并运行MBR中的引导程序,由它来加载操作系统内核。同样位于第一个柱面的第一个磁道的第一个扇区中的还有主分区表。因为主分区表的大小有限,因此只能存下四个分区的信息,这也是一块硬盘只能分为四个主分区的原因。也许你也猜到了,还有一个叫做“扩展分区表”的东东,位于扩展分区的最前面,保存了逻辑分区的信息。
Linux安装时,通常会把Grub安装到MBR。这样,你就可以用Grub同时引导Linux和Windows了。
4. 文件系统和SWAP
在一个硬盘分区可以使用之前,必须格式化成特定的文件系统。Windows下常见的文件系统有FAT32和NTFS。一些U盘的文件系统还可能是FAT(16)格式的。关于FAT(16),FAT32和NTFS这三种文件系统之间的区别,你只要知道FAT(16)支持的最大单文件为2GB,FAT32支持的最大单文件为4GB,而NTFS则可以支持大于4GB的单个文件。
Linux支持很多种不同类型的文件系统。Linux能够对FAT16/32和NTFS进行读写。但是因为这两种文件系统不支持Linux文件权限,因此Linux操作系统无法安装在这两种文件系统的分区中。常见的用于安装Linux的文件系统主要有EXT3, ReiserFS, XFS, JFS等。关于Linux支持的文件系统,我可以列出常常的一串来。不过你知道这4种文件系统就足够了。通常我们都会使用EXT3作为默认的文件系统。关于各种文件系统孰优孰劣的争论,实在是太多了,我不想对加评论。我的个人看法是,我们使用Ubuntu是作为桌面系统来使用的,大多数情况下,文件系统的性能并不是我们所需要考虑的大问题。也许你会看到很多对EXT3的负面评价,但是我可以告诉你,EXT3是最老牌,最久经考验的Linux文件系统,所以选择它没错。事实上,如果这篇文章介绍的是Gentoo Linux,我会推荐ReiserFS的。因为ReiserFS处理大量小文件的性能非常出众。(你可能还会见到一种叫做EXT2的文件系统。正如其名字所暗示的那样,EXT3是EXT2的升级版本。)
Linux Swap,即Linux交换分区,也是一种文件系统,它的作用是作为Linux的虚拟内存。在Windows下,虚拟内存是一个文件: pagefile.sys,而Linux下,虚拟内存需要使用独立分区,这样做的目的据说是为了提高虚拟内存的性能。通常,虚拟内存的大小设置为物理内存的1~2倍。(下面的分区建议中会更多的讲述Linux交换分区的问题。)
5. Linux文件结构,挂载与分区建议
Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:C,D,E,F等。Linux的文件结构是单个的树状结构。最顶部的为根目录,即 / 。在根目录下,分为多个子目录,包括/bin,/boot,/dev,/etc,/home,/lib,/media,/mnt,/opt,/proc,/root,/sbin,/tmp,/usr,/var等。这些目录的具体作用我就不做详细介绍了。磁盘分区都需要挂载到目录树中的某个目录上才能进行读写。
显然,根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。上面还提到,Linux交换分区也需要独立使用一个分区,因此,安装一个Linux至少要两个分区。(事实上只使用一个分区安装Linux也是可能的,而且,如果电脑的物理内存足够大,交换分区并不是必须的。不过本文不打算介绍这个高级话题。)
在不同的Linux安装教程中,不同的作者阐述了各种不同的分区建议,本教程也不例外。以下的一些建议有很多包含了强烈的个人喜好,因此读者并不一定要完全按照我的建议进行分区,选择最适合自己的方案才是最好的。尽管如此,我还是希望读者能够参考一些我下面的一些建议。
看了上面的一些介绍,你可能已经知道我的建议了:
双分区方案:
/ :至少3GB,建议根据实际情况,尽可能多分一些——特别是喜欢玩各式软件的读者。
swap:物理内存小于等于 512MB,建议分配实际物理内存容量2倍大小的SWAP;物理内存大于512MB,建议分配与物理内存等容量的SWAP。
三分区方案:
/ :至少3GB,建议根据实际情况,尽可能多分一些——特别是喜欢玩各式软件的读者。
/home:根据实际需要分配1GB~100GB或更多,酌情处理。
swap:物理内存小于等于 512MB,建议分配实际物理内存容量2倍大小的SWAP;物理内存大于512MB,建议分配与物理内存等容量的SWAP。
另外还要说明的一点是,有些老旧的教程中建议把Linux安装在主分区中,或在/boot下挂载一个主分区。事实上,这也是不需要的。Linux的所有分区都可以位于逻辑分区中。所以不要再为这些旧教程所误导了,不要再浪费有限的主分区了,放心的把Linux安装在逻辑分区中吧!