一、Linux与硬件的搭配
各个组件或设备在Linux下面都是一个文件
1、认识计算机的硬件设备
游戏机/工作机的考虑
性能/价格比与性能/消耗的瓦数比的考虑
支持度的考虑:当我们想要购买或是升级某些计算机组件时,应该要特别注意该硬件是否有针对您的操作系统提供适当的驱动程序
2、选择与Linux搭配的主机设备
桌面型Linux系统/含X-Window
用途:Linux的练习机或办公室工作机(一般我们会用到的环境)
CPU:最好等级高一点,例如Intel i5、i7以上的等级
内存:一定要大于1GB就比较好,否则容易有图形用户界面卡顿的现象
网卡:普通的以太网卡就好
显卡:使用256MB以上内存的显卡(入门级的都在这个容量以上了)
硬盘:越大越好,最好有60GB
3、各硬件设备在Linux中的文件名
重申:在Linux系统中,每个设备都被当成一个文件来对待
设备 | 设备在Linux中的文件名 |
---|---|
SCISI、SATA、USB驱动器 | /dev/sd[a-p] |
U盘 | /dev/sd[a-p](与SATA相同) |
Virtio接口 | /dev/vd[a-p](用于虚拟机内) |
软盘驱动器 | /dev/fd[0-7] |
打印机 | /dev/lp[0-2](25针打印机) |
/dev/usb/lp[0-15](USB接口) | |
鼠标 | /dev/input/mouse[0-15](通用) |
/dev/psaux(PS/2接口) | |
/dev/mouse(当前鼠标) | |
CD-ROM、DVD-ROM | /dev/scd[0-1](通用) |
/dev/sr[0-1](通用,CentOS较常见) | |
/dev/cdrom(当前CD-ROM) | |
磁带机 | /dev/ht0(IDE接口) |
/dev/st0(SATA/SCSI接口) | |
/dev/tape(当前磁带) | |
IDE磁盘驱动器 | /dev/hd[a-d](旧式系统才有) |
4、使用虚拟机学习
如果用windows系统,建议使用VirtualBox这个软件,官网https://www.virtualbox.org
教程http://www.virtualbox.org/manual/ch01.html
如果原本用Linux系统,例如Fedora或Ubuntu等系列,建议使用原本系统内就有的虚拟系统管理器
二、磁盘分区
1、磁盘连接方式与设备文件名的关系
设备文件名需要根据Linux内核检测到磁盘的顺序命名
我们知道磁盘主要由碟片,机械手臂,磁头与主轴马达所组成,而数据的读写其实是在碟片上面。碟片上面又可细分出扇区与磁道两种单位,其中扇区的物理大小设计有两种,分别是512字节与4k字节。
第一个扇区特别重要,因为它记录了整块磁盘的重要信息。早期磁盘第一个扇区里面含有的重要信息我们称为MBR格式,后来又多了一个新的磁盘分区格式,称为GPT
2、MBR与GPT分区表
MBR分区表格式与限制
第一个扇区的512个字节通常有这两个东西:
主引导记录:可以安装启动引导程序的地方,有446字节
分区表:记录整块磁盘分区的状态,有64字节
由于分区表所在区块仅有64字节容量,因此最多仅能有四组记录区,每组记录区记录了该区段的启动与结束的柱面号码
我们假设磁盘只有400个柱面,划分为四个分区,可如图所示:
)
我们有几个重点信息:
- 其实所谓的分区只是针对那个64字节的分区表进行设置而已
- 硬盘默认的分区表仅能写入四组分区信息
- 这四组划分信息我们称为主要或扩展分区
- 分区的最小单位为柱面
分区由数据的安全性和系统的性能考虑来决定的
我们可以利用额外的扇区来记录更多的信息,即如图所示:
其中,P1为主要分区,P2为扩展分区。注意:扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能被拿来格式化
如图右下方那个区块继续划分出五个分区,这五个由扩展分区继续切出来的分区,被称为逻辑分区
因为前四个号码都是保留给主要或者扩展分区用的,所以逻辑分区的名称号码就从5号开始
MBR主要分区、扩展分区与逻辑分区的特性我们做个简单的定义
- 主要分区与扩展分区最多可以有四个(磁盘的限制)
- 扩展分区最多只能有1个(操作系统的限制)
- 逻辑分区是由扩展分区持续划分出来的分区
- 能够被格式化后作为数据存取的分区是主要分区与逻辑分区,扩展分区无法格式化
- 逻辑分区的数量依操作系统的而不同,在Linux系统中SATA硬盘已经可以突破63个以上的分区
GPT磁盘分区表的出现
在过去MBR分区表的限制中经常可以发现如下的问题
- 操作系统无法使用2.2TB以上的磁盘容量
- MBR仅有一个区块,若被破坏后,经常无法或很难恢复
- MBR内的存放启动引导程序的区块仅446字节,无法存储较多的程序代码
因此出现了GPT磁盘分区表,如图:
GPT使用了34个LBA区块来记录分区信息,除了前面34个LBA外,整个磁盘的最后34个LBA也拿来作为另一个备份
解释如下:
LBA0(MBR兼容区块):存储了第一阶段的启动引导程序,以及放入了一块特殊标志符,用来表示此磁盘为GPT格式
LBA1(GPT表头记录):记录了分区表本身的位置与大小,记录了备份用的GPT分区放置的位置,同时放置了分区表的检验码(CRC32)
LBA2-33(实际记录分区信息化):每个LBA都可以记录4组分区信息,所以在默认的情况下,总共可以有4*32=128组分区记录,GPT还在每组记录中提供了64位来记载开始/结束的扇区号码
现在GPT分区默认可以提供多达128组记录,而在Linux本身的Linux本身的内核设备记录中,针对单一磁盘来说,虽然过去最多只能到达15个分区,不过由于Linux内核通过udev等方式的处理,现在Linux也已经没有这个限制了。此外,GPT分区已经没有所谓的主、扩展、逻辑分区的概念,既然每组记录都可以独立存在,当然每个都可以视为是主要分区,每一个分区都可以拿来格式化使用。
3、启动流程中的BIOS与UEFI启动检测程序
BIOS搭配MBR/GPT的启动流程
- BIOS:启动主动执行的固件,会认识第一个可启动的设备
- MBR:第一个可启动设备的第一个扇区内的主引导记录块,内含启动引导代码
- 启动引导程序:一个可读取内核文件来执行的软件
- 内核文件:开始启动操作系统
如果启动引导程序支持GPT,那么使用BIOS同样可以读取到正确的操作系统内核;如果启动引导程序不懂GPT,如Windows XP的环境,就无法读取内核文件,就无法启动操作系统
Boot loader是操作系统安装在MBR上面的一个软件,主要任务有:
- 提供选项:用户可以选择不同的启动选项,这也是多重引导的重要功能
- 加载内核文件:直接指向可使用的程序区段来启动操作系统
- 转交其他启动引导程序:将启动管理功能转交给其他启动引导程序负责
启动引导程序除了可以安装在MBR之外,还可以安装在每个分区的启动扇区,这才造就了“多重引导”的功能,如图:
我们可以做个总结:
- 每个分区都有自己的启动扇区
- 图中的系统分区为第一及第二分区
- 实际可启动的内核文件是放置到各分区中的
- 启动引导程序只会认识自己的系统分区内的可启动的内核文件,以及其他启动引导程序而已
- 启动引导程序可直接指向或是间接将管理权转交给另一个管理程序
如果要安装多重引导,最好先安装Windows再安装Linux,否则原本在MBR内的Linux的启动程序就会被覆盖,使得MBR的启动引导程序就只会有Windows选项,而不会有Linux选项
UEFI BIOS搭配GPT启动的流程
我们知道GPT可以提供64位的寻址,然后也能够使用较大的区块来处理启动引导程序,但是BIOS其实不懂GPT。还得要通过GPT提供兼容模式才能够读写这个磁盘设备,而且BIOS仅是16位的程序,在与现阶段的新的操作系统接轨方面有点弱。因此,就诞生了UEFI这个统一可扩展固件接口
UEFI也称UEFI BIOS,用C语言编写
传统BIOS与UEFI的差异:
比较项目 | 传统BIOS | UEFI |
---|---|---|
使用程序语言 | 汇编语言 | C语言 |
硬件资源控制 | 使用中断(IRQ)管理 | 使用驱动程序与协议 |
不可变的内存存取 | ||
不可变的输入/输出存取 | ||
处理器运行环境 | 16位 | CPU保护模式 |
扩充方式 | 通过IRQ连接 | 直接加载驱动程序 |
第三方厂商支持 | 较差 | 较佳且可支持多平台 |
图形能力 | 较差 | 较佳 |
内置简化操作系统环境 | 不支持 | 支持 |
UEFI当初在开发的时候,就制定了一些规则在里面,包括硬件资源使用轮询的方式来管理,与BIOS直接使用CPU以中断的方式来管理比较,这种轮询的效率稍微低一些
UEFI加入了一个所谓的安全启动功能,这个功能代表着即将启动的操作系统必须要被UEFI验证,否则就无法启动。在某些时刻,你可能要将secure boot功能关闭,才能够顺利进入Linux
虽然UEFI可以直接获取GPT的分区表,不过最好依旧拥有BIOS boot的分区支持
同时,为了与Windows兼容,并且提供其他第三方厂商所使用的UEFI应用程序存储的空间,你必须要格式化一个FAT格式的文件系统分区,大约提供512MB到1GB左右的大小,以让其他UEFI执行较为方便
4、Linux安装模式下,磁盘分区的选择
目录树结构
目录树结构是以根目录为主,然后向下呈现为分支状的目录结构的一种文件结构,所以整个目录树架构最重要的就是那个根目录,这个根目录的表示方法为一条斜线“/”,所有的文件都与目录树有关
文件系统与目录树的关系(挂载)
所谓的“挂载”就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下;也就是说进入该目录就可以读取该分区的意思
发行版安装时,挂载点与磁盘分区的规划
强烈建议使用“自定义安装”这个安装模式
A:初次接触Linux:只要划分“/“及”交换分区“即可
B:建议分区的方法:预备一个备用的剩余磁盘容量
三、安装Linux前的规划
1、选择合适的Linux的发行版
CentOS官方网站:http://mirror.centos.org/centos/7/isos/
中科大镜像站:http://centos.ustc.edu.cn/centos/7/isos/
清华大学镜像站:http://mirrors.tuna.tsinghua.edu.cn/centos/7/isos
必须将它以“镜像文件格式”刻录成CD或DVD才行
2、主机的规划服务与硬件关系
- NAT(完成IP分享器的功能)
- SAMBA(加入Windows网络邻居)
- Mail(邮件服务器)
- Web(WWW服务器)
- DHCP(提供客户端自动获取IP的功能)
- FTP
3、主机硬盘的主要规划
最简单的分区方法
仅划分出根目录与内存交换分区(/与swap),再预留一些剩余的磁盘空间以供后续的练习之用
稍微麻烦的方法
根据用途去分析,如:
- /boot
- /
- /home
- /var
- swap
特别注意您的服务种类,然后才进行硬盘的规划