热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux运维之路002主机规划与磁盘划分

Linux运维之路002---主机规划与磁盘划分,Go语言社区,Golang程序员人脉社

请让我享受到被爱的滋味

    • Linux主机选购指南
      • 其他环境
    • 硬件装置在Linux中的文件名
    • MSDOS(MBR)与GPT磁盘分区表
      • MBR分区表
    • GPT 磁盘分区表
      • LBA功能介绍
    • 开机原理
      • BIOS+ MBR流程
      • UEFI BIOS+GPT开机流程
    • Linux系统下的磁盘分区
      • 文件系统与目录树的关系
    • 安装Linux前的规划
    • Linux主机的规划
      • 两种分类方式


Linux主机选购指南


  • CPU 普通的intell i3已经基本能够满足日常办公需求

  • RAM 主存储器越大越好,对于一般的而小型服务器来说,如果不够的话,就会使用的到硬盘的内存置换空间,因此对于小型服务器也至少小512MB以上的的主存储器容量较佳。

  • hard Disk 对于硬盘来讲,一般情况下如果是小型服务器,硬盘容量大于20GB就够用到不行了,但是不过是用来作为备份的话,我们可能就需要用到磁盘矩阵技术了(一种整合多个硬盘的技术,需要在硬盘上操作。)

  • VGA 显示适配器在服务器上几乎没有任何用处,只要能够让计算机启动就行了

  • network interface card 如果需要经常I/O的话,需要使用比较好点的网卡

  • 软盘 键盘与鼠标 ,非必须。
    总体上来说其实就是 : 1.i3CPU 2.RAM 3.有20G以上的硬盘 4.VGA一个(非必要)

其他环境

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


硬件装置在Linux中的文件名

首先,几乎所有的硬件装置文件都在/dev文件目录下


















装置在LInux下的文件名
SCSI/SATA/USB硬盘机/dev/sd[a-p]
USB 快闪碟/dev/sd[a-p]
virtl/O/dev/vd[a-p](用于虚拟机内)
软盘驱动器/dev/fd[0-7]
打印机/dev/usb/lp[0-15]
鼠标/dev/psaus(PS/2界面)
/dev/input/mouse[0-15]
/dev/mouse(当前鼠标)
CDROM/DVDROM/dev/scd[0-1]
/dev/sr[0-1](centos常见)

上述的编号的决定是由侦测到的书序老绝地鞥的文件名,并非和实际插槽代号有关。
l例题

tips:磁盘长啥样
示意图


MSDOS(MBR)与GPT磁盘分区表

目前分区表主要分为两类,一类是MBR分区表,一列是GPY分区表,他们对应着两种格式。


MBR分区表

早期的Linux系统为了兼容windos磁盘,因此使用的是支持windows的MBR的方式来处理开机管理程序与分区表。

MBR的英文全称叫做Master Boot Record 可以安装开机程序的地方。

对于以MBR方式处理的磁盘,这些东西都会扔在第一个山区,这个山区通常是512b,其中有446B是主启动区,也就是安装你MBR的地方。

剩下的64B,是分区表,它的主要作用是记录硬盘分区的状态。

由于分区表所在的区域仅有64B,因此最多只能记录四组,每组都记录各个区段的其实与结束的磁柱号码。

这四个分区的记录被称作,主要或者延伸分区槽,对于分区我们还需要知道:


  • 所谓的分区只是针对64B的分区表进行设定。

  • 硬盘默认的分区表只能写入四组分区信息

  • 分区槽的最小单位是磁柱

  • 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对分区表进行数据处理

    分区的一个主要原因是为了:

  • 数据的安全性

  • 系统性能考虑 (这个地方我倒是觉得有点意思,通过对磁盘的划分,实现搜索范围的缩小,简直绝了)

tips:

前文提到了,分区表只能记录四组数据,那么是否代表我们一颗硬盘之鞥呢分区出四个分区槽呢,显然不是这样的,我们可以借助EBR,来利用额外的扇区来记录更多的分区信息。

延伸分区的目的是使用额外的扇区来记录分区信息,这样分出来的槽叫做逻辑分区槽,所以也就是图中的101~400。

上述的分区槽在Linux系统中的装置文件叫做

在这里插入图片描述

其中之所以没有sda3 和 sda4 主要原因是前面的四个号码都是给Primary或者Extended用的.

