安装一台Linux练习机前的考虑——主机规划与磁盘分区
要安装一台Linux主机并不是那么简单的事,我们必须要针对distributions的特性、服务器软件的能力、未来的升级需求、硬件扩充性需求等来考虑,对于磁盘分区、文件系统、Linux操作较频繁的目录等都要有一定程度的了解。
我们不得不考虑一些工作,好让我们后续的主机维护轻松愉快。
一、Linux与硬件的搭配
我们需要预估一下我们的Linux是想达成什么任务,这样在选购硬件时才会知道哪个组件是最重要的。例如,桌面计算机的用户,应该会用到X Window系统,此时,显卡的优劣与内存的大小就占有很重大的影响。
- 各个组件或设备在Linux下面都是一个文件(Linux对于计算机各组件/设备的分辨与Windows系统不同)
1. 挑选硬件
除非走进工作岗位,我们一般都是用个人计算机架构来设置Linux服务器。因此,我们可以选购市场上主流的个人计算机的硬件设备即可。
下面我们大概阐述一下Linux下各硬件的需求:
- RAM:内存越大越好。在Linux服务器中,内存的重要性比CPU要高得多。因为如果内存不够大,就会使用到硬盘的内存交换空间(swap),又因为硬盘比内存的速度要慢得多,所以这将会影响到整体系统的性能。
- Hard Disk:对于一般小型服务器,重点在于容量的大小,硬盘容量大于20GB就够用了。
2. 各硬件设备在Linux中的文件名
我们在此了解一下各硬件在Linux当中所扮演的角色。再次强调:在Linux系统中,每个设备都被当成一个文件来对待。例如,IDE接口的硬盘的文件名为/dev/hd[a-d],其中,括号内的字母为a-d当中的任意一个(即/dev/hda, /dev/hdb, /dev/hdc, /dev/hdd四个文件)。
在Linux系统中,几乎所有的硬件设备文件都在/dev这个目录内。
下面列出几个常见的设备与其在Linux当中的文件名:
IDE硬盘 | /dev/hd[a-d] |
SCSI/SATA/USB硬盘 | /dev/sd[a-p] |
磁带机 |
IDE:/dev/ht0 SCSI:/dev/st0 |
我们需要特别留意硬盘(IDE、SCSI、USB都一样),每个磁盘驱动器的磁盘分区(partition)不同时,其磁盘文件名还会改变。需要留意的是磁带机的文件名,因为在某些不同的distribution当中可能会发现不一样的文件名。现在,我们只需背一下IDE与SATA硬盘的文件名,其他的用得到再去背吧!
二、磁盘分区
我们的目的是安装Linux,那么Linux系统是安装在计算机组件的哪个部分呢?就是磁盘。
我们来认识一下磁盘先。我们知道一块磁盘是可以被分区成多个分区(partion),以旧有的Windows观点来看,我们可能会将一块磁盘分区成为C:, D:, E:盘。这个C, D, E就是分区。但是Linux的设备都是以文件的类型存在,那分区的文件名又是什么?
1. 磁盘的连接方式与设备文件名的关系
个人计算机常见的磁盘接口有两种,分别是IDE与SATA接口(目前的主流接口是SATA接口,老一点的主机使用IDE接口)。
IDE设备:连接到IDE接口的设备,包含磁盘和光盘设备。
以IDE接口来说,通常主机会提供两个IDE接口,而一个IDE扁平光缆可以连接两个IDE设备,因此最多可以接到四个IDE设备。也就是说,如果我们已经有一个光盘设备了,那么最多就只能再接三块IDE接口的磁盘。这两个IDE接口通常被称为IDE1(primary)及IDE2(secondary),而每条扁平电缆上面的IDE设备可以被区分为Master(主设备)与Slave(从设备)。这四个IDE设备的文件名如下:
IDE\Jumper | Master | Slave |
IDE1(Primary) | /dev/hda | /dev/hdb |
IDE2(Secondary) | /dev/hdc | /dev/hdd |
【例题】假设你的主机仅有一块IDE接口的磁盘,而这一块磁盘接在IDE2的Master上面,那么它在Linux操作系统里面的设备文件名是/dev/hdc。
再以SATA接口来说,由于SATA/USB/SCSI等磁盘接口都是使用SCSI模块来驱动的,因此这些接口的磁盘设备文件名都是/dev/sd[a-p]的格式。但是与IDE接口不同的是,SATA/USB接口的磁盘根本就没有一定的顺序,那该如何决定它的设备文件名呢?这个时候就得要根据Linux内核检测到磁盘的顺序了。
【例题】如果你的PC上面有两个SATA磁盘以及一个USB磁盘,而主板上面有六个SATA的插槽。这两个SATA磁盘分别安插在主板上的SATA1, SATA5插槽上,请问这三个磁盘在Linux中的设备文件名是什么?
答:由于是使用检测到的顺序来决定设备文件名,并非与实际插槽代号有关,因此设备的文件名如下:
SATA1插槽上的文件名:/dev/sda
SATA5插槽上的文件名:/dev/sdb
USB磁盘(开机完成后才被系统识别):/dev/sdc
我们现在知道了在Linux系统下各种不同接口的磁盘的设备文件名。但还是存在问题:如果你的磁盘被分成两个分区,那么每个分区的设备文件名是什么?在了解这个问题之前,我们要先学习一下磁盘的组成,因为磁盘的分区与其物理的组成有很大的关系!
2. 磁盘的组成
磁盘的组成:盘片、机械手臂、磁头与主轴马达。(数据的写入是在盘片上面)
盘片可细分出两种单位:扇区(Sector)和柱面(Cylinder),其中每个扇区的大小为512bytes。
假设磁盘只有一个盘片,那么盘片如下图所示:
我们要知道,整块磁盘的第一个扇区特别重要,因为它记录了整块磁盘的重要信息。
下面是其中的两个重要的信息:
- 主引导分区(MBR):可以安装引导加载程序的地方,有446bytes。
- 分区表(partition table):记录整块硬盘分区的状态,有64bytes。
MBR的重要性在于,当系统在开机的时候会主动去读取这个区块的内容,这样系统才会知道我们的程序放在哪里且该如何进行开机。如果我们要安装多重引导的系统,MBR这个区块的管理就非常重要了!
分区表的重要性在于,我们刚拿到的整块硬盘就像一根原木,我们必须要在这根原木上面切割出想要的区段,这个区段才能够再制作成为我们想要的家具。如果没有进行切割,那么原木就不能被有效地使用。同样道理,我们必须要针对我们的硬盘进行分区,这样硬盘才可以被我们使用。
3. 磁盘分区表
在上面的图中,我们能看到“起始与结束柱面”,这是文件系统的最小单位,也是分区的最小单位。我们就是利用参考柱面号码的方式来处理。在分区表所在的64bytes容量中,总共分为四组记录区,每组记录区记录了该区段的起始与结束的柱面号码。
现假设有一硬盘,它只有400个柱面,被分区为四个分区(第四个分区所在为第301到400号柱面的范围)。若我们使用Windows操作系统,那么第一到第四个分区的代号应该就是C, D, E, F。当我们有数据要写入F盘时,这些数据将会被写入这块磁盘的301~400号柱面之间。下面我们将硬盘以长条形来看,然后将柱面以柱形图来看,那么64bytes的记录区段将如下图所示:
若此硬盘设备文件名为/dev/hda,那么这四个分区在Linux系统中的设备文件名将如下所示(重点在于文件名后面会再接一个数字,这个数字与该分区所在的位置有关):
- P1:/dev/hda1
- P2:/dev/hda2
- P3:/dev/hda3
- P4:/dev/hda4
由于分区表就只有64bytes而已,最多只能容纳四个分区,这四个分区被称为主(Primary)或扩展(Extended)分区。
根据上面的图示与说明,我们可以得到如下重要信息:
- 所谓的“分区”只是针对那个64bytes的分区表设置而已。
- 硬盘默认的分区表仅能写入四组分区信息。
- 这四组分区信息我们成为主(Primary)或扩展(Extended)分区。
- 分区的最小单位为柱面(cylinder)。
- 当系统要写入磁盘时,一定要参考磁盘分区表,才能针对某个分区进行数据的处理。
既然分区表只有记录四组数据的空间,那么是否代表我一块硬盘最多只能分区出四个分区?
当然不是!有经验的朋友都知道,我们可以将一块硬盘分区成十个以上的分区的。这又是如何达到的呢?在Windows/Linux系统中,我们是通过刚才谈到的扩展分区的方式来处理的。扩展分区的想法是:既然第一个扇区所在的分区表只能记录四条数据,那我可否利用额外的扇区来记录更多的分区信息?实际上如下图所示:
在上图中,我们知道硬盘的四个分区记录区仅使用到两个,P1为主分区,而P2则为扩展分区。需要注意的是,扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能被拿来格式化。然后我们可以通过扩展分区所指向的那个区域继续作分区的记录。
上图右下方那个区块又继续分区出五个分区,这五个由扩展分区继续切出来的分区,就被称为逻辑分区。同时注意一下,由于逻辑分区是由扩展分区继续分区出来的,所以它可以使用的柱面范围就是扩展分区继续分区出来的,所以它可以使用的柱面范围就是扩展分区所设定的范围喔!也就是图中的101~400啦!
同样,上述分区在Linux系统中的设备文件名分别如下:
- P1:/dev/hda1
- P2:/dev/hda2
- L1:/dev/hda5
- L2:/dev/hda6
- L3:/dev/hda7
- L4:/dev/hda8
- L5:/dev/hda9
之所以设备文件名没有/dev/hda3和/dev/hda4,是因为前面四个号码都是保留给Primary或Extended用的。所以逻辑分区的设备名称号码就由5号开始了,这是个很重要的特性,不能忘记。
关于主分区、扩展分区与逻辑分区的特性我们作个简单的定义:
- 主分区与扩展分区最多可以有四个(硬盘的限制)。
- 扩展分区最多只能有一个(操作系统的限制)。
- 逻辑分区是由扩展分区持续切割出来的分区。
- 能够被格式化后作为数据访问的分区为主分区与逻辑分区。扩展分区无法格式化。
- 逻辑分区的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分区(5号到63号),SATA硬盘则有11个逻辑分区(5号到15号)。
事实上,分区是个很麻烦的东西,因为它是以柱面为单位的“连续”磁盘空间,且扩展分区又是一个类似独立的磁盘空间,所以在分区的时候要特别注意。我们举下面的例子来解释一下好了。
由于第一个扇区所记录的分区表与MBR是这么重要,几乎只要读取硬盘都会先由这个扇区先读起。因此,如果整块硬盘的第一个扇区(就是MBR与partition table所在的扇区)物理坏掉了,那这个硬盘大概就没用了。因为系统如果找不到分区表,怎么知道如何读取柱面区间呢?下面还有一些例题你可以思考。
4.开机流程与主引导分区(MBR)
我们之前学习计算机概论知道了,没有执行软件的硬件是没有用的。而为了计算机硬件系统的资源合理分配,因此有了操作系统这个系统软件的产生。由于操作系统会控制所有的硬件并且提供内核功能,因此我们的计算机就能够认识硬盘内的文件系统,并且进一步读取硬盘内的软件文件与执行该软件来完成各项软件的执行目的。
那么问题来了,既然操作系统也是软件,那么我们的计算机又是如何认识这个操作系统软件并且执行它的?开机时我们的计算机还没有任何软件系统,那它要如何读取硬盘内的操作系统文件啊?这就要牵涉到计算机的开机程序了!下面就让我们来谈一谈这个开机程序吧!
在计算机概论里面我们谈到BIOS和CMOS这两个东西,CMOS是记录各项硬件参数且嵌入在主板上面的存储器,BIOS则是一个写入到主板上的一个韧体(再次说明,韧体就是写入到硬件上的一个软件程序)。这个BIOS就是在开机的时候计算机系统会主动执行的第一个程序了。
接下来,BIOS回去分析计算机里面有哪些存储设备,我们以硬盘为例,BIOS会依据用户的设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区的MBR位置。MBR这个仅有446bytes的硬盘容量里面会放置最基本的引导加载程序,此时BIOS就功成圆满,而接下来就是MBR内的引导加载程序的工作了。
这个引导加载程序的目的是在加载(load)内核文件,由于引导加载程序是操作系统在安装的时候所提供的,所以它会识别硬盘内的文件系统格式,因此就能够读取内核文件,然后接下来就是内核文件的工作,引导加载程序也功成圆满,之后就是大家所知道的操作系统的任务啦!
简单地说,整个开机流程到操作系统之前的动作应该是这样的:
- BIOS:开机主动执行的韧体,会认识第一个可开机的设备。
- MBR:第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序。
- 引导加载程序(Boot loader):一支可读取内核文件来执行的软件。
- 内核文件:开始操作系统的功能。
由上面的说明,我们会知道,BIOS与MBR都是硬件本身会支持的功能,至于Boot loader则是操作系统安装在MBR上面的一套软件了。由于MBR仅有446bytes而已,因此这个引导加载程序是非常小而完美的。这个boot loader的主要任务有下面这些项目:
- 提供菜单:用户可以选择不同的开机选项,这也是多重引导的重要功能。
- 载入内核文件:直接指向可开机的程序区段来开始操作系统。
- 转交其他loader:将引导加载功能转交给其他的loader负责。
上面的前两点还容易理解,而第三点则表示我们的计算机系统里面可能具有两个以上的引导加载程序呢!有可能吗?我们的硬盘不是只有一个MBR而已?但是引导加载程序除了可以安装在MBR之外,还可以安装在每个分区的引导扇区(boot sector)。分区还有个别的启动扇区?这个特色才能造就“多重引导”的功能。
我们举一个例子来说,假设我的个人计算机只有一块硬盘,里面分成四个分区,其中第一、二分区分别安装了Windows及Linux,我要如何在开机的时候选择用Windows还是Linux开机呢?假设MBR内安装的是可同时识别Windows/Linux操作系统的引导加载程序,那么整个流程如下图所示:
在上图中,我们可以发现,MBR的引导加载程序提供两个菜单,菜单一(M1)可以直接加载Windows的内核文件来开机;菜单二(M2)则是将引导加载工作交给第二个分区的启动扇区(boot sector)。当用户在开机的时候选择菜单二时,那么整个引导加载工作就会交给第二分区的引导加载程序了。当第二个引导加载程序启动后,该引导加载程序内(上图中)仅有一个开机菜单,因此就能够使用Linux的内核文件来开机。这就是多重引导的工作情况。我们将上图作个总结。
- 每个分区都拥有自己的启动扇区(boot sector)。
- 图中的系统分区为第一及第二分区。
- 实际可开机的内核文件是放置到各分区内的。
- loader只会认识自己的系统分区内的可开机内核文件,以及其他loader而已。
- loader可直接指向或者是间接将管理权转交给另一个管理程序。
学到这,我们可以想一想,为什么人家经常说:“如果要安装多重引导,最好先安装Windows再安装Linux”呢?
这是因为:
- Linux在安装的时候,我们可以选择将引导加载程序安装在MBR或个别分区的启动扇区,而且Linux的loader可以手动设置菜单(就是上图的M1, M2),所以我们可以在Linux的boot loader里面加入Windows开机的选项。
- Windows在安装的时候,它的安装程序会主动覆盖掉MBR以及自己所在分区的启动扇区,我们没有选择的机会,而且它没有让我们自己选择菜单的功能。
因此,如果先安装Linux再安装Windows的话,那MBR的引导加载程序就只会有Windows的选项,而不会有Linux的选项(因为原本在MBR内的Linux的引导加载程序就会被覆盖掉)。那需要重新安装Linux一次吗?当然不需要,我们只要用尽各种方法来处理MBR的内容即可。例如利用全中文的spfdisk(http://spfdisk.sourceforge.net/)软件来安装识别Windows/Linux的管理程序,也能够利用Linux的救援模式来挽救MBR即可。
5. Linux安装模式下,磁盘分区的选择(重要)
【目录树结构】
由于Linux内的所有数据都是以文件的形态来呈现的,所以整个Linux系统最重要的地方就在于目录树结构。
所谓的目录树结构就是,以根目录为主,然后向下呈现分支状的目录结构的一种文件结构。所以,整个目录树结构最重要的就是那个根目录(root directory),这个根目录的表示方法为一条斜线“/”,所有的文件都与目录树有关。目录树的呈现方式如下图所示:
如上图所示,所有的文件都是由根目录(/)衍生来的,而次目录之下还能够有其他的数据存在。图中长方形为目录,波浪形则为文件。则当我们想要取得mydata那个文件时,系统就得由根目录开始找,然后找到home,接下来找到dmtsai,最终的文件名为:/home/dmtsai/mydata。
我们现在知道整个Linux系统使用的是目录树结构,但是我们的文件数据其实是放置在磁盘分区当中的,现在的问题是如何结合目录树的架构与磁盘内的数据,这个时候就牵扯到“挂载”(mount)的问题。
【文件系统与目录树的关系(挂载)】
所谓的“挂载”,就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下。换种说话,就是进入该目录就可以读取该分区的意思。这个操作我们成为“挂载”,那个进入点的目录我们称为“挂载点”。由于整个Linux系统最重要的是根目录,因此根目录一定需要挂载到某个分区的。至于其他的目录则可依用户自己的需求来给予挂载到不同的分区。我们以下图来作为一个说明。
上图中,假设我们的硬盘分为两区,partition 1挂载到根目录,至于partition 2则是挂载到/home这个目录。这也就是说,当我的数据放置在/home内的各次目录时,数据是放置到partition 2的,如果不是放置在/home下面的目录,那么数据就会被放置到partition 1。
其实判断某个文件在哪个partition下面是很简单的,通过反向追踪即可。以上图来说,当我想要知道/home/vbird/test这个文件在哪个partition时,由test-->vbird-->home-->/,看哪个“进入点”先被查到那就是使用的进入点了。所以test使用的是/home这个进入点而不是/喔!
【安装distributions时,挂载点与磁盘分区的规划】
- 既然我们在Linux系统下使用的是目录树系统,所以安装的时候自然就得规划磁盘分区与目录树的挂载了。实际上,在Linux安装的时候已经提供了相当多的默认模式让我们选择分区的方式了,不过,无论如何,分区的结果可能都不是很能符合自己的意愿!因为毕竟每个人的“想法”都不太一样!因此,强烈建议使用“自定义安装,Custom”这个安装模式!在某些Linux distribution中,会将这个模式写得很厉害,叫做“Expert,专家模式”,这个就厉害了,请相信你自己,了解上面的说明后,就请自称为专家了吧!没有问题!
【自定义安装“Custom”】
初次接触Linux:只要分区“/”及“swap”即可。
- 通常初次安装Linux系统的朋友们,我们都会建议他直接以一个最大的分区“/”来安装系统。这样做有个好处,就是不怕分区错误造成无法安装的困境!例如/usr是Linux的可执行程序及相关的文件摆放的目录,所以它的容量需求蛮大的,万一你分了一块分区给/usr,但是却不够大,那么就伤脑筋了!因为会造成无法将数据完全写入的问题,就有可能会无法安装。因此如果你是初次安装的话,那么可以仅分成两个分区(“/与Swap”)即可。
建议分区的方法:预留一个备用的剩余磁盘容量。
- 在想要学习Linux的朋友中,最麻烦的可能就是得要经常处理分区的问题,因为分区是系统管理员很重要的一个任务。但如果你将整个硬盘的容量都用光了,那么你要如何练习分区呢?所以我们在后续的练习中也会这样做,就是请你特别预留一块不分区的磁盘容量,作为后续练习时可以用来分区之用。
- 此外,预留的分区也可以拿来作为备份之用。因为我们在实际操作Linux系统的过程中,可能会发现某些脚本或者是重要的文件很值得备份时,就可以使用这个剩余容量分出新的分区,并用来备份重要的配置文件或者是脚本。这有个最大的好处,就是当我的Linux重新安装比较便利。为什么要重新安装?因为没有安装过Linux10次以上,不要说你学会了Linux了。
【选择Linux安装程序提供的默认硬盘分区方式】
- 对于首次接触Linux的朋友们,我们通常不建议使用各个distribution所提供默认的Server安装方式,因为会让你无法得知Linux在搞什么鬼,而且也不见得可以符合你的需求。而且要注意的是,选择Server的时候,请“确定”你的硬盘数据不再需要。因为Linux会自动把你的硬盘里面的旧数据全部删掉。此外,硬盘至少需要2GB以上才可以选择这一个模式!
三、安装Linux前的规划
安装最重要的一件事,就是要取得Linux distributions的光盘数据,如何选择合适的distributions是我们需要考虑的。
1. 选择适当的distribution
- 将Linux定位在服务器上面的话,那么Red Hat Enterprise Linux及SuSE Enterprise Linux应该是不错的选择,因为它的版本改动的幅度较小,并且更新支持的期限较长。
- 我们个人使用的话,可以选择CentOS这一个号称与RHEL完全兼容的版本来练习。我们可以选择到CentOS的官方网站或中文镜像站点去下载最新的版本,由镜像站点下载比较快。
我们下载的文件扩展名是.iso,这就是所谓的image文件(镜像文件)。这种image文件是由光盘直接刻录成文件的。注意,这种镜像文件不能以数据格式刻录成为光盘/DVD的!我们必须使用刻录程序的功能,将它以“镜像文件格式”刻录成为光盘或DVD才行。切记不要使用刻录数据文件格式来刻录。
2. 打造Windows与Linux共存的环境
- 如果我们要在一台主机上安装两套以上的操作系统,那么上面谈到的开机流程与多重引导的数据就很重要了。因为需要如此我们才能够在一部主机上面操弄两种不同的操作系统。
3. 主机硬盘的规划
系统对于硬盘的需求除了与主机开放的服务(主机的用途)有关,还与数据的分类与安全性有关!所谓的“数据安全”是指当主机系统的硬件出现问题时,你的文件数据能否安全保存。
经常有朋友问:“我的Linux主机因为停电的关系,造成不正常的关机,结果导致无法开机,这该如何是好?”
幸运一点的可以使用fsck命令来解决硬盘的问题,麻烦一点的可能还需要重新安装Linux,另外,由于Linux是多用户、多线程的环境,因此其中可能包含很多人的数据,如果需要重新安装的话,光是搬移与备份数据就极其麻烦!所以硬盘的分区考虑是相当重要的!
虽然我们上面已经讨论过磁盘分区了,但是,硬盘的规划对于Linux初学者而言,那将是造成你“头疼”的主要凶手之一。因为硬盘的分区技巧需要对于Linux文件结构有相当程度的认知之后才能够做出比较完善的规划的。所以,在这里我们只要有个基础的认识即可。
无论如何,下面还是说明一下基本硬盘分区的模式。
【最简单的分区方法】
仅分出根目录与内存交换空间(/和swap)即可。然后再预留一些剩余的磁盘以供后续的练习之用。
这是不保险的分区方法!因为如果任何一个小细节坏掉(如坏轨的产生),你的根目录将可能整个损毁,挽救较难!
【稍微麻烦一点的方式】
这种分区方式是先分析这台主机的未来用途,然后根据用途去分析需要较大容量的目录,以及读写较为频繁的目录,将这些重要的目录分别独立出来而不与根目录放在一起。那当这些读写较频繁的磁盘分区有问题时,至少不会影响到根目录的系统数据,挽救较易!
在默认的CentOS环境中,下面是比较符合容量大且(或)读写频繁的目录:
- /
- /usr
- /home
- /var
- Swap
例如,若我希望我的邮件主机大一些,因此我的/var通常会分个几GB的大小,如此一来就可以不担心会有邮件空间不足的情况了。另外,由于我开启SAMBA服务,因此提供每个研究室内人员的数据备份空间,所以/home所开放的空间也很大。至于/usr/的容量,大概只要给2~5GB即可!凡此种种均与你当初预计的主机服务有关!因此,请特别注意你的服务项目,然后再来进行硬盘的规划!
4. 关于练习机的安装建议
- 务必拥有一台独立的主机,而且内含一块仅有Linux操作系统的硬盘。
- 在硬盘分区方面,新手们可以使用/及swap两个分区即可,并要预留一个未分区的空间!因为我们未来会针对系统的磁盘部分进行分区的练习以及磁盘配额(quota)的练习,因此,预留一个磁盘空间是有必要的。
- 务必将所有的套件都安装。(即选择“安装所有套件”)
上面提到的都是针对“练习机”而言。如果是我们自己预计要上线的Linux主机,那就不建议按照上面的说明安装了。
5. 两个实际案例
6. 大硬盘配合旧主机造成的无法开机问题
某些比较旧的主板中,它们的BIOS可能找不到比较大容量的磁盘。因此,如果我们在旧主板上面安装新的大容量磁盘时,很可能我们的磁盘容量会被误判。即使这样,Linux还是能够安装,而且能够顺利获取到完整的硬盘容量呢!因为当Linux内核顺利开机启动后,它会重新再去检测一次整个硬件而不理会BIOS所提供的信息,所以就能够顺利识别正确的硬盘,并且让你安装Linux。
但是,安装完毕后可能会无法开机!还记得我们之前谈过的开机流程与MBR的内容吗?安装的时候是以光盘启动并且由光盘加载Linux内核,所以内核可以被顺利加载来安装。但是若以这样的配置来开机时,因为BIOS识别的硬盘是不对的,所以使用硬盘开机可能就会出现无法开机的错误了。那怎么办?
由于BIOS捕捉到的磁盘容量不对,但是至少在整块磁盘前面的扇区它还读得到。因此,我们只要将这个磁盘最前面的容量分出一个小分区,并将这个分区与系统启动文件的放置目录摆在一起,那就是/boot这个目录。其实,重点是将启动扇区所在分区规范在小于1024个柱面以内即可。做法是在进行安装的时候规划出三个扇区:/、/boot、swap 。
那个/boot只要给100MB左右即可。而且/boot要放在整块硬盘的最前面。这部分先有印象即可,后期谈到开机流程时我们会再加强说明的!
安装一台Linux练习机前的考虑——主机规划与磁盘分区的更多相关文章
- 鸟哥的linux私房菜 - 第三章 主机规划与磁盘分区
各硬件装置在linux中的文件名 在linux系统中,每个装置都被当成一个档案来对待. 常见的装置与其在linux中的档名: 磁盘分区 磁盘链接的方式与装置文件名的关系 个人计算机常见的磁盘接口有两种 ...
- 别人的Linux私房菜(3)主机规划与磁盘分区
磁盘阵列:RAID.将数个硬盘整合成为在操作系统看来是一个硬盘. Linux对笔记本电脑的支持:https://www.linux-laptop.net/ 几乎所有硬件设备存放于/dev/目录. SC ...
- 鸟哥的linux私房菜学习-(一)优缺点分析以及主机规划与磁盘分区
一.linux的优缺点 那干嘛要使用Linux做为我们的主机系统呢?这是因为Linux有底下这些优点: 稳定的系统:Linux本来就是基于Unix概念而发展出来的操作系统,因此,Linux具有与Uni ...
- Linux主机规划与磁盘分区
各硬件设备在Linux中的文件名 在Linux系统当中,几乎所有的硬件设备文件都在/dev这个目录内. 各硬件设备在Linux中的文件名: 设备 设备在Linux中的文件名 IDE接口的硬盘 /dev ...
- 鸟哥的Linux私房菜-第一部分-第3章主机规划与磁盘分区
1. 选择一个与你的Linux搭配的主机配置 NAT服务器:小型企业或者学校都基本是只有一条对外的线路,网卡 SAMBA服务器:完成Windows网上邻居的功能,网卡和硬盘要求高 Mail服务器:如果 ...
- Linux的主机规划和磁盘分区
选择与Linux搭配的主机配置 CPU 只要不是老旧到让你的硬件系统死机的都能够支持 RAM 内存越大越好,内存的重要性要比CPU还要高,至少512MB Hard Disk 由于数据量与数据的访问频 ...
- Linux-鸟菜-2-主机规划与磁盘分区
Linux-鸟菜-2-主机规划与磁盘分区 开机流程: 1. BIOS:開機主動執行的韌體,會認識第一個可開機的裝置: 2. MBR:第一個可開機裝置的第一個磁區內的主要開機記錄區塊,內含開機管理程式: ...
- Linux运维基础提高之RAID卡和磁盘分区
磁盘大小计算: 柱面的数量*每个柱面的大小(容量) [root@luffy001 ~]# fdisk -l Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 ...
- 一台linux真实机实现多台Tomcat服务
一.事前准备 ü 确保linux并未安装tomcat (这里虚拟机测试) ü 下载jdk与tomcat ① jdk-6u18-ea-bin-b01-linux-i586-20_aug_2009.bin ...
随机推荐
- 整理下react中常见的坑
其实有些也不能算是坑,有些是react的规定,或者是react的模式和平常的js处理的方式不同罢了 1.setState()是异步的this.setState()会调用render方法,但并不会立即改 ...
- 自动化测试selenium教程
什么是自动化测试: 自动帮我们测试一个系统里面的主要功能,一个app.电脑网站.网页,每个系里面许多的功能,好比一个淘宝页面,里面N多功能,登录.注册,推荐,商品详情.评论等等:软件生命周期:需求调研 ...
- spring boot整合mybatis查询数据库返回Map字段为空不返回解决
1.出现问题原因原因1:mybatis的配置即mapper返回映射配置. 原因2:jackson的配置即@ResponseBody序列化配置. 2.解决方式步骤1:解决原因1 mybatis: con ...
- C# sqlhelp
public class SqlHelp { //数据库连接字符串 public static string connectionString = ConfigurationManager.Conne ...
- 开发的服务集群部署方案,以etcd为基础(java)
当前有很多服务集群部署,但是对于我们自己开发的服务系统怎么样能够解决部署问题,对大家很麻烦和笨重. 首先,我想说对于我们国内,小公司小系统比较多.大型系统毕竟少数,向阿里云看齐的不多.其实所谓的需要集 ...
- c/c++面试总结---c语言基础算法总结2
c/c++面试总结---c语言基础算法总结2 算法是程序设计的灵魂,好的程序一定是根据合适的算法编程完成的.所有面试过程中重点在考察应聘者基础算法的掌握程度. 上一篇讲解了5中基础的算法,需要在面试之 ...
- 『ACM C++』HDU杭电OJ | 1425 - sort (排序函数的特殊应用)
今天真的是累哭了,周一课从早八点半一直上到晚九点半,整个人要虚脱的感觉,因为时间不太够鸭所以就回头看看找了一些比较有知识点的题来总结总结分析一下,明天有空了就开始继续打题,嘻嘻嘻. 今日兴趣电影: & ...
- 解决 Android sdk content loader 0%
第一次遇到这种情况,真的很头痛,没办法 ,是问题就要解决,在网上找了一些方法,归纳了下来. 方法一(关闭后重启): 遇到Eclipse右下角一直显示“Android sdk content loade ...
- Maven命令参数
命令参数 备注 mvn -v --version 显示版本信息; mvn -V --show-version 显示版本信息后继续执行Maven其他目标; mvn -h --help 显示帮助信息; m ...
- 基于ftp服务的三种登录方式及其相关的访问控制和优化
ftp(简单文件传输协议),是一种应用广泛的网络文件传输协议和服务,占用20和21号端口,主要用于资源的上传和下载. 在linux对于ftp同widows一样具有很多的种类,这里主要介绍vsfptd( ...