要讲硬盘分区了。在讲这个问题之前,我先来讲讲概念问题,什么是概念问题呢?你还记得第一次,绝对的第一次听到A:盘,B:盘,C盘时候的感觉么?在那之前自己也许知道计算机有个存储数据的地方,因为在电视上或者广告上看到过磁带机(我一直不知道为什么到了很久很久那种一个傻姑娘在一个磁带柜前面操作一个现在看来是垃圾的磁带设备会不停的成为电视台播放电脑题材节目的缺省背景)或者硬盘的图象。但是你并没有一个概念计算机究竟怎么使用这些设备,直到你第一次打出dir a:或者打开explorer看到A: C:字样的目录树。如果你还记得当时的感觉,恭喜你,这种感觉又回来了。
对于一般人,只需要知道计算机能做什么就行了,所以对于他们来说,什么东西越简单越好,越不需要他们去花时间学习理解越好,所以计算机从开始的打孔到了后来的键盘屏幕,现在又往语音输入智能交互方向发展。这很好,让那些把计算机当工具的人能更专注他们的工作(当然,他们会为此向我们--计算机的建设者付出应有的报酬)。可以说,MS在这方面作的很好,没有人会否认windows是一个非常“好用”的操作系统。这是指从使用者而言,你不需要太多的去理解机箱里面的知识,或者说尽可能不去理解,就能尽快让计算机为你工作。比如将本来很复杂的硬盘通过它在中间的操作搞成了C: D: E:盘这样的东西,让一个只需要会打字的秘书MM也能知道怎么存储文件(当然也会有笨的不可救药的)。但是这样(MS替你打点一切)的做法的一个问题也是显而易见的:你没有机会,或者说没有被迫的机会去了解更深一层的知识。而且当你脑子里只知道”C: D: E:“的时候,你就只有跟着windows走这一条路了。
OK,言归正传。安装Linux的硬盘分区问题。这个问题说起来是每个Linux新手,甚至到有一定水平的人都不敢说很清楚或者掌握的(包括我自己)。硬盘是个很古怪的东西,它的基本脾气是,一点搞不好,一大块数据就要丢,而且丢的干干净净。我已经不止一次看到某人的毕业论文之类东西在答辩之前三天因为硬盘问题而丢失并且没有备份!而安装Linux是必须跟硬盘很底层的部分打交道的,而不是win下面安装个程序那么安全。所以我的第一个建议是,如果硬盘上有重要数据,最好别贸然安装Linux。比较好的一个办法是找台不重要的机器,硬盘可以重新分区格式化的,多安装几次Linux,多试验一下windows和linux共同存在的各种情况。这样以后心里就有底了。如果实在要安装,一定要备份重要数据,切记。
下来讲Linux对于硬盘的概念。只考虑IDE硬盘。对于一个硬盘的操作分很多层。我们需要知道的,是硬盘是由很多个512字节的扇区组成的。而这些扇区会被组织成一个一个“分区”。这些对于每个操作系统都是一样的,在这之上每个操作系统自己去管理分给自己的分区。对于windows来说,它会把这些分区格式化然后按照CDE盘来管理。而Linux则不同。所以呢,一个硬盘上分多个分区,安装多个操作系统比如windows,Linux,Solaris等是完全可以的。但是由于每个操作系统对分区的操作不同,只能说把操作系统安装到分区中而不存在把操作系统安装到CDE盘中(UMSDOS方式先不提)。
每个硬盘的第0个扇区是个特殊扇区,它不属于任何分区。它存放的是两个东西:第一是一个很小的程序,它由计算机在启动的时候运行,这个程序一般是某个操作系统带的启动程序,它运行后会启动某个操作系统或者给用户选择来启动某个操作系统。Windows的0扇区启动程序很简单,它就是把windows启动了,所以在这之前你是不会有多操作系统在一个硬盘上共存的概念的。而Linux所带的启动程序可以让你选择启动哪个操作系统,它叫做lilo。这个东西我们以后会经常碰到它。0扇区还存放有另外一个重要数据:分区信息。前面讲过,硬盘是有分区的,那么到底怎么分的,这个信息是存在0扇区的。硬盘的分区规则是这样的:一个分区的所有扇区必须连续,硬盘可以有最多四个分区,这四个分区可以是四个主分区或者三个主分区加一个扩展分区。在扩展分区里可以再继续分逻辑分区。举一个例子,一个10G的硬盘,安装windows,有C: D: E:三个盘。那么它的分区情况可以是这样的:
分区一:主分区 4G ,格式化为C:盘
分区二:扩展分区 4G 扩展分区不能格式化,它只能被再分区为逻辑分区
剩余空间(可以被分区三,四占用) 2G
在扩展分区中,建立两个逻辑分区各为2G,格式化为D:E:盘。
那么在Linux看来又是怎么样呢?注意我提到过,对于任何操作系统而言,分区都是一样的,尽管Linux不认同C D E盘,但是这些分区都是相同的。所以Linux 下看也是分区一,分区二等东西。但是它对这些分区的标志和解释是不同的。
在Linux下,硬盘是一个设备,实际上Linux下什么都是设备。对于IDE硬盘而言,Linux认为存在四个设备,对应于IDE的四个位置接的设备。如果装过机器我们知道主板上有两个槽,IDE0和IDE1,每个槽上能挂两个设备,主盘和从盘,这些盘可以是硬盘可以是光驱。那么Linux是怎么认为这些设备的呢?在Linux下,这些设备用/dev/hdx来标示。IDE0上的主盘就是/dev/hda,从盘就是hdb,依此类推,如果可以有多个IDE槽就可以延续到hde hdf等。总之每条硬盘线上接的设备都被Linux认为是一个/dev/hdx设备。如果你的机器是IDE0槽上的主盘是硬盘,那它就是hda,如果IDE1的槽上主盘是一个光驱,那它就是hdc。在windows下fdisk是对”硬盘1“,”硬盘2“进行操作,而linux下的fdisk就是对/dev/hda,/dev/hdb等进行操作。这样做很灵活,很直观,不是么?
那么Linux下怎么看分区呢?Linux下的分区概念是,硬盘上的每个分区也是一个设备(又来了)。他们的标志是/dev/hdxy,其中hdx根前面一样表示哪个硬盘,y表示第几个分区。以hda为例。hda1就是第一个分区,hda4就是第四个分区位置。逻辑分区从hda5开始。所以刚才那个例子中,Linux看来就是hda有10G。hda1是主分区,格式是windows。hda2是扩展分区,在它上划出了hda5和hda6,格式是windows。hda还有2G剩余空间可以继续建立hda3和hda4。注意因为hda2空间已经被划分完,所以无法再建立逻辑分区。
这些硬盘的东西很容易搞混,建议多实践,多总结一下。可以参照一些有关书籍,早期的DOS书在安装部分讲了一些。现在的linux安装部分也都有不少。另外还有网上的一些介绍资料。
明白了Linux对分区的处理。下来就是分区策略了。在用RH6.2的光盘启动,一直回车选择缺省设置会到一个分区界面。这里你需要告诉linux安装程序在硬盘的什么地方安装linux。你需要告诉它一些信息,其中包括,建立一个新的Linux分区,多大,mount到哪里。这里需要介绍一下mount的概念。
我们知道硬盘是可以分成很多分区的,每个分区由各个操作系统格式化然后就可以使用了。但是要使用必须有一种方法。windows,或者DOS的做法是将格式化好的分区挂(或者说mount)成C: D: E:盘。盘符的分配是操作系统决定的(到NT后可以用户指定)。在Linux下某个分区怎么使用必须用户自己指定。在Linux下分区并不按照C: D: E分配,而是挂(mount)到一个目录下。整个UNIX的存储空间结构是一个目录树(而不是每个C: D: E:下各有自己的目录树)。最上一层是根目录(用/表示,注意不是windows的反斜杠)在根低下有其它目录。首先需要有一个分区mount成/,然后再在根下面建立其它目录然后把分区mount到这些目录上去。所以整体来看一个unix的存储系统是一个目录树,但是它可以包括很多分区,甚至其它存储设备,比如光驱,内存盘,或者网络磁盘等。
在Linux安装的时候除了/还有几个目录是预先建立的,我们需要知道的是/usr,/home还有/root。先不管他们都做什么,一般而言我们需要分一个空间,指定它为Linux Native类型,然后mount point是这几个目录之一。另外还需要注意的是Linux分区有两种类型,native是可以存储文件建立目录的那种,还有一个linux swap,这个是linux的内存交换分区,在安装RH的时候必须指定一个。所以在安装的时候最少需要分一个区,类型linux native,mount到/ 上,然后一个分区类型linux swap,swap区不mount为任何目录,系统对其进行单独处理。
下来是分区大小问题,安装Linux一般而言1G空间为/就差不多了,初次安装为方便起见,可以建一个2G的分区mount point为/,然后一个swap。swap的大小作的跟内存一样大就是了,最大128M。以后再安装的时候可以根据自己对硬盘的要求建立其它分区来mount比如/home。
对于已经安装了Windows的机器,可以在Linux安装程序里删除一个windows的分区,一般而言是一个逻辑分区(你不会想删除C:盘吧),然后在它的空间里建立Linux的分区。
Linux的/可以是主分区可以是逻辑分区。但是需要注意的是8G的问题。我想你也许听说过8G,到底8G是什么呢?具体问题比较复杂,简单说就是不能把Linux的/分区mount到一个硬盘8G以后的分区上。所以如果你的硬盘有16G,前6G已经分给C:盘,后里面是两个5G的D: E:盘,纳闷你就得把D盘分区删除建立Linux分区而不是E盘,因为E盘已经在8G以后了。8G以后安装Linux是没有问题的,只是无法启动。当然这个是有解决办法的,但是在新手的状态我还是建议尽量按照最简单情况作,将来熟了再练习其它。
分了区之后继续安装,你还被要求配置一些其它东西。包括root密码,Lilo,配置网络,X等东西。其中Lilo是比较重要的一部分。你会被要求将lilo安装到MBR,分区启动扇区,或者一张软盘上。你需要选择是是否安装到MBR或者floppy上。一般而言安装到MBR上即可,为了保险起见可以做到软盘上,这样机器用硬盘启动还是windows那套,进入linux可以用软盘启动。注意你需要把BIOS中的Virus Warning关闭,否则无法安装到MBR上。
如果你的机器配置比较标准,网卡,声卡,显示卡等都能自动检测出来的话,一路回车,再启动你就可以进入Linux了。如果运气不好(大多数情况是)网卡声卡没有在启动的时候配好也无所谓,跟windows一样将来可以再配置。总之这些不会影响到你安装。
OK,机器再启动,跟以往不一样的是没有看到Starting MS Windows 98....而是一个Lilo:的提示符。这说明Lilo已经正常安装了。你现在按回车就可以进入Linux了。如果要进入Windows可以打DOS然后回车。如果你指定了不同的windows分区启动标志符,可以用[TAB]键看一下你有哪些选择。
这是一个很经常被问到的问题,这里说一下。出于某种原因你要删除Linux,你知道用DOS盘启动然后fdisk删除Linux分区或者重新安装NT删除Linux分区。但是当你一切都安装完了之后windows无法启动,Lilo:这个符号总在那里,机器死了一样。别重新分区格式化都没用。然后某个半瓶子醋可能告诉你“没救了,低格吧”。记住,除非硬件损坏,硬盘任何时候不需要低格。这种情况是由于其它安装程序并不重写0扇区,即MBR造成的lilo无法删除。解决办法很简单,请牢牢记住:用一张DOS盘启动,运行DOS的fdisk /MBR。这个命令就是重写0扇区的引导程序为MS的标准程序,即可以启动DOS,Windows,WindowsNT,Windows 2000的那个,而不会改变硬盘分区任何其它信息。所以它是绝对安全的,绝对安全的,绝对安全的。当你碰到Lilo无法删除的时候,记得fdisk /MBR。
OK,你成功的启动了Linux,进入了一个图形或者字符界面要求登陆。下来你会有成堆的问题要问。下来我会讲怎么去问问题以及怎么寻找帮助。