tips:MBR主要分区,延伸分区。


  • 主要分区与延伸分区最多可以有四笔

  • 延伸分区最多只能有一个

  • 逻辑分区是延伸分区持续切割出来的分区槽

  • 被格式化之后,作为数据存取的分区槽为主要分区与逻辑分区。

  • 延伸分区无法被格式化

  • 逻辑分区的数量依操作系统不同而不同,在Linux系统中的SATA硬盘,已经可以突破63个以上的分区限制

分区的合并问题
在这里插入图片描述

请问深色区域是否可以合并:


  • 第一个图可以。原因是因为它们同属延伸分区内的逻辑分区,因此只要将两个分区槽删除,然后重新建立一个一个新的分区槽。

  • 第二个 不可以,因为一个是主分区,一个是逻辑分区,除非将延伸分区破坏掉之后重新分区,但这样会影响所有的逻辑分区,因为逻辑分区的信息储存在延伸分区中

  • tips: 如果分区超过四槽以上,一定有Extended分区槽

对于早期的MBR来说,他总是会有磁盘分区的个数的限制,同时,因为只有一个磁盘区域记载磁盘信息,因此,一旦出现问题,将会非常难修复,为了解决这些问题,出现了GPT格式的磁盘分区格式。


GPT 磁盘分区表

为了兼容所有的磁盘格式,因此GPT 采用LBA进行处理(针对盘区定义,LBA就是逻辑区块地址),GPT将所有的磁盘以此LBA进行规划。

与MBR使用第一个512B的区块记录不同,GPT使用34个来记录分区信息,MBR仅有一个区块,因此会很容易造成MBR信息丢失,但是GPT不同,除了钱34个LBA用来记录信息,最后33个LBA被拿来作为一个备份。


LBA功能介绍


  • LBA0(MBR相容区域)
    • 与MBR模式相似,这个兼容区块也分为两个部分,一个是和之前446B相似的区块,储存了开机管理程序,而另一个本来应该放分区表的地方,放入特殊标记,来表明此次盘是GPT格式。


  • LBA1(GPT 表头记录)

  • 这个部份纪录了分区表本身的位置与大小,同时纪录了备份用的 GPT 分区 (就是前面谈到 的在最后 34 个 LBA 区块) 放置的位置, 同时放置了分区表的检验机制码 (CRC32),操 作系统可以根据这个检验码来判断 GPT 是否正确。若有错误,还可以透过这个纪录区来 取得备份的 GPT(磁盘最后的那个备份区块) 来恢复 GPT 的正常运作!

  • LBA2-33()
    • 从 LBA2 区块开始,每个 LBA 都可以纪录 4 笔分区纪录,所以在默认的情况下,总共 可以有 432 = 128 笔分区纪录喔!因为每个 LBA 有 512bytes,因此每笔纪录用到 128 bytes 的空间,除了每笔纪录所需要的标识符与相关的纪录之外,GPT 在每笔纪录中分别提供了 64bits 来记载开始/结束的扇区号码,因此,GPT 分区表对于单一分区槽来说, 他 的最大容量限制就会在『 2 64 512bytes = 2 63* 1Kbytes = 2 33 *TB = 8 ZB 』,要注意 1ZB = 2 30 TB 啦! 你说有没有够大了?


开机原理

回顾,什么是BIOS,什么是CMOS。

对于前者,我们可以理解为是一个韧体,韧体就是写入到硬件的一个软件程序

对于后者CMOS是就来各项硬件参数的储存器

目前主流的开机方式主要有两种:BIOS+ MBR && UEFI+GPT


BIOS+ MBR流程


  1. BIOS在开机就会主动执行,会认识第一个可开机的装置

  2. MBR是第一个可开机装置的第一个扇区内的主要启动区块,内含卡机管理程序

  3. 运行加载开机管理程序(boot loader)

  4. 管理启动核心文件,开始操作系统的功能。

    boot loader主要任务有:

  • 提供选单 用户可以选择不同的开机项目



  • 载入核心文件 直接执行啊可开机的程序区段来开始操作系统



  • 转交其他的loader 将开机管理功能转交给其他loader负责



  • tips: 双系统工作原理

    对于双系统来讲,主要的技术支持便是开机管理程序中所提供的 选单工鞥呢,分区槽还有别的启动扇区。
    开机管理程序的工作执行示意图



此图主要描绘了

每个分区槽都拥有自己的启动扇区

图中的系统槽为第一及第二分区槽

实际可开机的核心文件是放置到各分区槽内的

loader只会认识自己的系统槽内的可开机核心文件,以及其他loader而已

loader可直接指向或者是简介将管理啊去哪转交给连一个管理程序

