鸟哥的Linux私房菜基础学习篇 第2章的重点探索

鸟哥的Linux私房菜基础学习篇 第2章的重点探索

前言

有了前两章的基础,已经是初识了Linux,接下来的第2章是真正揭开它神秘面纱的第一步,鸟哥在这里给我们说明了在开始安装Linux之前,应该要先思考的工作,同时还引入了会让包括笔者在内很多初学者都深感困惑的“Linux文件系统的基本概念”。

一、Linux与硬件的搭配

1.硬件的选择

Linux内核针对新硬件所采用的驱动程序模块比不上硬件更新的速度,加上硬件厂商针对Linux所推出的驱动程序较慢,因此在我们选购新的个人计算机(或服务器)时,最好要选择已经通过Linux测试的硬件。当我们想要购买或是升级某些计算机组件时,应该要特别注意该硬件是否有针对您的操作系统提供适当的驱动程序。
作为小型服务器使用的Linux需要的硬件:不算太旧的CPU+越大越好的内存(比CPU还要重要)+依情况而定的硬盘+依情况而定的显卡+不错的网卡+说的过去的光盘、软盘、键盘与鼠标等。
依情况而定的硬盘:一般小型服务器对硬盘容量要求不大,20GB足矣,做备份或是小企业的文件服务器可能用到磁盘阵列模式(RAID)(将数个硬盘整合,最终操作系统只能看到最后整合的大硬盘)
依情况而定的显卡:不需要X-Window,显卡有就可以;需要X-Window显卡最好拥有32MB以上的显存

可以在Linux的HowTo(前一章的The Linux Documentation Project网站 link.中有相关做法)文件中查询硬件的支持情况,还可以到各个相关的Linux发行版网站去查询,一下时鸟哥帮我们列出的几个常用的硬件与Linux发行版搭配的网站:
Red Hat的硬件支持:link.
openSUSE的硬件支持: link.
Linux对笔记本电脑的支持:link.
Linux对打印机的支持:link.

2.硬件设备在Linux中的文件名

在Linux系统中,每个设备都被当成一个文件来对待。
在Linux这个系统当中,几乎所有的硬件设备文件都在/dev这个目录内。
下面列出几个常见的设备与其在Linux当中的文件名:

设备 设备在Linux中的文件名
SCSI、SATA、USB磁盘驱动器 /dev/sd[a-p]
U盘 /dev/sd[a-p] (与SATA相同)
Virtio接口 /dev/vd[a-p] (用于虚拟机内)
软盘驱动器 /dev/fd[0-7]
打印机 /dev/fd[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] (旧式系统才有)

更多Linux内核支持的硬件设备与文件名,可以参考如下网页:link.
PS:上面连接打不开的可以到这个链接link.
为了加速,虚拟机中的磁盘是使用模拟器产生的(虚拟化软件:Windows系统-VirtualBox;Linux系统-系统内的虚拟系统管理器,大多是KVM这个软件)

二、磁盘分区

1.磁盘连接方式与设备文件名的关系

磁盘即硬盘可以被划分成多个分区(partition)(类比Windows的C、D、E盘)
为何引入分区的概念:一方面是考虑到数据的安全性,当需要某个分区的数据重新整理时不会影响其他分区,另一方面则是基于系统的性能考虑,分区之后磁盘读取数据更有针对性,便于提速
磁盘连接方式:个人计算机常见的磁盘接口中目前主流的是SATA接口。
设备文件名的确定:根据Linux内核检测到磁盘的顺序来命名(例如安插两个SATA磁盘到主板上的SATA1和SATA5卡槽,SATA1插槽上的文件名为/dev/sda,SATA5插槽上的文件名为/dev/sdb,假设还有一个USB磁盘,它就是/dev/sdc,是系统启动完成后才被系统识别的)
第一个扇区:对整块磁盘来说,它之所以最为重要,是因为第一个扇区(512字节)(旧的磁盘)记录了整块磁盘的重要信息,即主引导记录(Master Boot Record,MBR)和分区表(partition table)
MBR:可以安装启动引导程序的地方,446字节
分区表:记录整块硬盘分区的状态,64字节

