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

目录

  • 鸟哥的Linux私房菜基础学习篇 第2章的重点探索
  • 前言
  • 一、Linux与硬件的搭配
    • 1.硬件的选择
    • 2.硬件设备在Linux中的文件名
  • 二、磁盘分区
    • 1.磁盘连接方式与设备文件名的关系
    • 2.MBR与GPT两种分区表格式
    • 3.BIOS与UEFI
      • (1)BIOS搭配MBR/GPT的启动流程
      • (2)UEFI BIOS搭配GPT启动的流程
    • 4.目录树与挂载
  • 三、安装Linux前的规划
  • 总结

前言

有了前两章的基础,已经是初识了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与磁盘分区的,只能说不仅要进一步向前学习,还要反复巩固之前的内容才有可能真正弄的明白吧!

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

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

    目录 前言 一.Linux的文件权限 1.用户与用户组 2.文件权限初识 3.修改文件属性与权限 4.目录与文件的权限意义 5.Linux文件种类与扩展名 (1)文件种类 (2)Linux的扩展名与文 ...

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

    鸟哥的Linux私房菜基础学习篇 第0章与第1章的重点探索 目录 鸟哥的Linux私房菜基础学习篇 第0章与第1章的重点探索 前言 一.计算机概论 1.知识基础 2.知识初阶 3.知识进阶 二.Lin ...

  3. 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录

    目录 目录 前言 关于这本书 必看知识点 最后 前言 相信部分刚进入这个行业的新同学会对一个问题感到疑惑,为什么从培训学校出来的学员不被欢迎? 这里记录下一些我个人的看法(博主也曾有面试新员工的经历) ...

  4. 鸟哥的linux私房菜-基础学习篇 读书笔记

    从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...

  5. 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)

    鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一) 第零章 计算机概论 0.1 电脑:辅助人脑的好工具 0.1.1 计算机硬件五大组成部分 0.1.2 一切设计的起点: C ...

  6. 鸟哥的Linux私房菜-基础学习篇(第四版):鸟哥-电子书

    内容简介: 本书是知名度颇高的Linux入门书<鸟哥的Linux私房菜基础学习篇>的新版,全面而详细地介绍了Linux操作系统. 全书分为五部分:第一部分着重说明计算机的基础知识.Linu ...

  7. 《鸟哥的Linux 私房菜 基础学习篇(第三版)》——1.2 Torvalds的Linux开发

    本节书摘来自异步社区<鸟哥的Linux 私房菜 基础学习篇(第三版)>一书中的第1章,第1.2节,作者:鸟哥著,更多章节内容可以访问云栖社区"异步社区"公众号查看 1. ...

  8. 开发日记-20190612 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》

    Preface 今天效率真的感觉还不错呢= =,读书进度一口气推进了两章半,说真的,感觉现在看的东西大多数都是讲怎么用的,写这些其实意义不是很大,而且一般写下来后我后续也不会特地来回顾.所以我决定了, ...

  9. 开发日记-20190608 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》

    Preface 玩物丧志,玩物丧志. 一个端午的假期,还真的是让我休闲到了极点,呐,很多时候我真的在想,是不是一个人日常生活中存在太多诱惑,所以才在脑子里塞满了杂七杂八的东西,最后导致自己不能很好地思 ...

  10. 开发日记-20190522 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》

    前言 世界上最最愚蠢的事情就是重复,世界上最唯美的事情就是简单.把东西变得简单才是本事,这是我一直信奉的教条. 其实我一直想好好学学Linux,可是很多时候真的很无奈,尽管我挺喜欢买书而且在一定程度上 ...

最新文章

  1. @Autowire和@Resource注解使用的正确姿势,别再用错的了!!
  2. linux下eaccelerator,memcache,memcached安装
  3. sqrtm--矩阵的平方根
  4. 华为鸿蒙备胎转正,华为鸿蒙是备胎系统,但已经实现上网随时能转正?
  5. SAP UI5 testFLPService - local run will start mock server
  6. C# 从1到Core--委托与事件
  7. 深入浅出组合逻辑电路(3)常见的几种编码器
  8. C/C++之大端小端
  9. php larvel https,laravel 解决强制跳转 https的问题
  10. python安装无法直接安装的包
  11. Python零基础学习笔记(三十九)—— time
  12. linux下rfkill命令管理蓝牙和wifi
  13. Flex builder3相关
  14. Charles 4.2.7 for Mac 中文破解版
  15. 李克平教授讲座——《城市道路交叉口规划规范》解读与绿灯间隔(整理文本)...
  16. 微信小游戏实战--cocos creator实现wordle游戏(七)
  17. win10 旗舰版 系统激活出现 在连接到本地注册表时出现错误0x80041002 提示信息 解决方法...
  18. 获取checkbox选中状态的两种方式_张童瑶的博客
  19. 在线制作html模板,快速建站 20个设计优秀的HTML网站模板(免费)
  20. C#从入门到精通学习笔记——(2)

热门文章

  1. excel透视表(pivot table)
  2. proteus编程、仿真AVR单片机
  3. AVR单片机实现modbus通讯协议
  4. TensorBoard Projector 简易指南
  5. 一分钟详解智能快递柜电子锁结构
  6. Selina 爱我的每个人
  7. 【2022省选模拟】星际航道——网格图最小生成树、LCT
  8. 爬取QQ空间说说日志、好友个人信息并进行加密
  9. python开平方计算(求平方根)
  10. scratch成绩查询 电子学会图形化编程scratch等级考试四级真题和答案解析2022年6月