在日常生活中我们如果安装双系统一般都采用 先安装windows在安装Linux系统,因为对于Linux系统来讲我们是可以在loader手动设定选单,也就是说我么boot loader 里面加入windows开机选项。

对于windows来讲,他的安祖昂成怒向会主动覆盖MBR以及自己所在分区槽的启动扇区,你没有机会选择选单。


UEFI BIOS+GPT开机流程

GPT可以提供64B的寻址,然后使用较大的区块来处理开机管理程序,但是BIOS不能理解GPT的程序,所以我们需要透过GPT提供的兼容模式才能读写这个磁盘装置。

UEFI 叫做 统一可延伸韧体界面,它是用来取代BIOS这个韧体界面的,他们主要区别如下
在这里插入图片描述

tips:UEFI对于硬件资源的管理采用 polling(轮询)的方式来管理,与BIOS直接了解CPU以终端的方式来管理比较,这种效率相对更慢一点。

由于过去很多cracker经常藉由BIOS开机阶段来破坏系统,并取得系统的控制权,因此UEFI加入了安全启动机制,这个机制表示即将开机的操纵系统必须要被UEFI雅正,否则就无法顺利开机,不过由于这个机制导致很多操作系统无法进入Linux操作系统。

与BIOS模式相比,虽然UDFI可以直接取得GPT的分区IAO,不过为了与windows系统兼容,因此我们需要格式化一个vfat的文件系统,大约提供 512M 到1G左右的容量,以让其他的UEFI执行方便

由于UEFI已经克服了BIOS的1024磁柱问题,因此我们的开机传给你下放置到磁盘开始的钱2T位置即可。


Linux系统下的磁盘分区

目录树结构,对于整个Linux系统来说,最重要的就是目录树架构。

tips:目录树架构最重要的就是那个就是以根目录为主,然后呈现分支结构的文件架构,然后目录树架构最重要的就是那个根目录,这个根目录的表示方法为一条斜线


文件系统与目录树的关系

我们为了结合目录树的架构与磁盘内的数据,这个饿时候就牵扯到挂载问题了

所谓的瓜子啊就是利用一个目录当成进入点,将磁盘分区槽的数据放置在该目录下,也就是说进入该目录可以读取该分区槽的意思,这个而动作我们称为 挂载

那个进入点的额目录我们称为挂载点

由于Linux系统最重要的就是根目录,因此根目录一定需要挂载到某个分区槽的,至于其他的目录则按需挂载到不同的分区槽。


  • 不同操作系统如何读取光驱。

    在默认情况下Linux操作系统会把光驱挂载到到/media/cdrom文件夹下

    对Windows操作系统来说我们使用的是代号的方式进行处理。有本质的区别。

Linux的安装方式主要有两种

第一种叫做自定义安装

一般情况下,自定义安装。我们第一次接触Linux只要分区[/]以及swap即可

我们使用最大的分区槽来安主干系统,这样不怕分区错误造成无法安装的困境,

建议分区的方法 : 预留一个备用的剩余磁盘容量


这一部分分区槽的主要作用是

联系分区

备份重要的配置文件或者是script,这样下次再配置系统的时候就可以直接在硬盘当中找到。

天道酬勤


安装Linux前的规划

如果说我们把LInux的主要应用对象放到服务器。

Red Hat EnerprizseLinux系列系统是个比较好的选择,其中最有代表性就是CentOs操作系统。对于图形化界面如果有比较高的要求,那么我们就应该去找Ubuntu这样的操作系统。

根据用途不同,不同的distribution来讲有不同的侧重点,这个大家可以自己再去我之前的笔记里详细了解一下

tips:对于这些映像文件来说,我们可以在
清华大学开源镜像站里找到,点击旁边的获取下载连接就可以下载


根据需求不同 我们对Linux的硬件要求也是有比较大的区别的,主要有一下几类

NAT以及SAMBA等功能的实现

  • 对于这些功能来说NAT就是分享IP 的,这个地方大家可以理解成大门,他的任务就是让每一台联网的电脑都可以通过这一条大门走出去。因此这个地方就对网卡有比较大的要求,对于CPU或者RAM可能就不是有很大的要求

  • SAMBA 这个软件主要实现的是为各种windows主机提供文件和打印服务,并且可以作为DC与windows server域集成。听起来很唬人,但是就是,嗯,传文件

    : web服务器

  • 对于web服务企来说,我们一般情况下是要提供数据库系统的,因此我们需要较高的CPU等级,但是最重要的是提升RAM。

    : DHCP

  • 对于DHCP功能来说,一般这个功能我们都是放在路由器上去完成的,因为笔者是一名网络工程师,所以,对于路由器上的配置还是比较熟悉的,这里我们万网需要用到IP地址池,来让所有的连接到这台Router的PC获取IP地址。

    : FTP

  • 这个东西是在客户端与服务器架构中的一个网络协议标准,叫做文件传输协议。顾名思义,就是传输文件的,因此我们对他要求有较高的硬盘容量与质量较好的网卡。