2.MBR与GPT两种分区表格式

MBR:在这里插入图片描述
可以把这个图理解成一摞硬盘的横截面
1.其实所谓的分区只是针对那个64字节的分区表进行设置而已
2.硬盘默认的分区表仅能写入四组分区信息
3.这四组划分信息我们称为主要(Primary)或扩展(Extended)分区
4.分区的最小单位通常为柱面(Cylinder)
在这里插入图片描述
扩展分区的目的:使用额外的扇区来记录分区信息,扩展分区本身并不能拿来格式化(更像是一种概念性的存在),我们可以通过扩展分区所指向的那个区块继续做分区的记录,它内部划分出的逻辑分区才可以格式化
逻辑分区的设备命名:需保留前面四个号码给扩展分区,即其中的设备名称号码就由5号开始
注意:
1.主要分区与扩展分区最多一共可以有4个,而扩展分区最多只能有1个
2.能够被格式化的分区是主要分区与逻辑分区
3.逻辑分区的数量依操作系统而定(Linux操作系统中SATA硬盘已经可以突破63个以上的分区限制)
4.如果扩展分区被破坏,所有逻辑分区将会被删除,因为逻辑分区的信息都记录在扩展分区里面
5.当要划分超过四分区时必须有扩展分区,并且剩下所有空间都必须分给扩展分区(其中再划分逻辑分区)
6.一般建议将扩展分区的柱面号码分配在最后的柱面内(后读取到的)
7.操作系统无法使用2.2TB以上的磁盘容量(64字节四个分区,一个区的始末信息各用8字节存,最大容量限制(2^8) *512字节)
8.MBR仅有一个区块,被破坏后经常无法或很难恢复
9.MBR内的存放启动引导程序的区块仅446字节,无法存储较多的程序代码
GPT:
在这里插入图片描述

LBA(Logical Block Address):逻辑区块地址,GPT将磁盘所有区块以此LBA(默认512字节)来规划
区别于MBR的点:除了前面34个LBA外,整个磁盘的最后34个LBA也拿来作为另一个备份
LBA0(MBR兼容区块):类似MBR模式,有第一阶段的启动引导程序(446字节),剩下的分区表的位置这时被一个特殊的标志符替代了(用来表示此磁盘为GPT格式)
LBA1(GPT表头记录):记录分区表本身的位置及大小、记录备份的位置、放置了分区表的校验码(GPT是否正确运行)
LBA2-33(实际记录分区信息处):每个LBA可以记录4组分区,共可以记4*32=128组分区,每个LBA512字节,四个分区,一个区的始末信息各用8字节存,最大容量限制(2^64) *512字节

都可视为主要分区,都可格式化。
并非所有操作系统都可以读取到GPT磁盘分区格式,能否如此与启动的检测程序(BIOS与UEFI)有关。

3.BIOS与UEFI

(1)BIOS搭配MBR/GPT的启动流程

整个启动流程到操作系统之前的过程应该如此:
1.BIOS:启动主动执行的固件,会认识第一个可启动的设备
2.MBR:第一个可启动设备的第一个扇区内的主引导记录块,内含启动引导代码
3.启动引导程序(boot loader):一个可读取内核文件来执行的软件
4.内核文件:开始启动操作系统

如果启动引导程序不懂GPT,那自然无法读取内核文件,就无法启动操作系统。
PS:由于LBA0仅提供第一阶段的启动引导程序代码,因此如果使用类似grub的启动引导程序的话,就得额外划分出一个“BIOS boot”的分区,这个分区才能够防止其他开机过程所需的程序。

启动引导程序的主要任务:
1.提供选项:用户可以选择不同的启动选项,是多重引导的重要功能
2.加载内核文件:直接指向可以使用的程序区段来启动操作系统(实际可启动的内核文件时放置到各分区中的)
3.转交其他启动引导程序:将启动管理功能转交给其他启动引导程序负责(每个分区有各自的启动扇区(boot sector),启动引导程序除了可以安装在MBR之外,还可以安装在此)
注意:
1.启动引导程序只会认识自己的系统分区内的可启动的内核文件,以及其他启动引导程序而已
2.要安装多重引导,最好先安装Windows,再安装Linux

(2)UEFI BIOS搭配GPT启动的流程

UEFI主要像取代BIOS这个固件接口,因此也称UEFI BIOS,它像一个低级的操作系统,但因为效果华丽但性能不佳(包括对硬件资源的管理使用轮询的方式),还是大多用于实现启动操作系统之前的硬件检测等。
UEFI加入了一个所谓的安全启动(secure boot)功能,代表即将启动的操作系统必须被UEFI验证,某些时刻,可能要将其关闭,才能顺利进入Linux。
可以直接获取GPT分区表,但最好依旧拥有BIOS boot的分区支持。
必须要格式化一个FAT格式的文件系统分区,大约提供512MB到1GB左右的大小(为了兼容Windows,也为提供其他第三方厂商所使用的UEFI应用程序存储的空间)

4.目录树与挂载

目录树架构(directory tree):以根目录为主,然后向下呈现为分枝状的目录结构的一种文件架构,所有的文件都与目录树有关
根目录(root directory):“/”一条斜线,整个目录树架构最重要的
在这里插入图片描述

挂载:利用一个目录当成进入点,将磁盘分区的数据放置在该目录下,也就是说进入该目录就可以读取该分区(test使用的是/home这个进入点而不是/)

发行版安装时,挂载点与磁盘分区的规划:
鸟哥强烈建议我们使用“自定义(Custom)安装/专家模式(Expert)安装”,如果是初次安装,进化分两个分区“/与交换分区”即可,预留一个备用的剩余磁盘容量(后续练习分区之用,或备份值得的脚本或文件)

三、安装Linux前的规划

鸟哥选择了CentOS这一个号称与RHEL完全兼容的版本来练习,可以选择到CentOS的官方网站去下载最新版本,大陆现也有镜像站(mirror site),下载更快:
CentOS官方网站:link.
中科大镜像站:link.
清华大学镜像站:link.
网速够快-完整版本(everything)
光驱安装-DVD版本
不想安装只想看看-Live CD/LiveGNOME/LiveKDE等版本测试
仅作练习-最小安装光盘版(Minimal)
不建议使用浏览器下载,可以使用FTP客户端程序来下载,例如FileZillalink.,可以断点续传不担心掉线。
常见的某些服务与硬件的关系:
NAT(完成IP分享器的功能)-需要好网卡
SAMBA(加入Windows网络邻居)-看重网卡与硬盘的大小和速度
Mail(邮件服务器)-看重硬盘容量与网卡速度
Web(WWW服务器)-最终是内存,CPU等级不能太低
DHCP(提供客户端自动获取IP的功能)-硬件要求不高
FTP-看重硬盘容量与网卡好坏

数据的分类与数据安全(当主机系统的硬件出现问题时,你的文件数据能否安全地保存)在硬盘分区时都要考虑好。
最简单的分区方法:/与swap(一个小细节坏掉挽救困难)
稍微麻烦一点的方式:分析用途,分立出需要较大容量的目录以及读写较为频繁的目录,/boot 、 / 、/home、 /var 、 swap

总结

硬盘分区的技巧需要对Linux文件结构有相当程度的认知之后才能做比较完善的规划,都说没有安装过十次以上的Linux系统,是学不会Linux与磁盘分区的,只能说不仅要进一步向前学习,还要反复巩固之前的内容才有可能真正弄的明白吧!

猜你喜欢

转载自blog.csdn.net/ClaireTang1/article/details/113617548
今日推荐