Linux主机的规划

tips:这个地方主要是指 硬盘规划

这个地方的规划其实就类似于windows上的分区,我们windows上不是有很多C盘 D盘,等等,他们有很多就是对一个一盘的不同规划,往往C和D盘是在一起的,因此我们可以通过调成来使他们有不同的储存容量


两种分类方式

对于Linux操作系统来说,有两种主要的分区方法,最简单的一种是 / 和 swap两个分区,这个地方解释一下两个分区的含义。


  • / & Swap

    /:根目录,也就是几乎之后所有的文件目录结构的上机目录最终都能追溯到这里

    Swap: 这个目录下的左右是内存置换空间,他的功能就是咋物理内存不足的时候来帮助内存延伸记录的功能。理论上来说,我们的swap应该是不会被我们的系统所用到的,swap会被用到通常就是物理内存不足,而且因为swap是在硬盘中存储的,所以说,如果说我们内存不足的时候硬盘灯往往会开始闪。

  • 兼容性比较好的一种分类方式

    : /boot、 /、 /home、/var、Swap

    这里顺便解释一下很多其他的目录的作用吧











/boot//home/varSwap
这个是开机引导目录,包括Linux内核文件与开机所需要的文件根目录没什么好说的这个文件夹是系统默认的用户主文件夹这个文件夹中存放的
是经常动态变化的文件,包括cache logfile等等文件和mysql数据库文件
延展内存分区,也就是内存置换空间
  • 其他常用的文件目录结构

    除了之前介绍的那些,这里罗列一下我们还经常见到的文件夹的作用以及名称































文件夹作用
/bin系统由很多放置可执行文件的目录,但是bin目录比较特殊。因为bin目录下面放置的是在单用户维护模式下还能被操作的命令
/dev在linux中任何的设备和接口设备都是以文件的形式存在于这个目录当中。你只要到通过访问这个目录下的某个文件就相当于访问某个设备.
/etc统主要的配置文件几乎都放置在这个这个目录下面,例如人员的帐号密码文件,各种服务的起始文件等。一般来说,这个目录下面的各文件属性时可以让一般的用户查阅的,但是只有root用户有权先修改。FHS建议不要放置可执行的文件在这个目录下。
/lib系统函数库非常的多,而/lib下面放置则是开机时会用到的数据库,以及在/bin和/sbin下命令会调用的函数库。
/mediamedia是媒体的意思,顾名思义/media下面放置的就是可以删除的设备。包括软盘,光盘,dvd等都临时挂放在此。
/mnt如果你想挂在额外的设备,一般建议可以放在这个目录下,在比较早的时候这个目录的用途和/media的作用相同,只是有了/media之后,这个目录就用来暂时挂在用了。
/opt这个是给第三方软件放置的目录。不过,在以前的linux下我们喜欢放置在/usr/local下面。
/root系统管理员的主文件夹。
/sbin放在这下面为开机过程所需要的里面包括开机、修复、还原系统所需要的命令。
/srcsrc可以视作service的缩写,是一些网络服务启动后,这些服务需要取用的数据目录,常见的服务例如www,ftp等。
/tmp这是让一般的用户或者是正在执行的程序暂时放置文件的地方。
/proc这个目录本身是一个虚拟文件系统,它放置的数据都是在内存当中,不占用硬盘的容量。
/sys这个目录其实跟/proc非常的相似,也是一个虚拟的文件系统主要也是记录与内核相关的信息,不占用硬盘容量。
/usr这里面放置的数据属于可分享的与不可变动的(shareable,static),其实usr是UNIX SOFTWARE RESOURCE的缩写,而非user的缩写,也就是unix操作系统软件放置的位置而非用户的数据。

加油啊,少年们,用所有的努力与汗水去回敬他们的不可能,你我都在努力




推荐阅读
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • 在ubuntu服务器上安装vscode,但是目前使用的方法都无法成功。第一次安装经历:安装完anaconda后有自动安装vscode的选项,输入yes后,没有出现错误,但是在终端输 ... [详细]
author-avatar
461067805QQ
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有