资讯详情

存储结构与磁盘划分

存储结构分为磁盘

一切从/开始

在Linux在系统中,目录、字符设备、块设备、套接字、打印机等都被抽象成文件

在 Windows操作系统中,想要找到一个文件,我们要依次进入该文件所在的磁 盘分区(假设这里是D盘),然后进入分区下的具体目录,最后找到文件。但是在Linux 不存在于系统中 C/D/E/F等盘符,Linux系统中的所有文件均从根(/)目录开始,并按照 文件系统层次标准(FHS)将文件存储在树形结构中,并定义常见目录的用途。另外,Linux 系统中的文件和目录名称严格区分大小写。

Linux系统中的文件存储结构: [外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-71TDNJ2V-1589972331256)(image/2020-05-19-18-14-03.png)]

前文提到的 FHS 是根据以往无数 Linux 总结了系统用户和开发者的经验 在 Linux 在系统中存储文件时需要遵守的规则用于指导我们应该将文件件的位置 告诉用户在哪里找到所需的文件。

在 Linux 在系统中,最常见的目录和 存储内容如表所示:

[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-PMRKDfI3-1589972331258)(image/2020-05-19-18-15-16.png)]

在 Linux 系统中还有一个重要的概念路径。路径是指如何定位文件, 分为绝对路径和相对路径。绝对路径是指从根目录(/)开始编写的文件或目录名称 路径是指相对于当前路径的写法。


物理设备命名规则

在 Linux 系统中的一切都是文件,硬件设备也不例外。既然是文件,就必须有文件名称。 在系统内核中 udev 为了让用户通过设备文件的名称,设备管理器将自动规范硬件名称 单词可以猜测设备的一般属性和分区信息;这对陌生设备特别方便。另外,udev 设备管理器的服务将始终以保护过程的形式运行,并对内核发出的信号进行管理/dev 目录下的 设备文件。Linux 系统中常见硬件设备的文件名称如表所示 所示。 [外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-nSleXxcD-1589972331260)(image/2020-05-19-18-21-37.png)]

主机上可以有多个硬盘,所以系统使用 a~p 来代表 16 不同的硬盘块(默认从 a 开始 分配),硬盘的分区号也很讲究:

主分区或扩展分区的编号 1 开始,到 4 结束;

逻辑分区从编号 5 开始

硬盘设备由大量的风扇区组成,每个风扇区的容量为 512 字节。其中 第一记录和分区表信息保存在第一个风扇区域。就第一扇区而言,主引导记 录需要占用 446 分区表为字节 64 字节,结束符占用 2 字节,每个分区记录在分区表中 信息就需要 16 字节最多只有这样 4 第一个扇区可以写个分区信息 4 个分区就 是 4 个主分区。

第一扇区域的数据信息如图所示 6-3 所示 [外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-8Hi1XoT2-1589972331263)(image/2020-05-19-18-29-59.png)]

为了解决分区数量不足 第一扇区的分区表中可以提出问题 16 字节(原本写在主分区信息中)的空间(称为扩展) 拿出来指向另一个分区。也就是说,扩大分区不是真正的分区,而是更像 是一个占用 16 字节分区表空间指针-指向另一个分区的指针。这样,用户一 一般选择使用 3 个主分区加 1 扩展分区的方法,然后在扩展分区中创建几个逻辑分区, 从而满足多分区(大于 4 个)需求。

主分区、扩展分区、逻辑分区可以像图 6-4 规划。 [外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-n9L3gvjM-1589972331266)(image/2020-05-19-18-34-29.png)]


文件系统和数据数据

用户在硬件存储设备中执行的文件建立、写入、读取、修改、转存和控制是基于 这取决于文件系统。文件系统的作用是合理规划硬盘,以确保用户的正常使用需求。Linux 该系统支持数十种文件系统,如下所示。

  • Ext3:是日志文件系统,可避免系统异常停机时文件系统数据丢失, 自动修复数据的不一致性和错误性。然而,当硬盘容量较大时,所需的修复时间也会很长,数据不会100%丢失。它将把整个磁盘的每一个都写进动作中 提前记录所有细节,以便在异常停机后追踪中断部分。 后尝试进行修复。
  • Ext4 :Ext3 作为 RHEL 6 系统中的默认文件管理系统支持存储容量 量高达 1EB(1EB=1,073,741,824GB),而且可以有无限的子目录。Ext4 文件系 统能批量分配 block 块,大大提高了读写效率。
  • XFS:它是一个高性能的日志文件系统 RHEL 7 其默认文件管理系统 意外停机后的优势特别明显,即可以快速恢复可能被破坏的文件,并且强大 日志功能只使用低成本的计算和存储性能。它最大的可支持存储容量是 18EB, 这几乎满足了所有的需求。

硬盘每天需要保存的数据太多了,所以 Linux 系统中有一个名字 super block 的“硬 盘地图”。Linux 文件内容不是直接写在这张硬盘地图里,而是记录在里面 文件系统的信息。因为如果把所有的文件都写进去,它的体积会变得很大, 而且文件内容的查询和写入速度会变慢。Linux 只记录每个文件的权限和属性 inode 每个文件占据一个独立的 inode 表格,该表格的大小默认为 128 记住字节 记录以下信息:

  • 访问文件的权限(read、write、execute);
  • 文件的所有者和所属组(owner、group);
  • 文件的大小(size);
  • 文件的创建或内容修改时间(ctime);
  • 文件的最后一次访问时间(atime);
  • 修改文件的时间(mtime);
  • 文件的特殊权限(SUID、SGID、SBIT);
  • 该文件的真实数据地址(point)。

文件的实际内容保存在 block 块中(大小可以是 1KB、2KB 或 4KB),一个 inode 的 默认尺寸仅为 128B(Ext三、记录一个 block 则消耗 4B。当文件的 inode 被写满后,Linux 系 统会自动分配一个 block 块,专门用于图像 inode 记录其他人 block 块的信息,所以每个块的信息 block 将块的内容串在一起,让用户读取完整的文件内容。存储文件内容 block 块有以下两种常见情况(见 4KB 的 block 以大小为例)。

  • 情况 1:文件很小(1)KB),但还是会占一个 block,所以会有潜在的浪费 3KB。
  • 情况 文件很大(5)KB),然后会占两个 block(5KB-4KB 后剩下的 1KB 也要占 用一个 block)。

计算机系统在开发过程中产生了许多文件系统,使用户在阅读或写入文件时不需要 关注底层的硬盘结构,Linux内核中的软件层为用户程序提供了一个VFS (Virtual File System, 虚拟文件系统)接口,使用户实际上在操作文件时统一操作虚拟文件系统 了。图 6-5 所示为 VFS 架构示意图。由此可见,实际文件系统在 VFS 隐藏自己的特点 还有细节,这样用户在日常使用中就会觉得文件系统是一样的 在任何文件系统中进行各种操作(例如使用) cp 命令复制文件)。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S5xDlPFx-1589972331269)(image/2020-05-19-18-46-27.png)]


文件设备挂载

拿到全新的硬盘存储设备后,先分区, 然后格式化,最后挂载正常使用。

当用户需要硬盘时 当设备或分区中的数据时,需要首先将其与现有的目录文件联系起来,这种关联动作是 是挂载。

mount 命令用于挂载文件系统,格式为mount 文件系统 挂载目录。mount 命令中可用 参数及作用如表所示 6-3 所示。在使用硬件设备之前,的最后一步。只需使用 mount 命令将硬盘设备或分区与目录文件关联,然后在此目录中看到硬件设置 数据准备好了。对于比较新的 Linux 就系统而言,一般不需要使用-t 指定文件系统类别的参数 型,Linux 自动判断系统。而 mount 中的-a 参数强大,执行后自动检查 /etc/fstab 文件中是否有遗漏的设备文件,如有,则自动挂载。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dCUhl6ml-1589972331270)(image/2020-05-19-18-56-14.png)]

例如,设备/dev/sdb2 挂载到/backup 目录,只需要在 mount 填写设备和挂载目录 参数就行系统会自动去判断要挂载文件的类型,因此只需要执行下述命令即可:

# mount /dev/sdb2 /backup 

虽然按照上面的方法执行 mount 命令后就能立即使用文件系统了,但系统在重启后挂 载就会失效,也就是说我们需要每次开机后都手动挂载一下。这肯定不是我们想要的效果, 如果想让硬件设备和目录永久地进行自动关联,就必须把挂载信息按照指定的填写格式 “设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检”(各字段的意义见表 6-4) 写入到/etc/fstab 文件中。这个文件中包含着挂载所需的诸多信息项目,一旦配置好之后就 能一劳永逸了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AbbRbtlh-1589972331272)(image/2020-05-19-18-57-33.png)]

如果想将文件系统为 ext4 的硬件设备/dev/sdb2 在开机后自动挂载到/backup 目录上,并 保持默认权限且无需开机自检,就需要在/etc/fstab 文件中写入下面的信息,这样在系统重启 后也会成功挂载。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PAYSxYBF-1589972331276)(image/2020-05-19-19-00-09.png)]

umount 命令用于撤销已经挂载的设备文件,格式为“umount [挂载点/设备文件]”。我们 挂载文件系统的目的是为了使用硬件资源,而卸载文件系统就意味不再使用硬件的设备资源; 相对应地,挂载操作就是把硬件设备与目录进行关联的动作,因此卸载操作只需要说明想要 取消关联的设备文件或挂载目录的其中一项即可,一般不需要加其他额外的参数。我们来尝 试手动卸载掉/dev/sdb2 设备文件:

# umount /dev/sdb2 

添加硬盘设备

添加硬盘设备的 操作思路:首先需要在虚拟机中模拟添加入一块新的硬盘存储设备,然后再进行分区、格 式化、挂载等操作,最后通过检查系统的挂载状态并真实地使用硬盘来验证硬盘设备是否 成功添加。

添加硬盘设备的 操作思路:首先需要在虚拟机中模拟添加入一块新的硬盘存储设备,然后再进行分区、格 式化、挂载等操作,最后通过检查系统的挂载状态并真实地使用硬盘来验证硬盘设备是否 成功添加。

首先把虚拟机系统关机,稍等几分钟会自动返回到虚拟机管理主界面,然后单击“编 辑虚拟机设置”选项,在弹出的界面中单击“添加”按钮,新增一块硬件设备,如图 66 所示。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OxuzNyl3-1589972331277)(image/2020-05-19-19-09-04.png)]

选择想要添加的硬件类型为“硬盘”,然后单击“下一步”按钮就可以了,这确实没有什 么需要进一步解释的,如图 6-7 所示。 选择虚拟硬盘的类型为 SCSI(默认推荐),并单击“下一步”按钮,这样虚拟机中的设备 名称过一会儿后应该为/dev/sdb,如图 6-8 所示 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TiX6tQuT-1589972331280)(image/2020-05-19-19-09-50.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kwdkBBsE-1589972331281)(image/2020-05-19-19-10-09.png)]

选中“创建新虚拟磁盘”单选按钮,而不是其他选项,再次单击“下一步”按钮,如图 6-9 所示 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DQCPYmaC-1589972331282)(image/2020-05-19-19-11-04.png)]

将“最大磁盘大小”设置为默认的 20GB。这个数值是限制这台虚拟机所使用的最大硬盘 空间,而不是立即将其填满,因此默认 20GB 就很合适了。单击“下一步”按钮,如图 6-10 所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N3fMD95t-1589972331283)(image/2020-05-19-19-11-31.png)]

设置磁盘文件的文件名和保存位置(这里采用默认设置即可,无需修改),直接单击“完 成”按钮,如图 6-11 所示。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yBCxHHAi-1589972331284)(image/2020-05-19-19-11-53.png)]

将新硬盘添加好后就可以看到设备信息了。这里不需要做任何修改,直接单击“确认” 按钮后就可以开启虚拟机了,如图 6-12 所示。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-04OGWlCx-1589972331286)(image/2020-05-19-19-12-19.png)]

在虚拟机中模拟添加了硬盘设备后就应该能看到抽象成的硬盘设备文件了。按照前文讲 解的 udev 服务命名规则,第二个被识别的 SCSI 设备应该会被保存为/dev/sdb,这个就是硬盘 设备文件了。但在开始使用该硬盘之前还需要进行分区操作,例如从中取出一个 2GB 的分区 设备以供后面的操作使用

在 Linux系统中,管理硬盘设备最常用的方法就当属fdisk命令了。fdisk命令用于管理磁盘 分区,格式为“fdisk [磁盘名称]”,它提供了集添加、删除、转换分区等功能于一身的“一站式 分区服务”。不过与前面讲解的直接写到命令后面的参数不同,这条命令的参数(见表6-5)是交 互式的,因此在管理硬盘设备时特别方便,可以根据需求动态调整。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ImIx5hHP-1589972331287)(image/2020-05-19-19-18-16.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M4nFKiRY-1589972331288)(image/2020-05-19-19-18-29.png)]

我们首先使用 fdisk 命令来尝试管理/dev/sdb 硬盘设备。在看到提示信息后输入参数 p 来 查看硬盘设备内已有的分区信息,其中包括了硬盘的容量大小、扇区个数等信息:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vOzV6kxk-1589972331289)(image/2020-05-19-19-19-16.png)] 输入参数 n 尝试添加新的分区。系统会要求您是选择继续输入参数 p 来创建主分区,还 是输入参数 e 来创建扩展分区。这里输入参数 p 来创建一个主分区: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NwpGHnA6-1589972331290)(image/2020-05-19-19-20-42.png)] 在确认创建一个主分区后,系统要求您先输入主分区的编号。我们在前文得知,主分区的编 号范围是 1~4,因此这里输入默认的1就可以了。接下来系统会提示定义起始的扇区位置,这不 需要改动,我们敲击回车键保留默认设置即可,系统会自动计算出最靠前的空闲扇区的位置。最 后,系统会要求定义分区的结束扇区位置,这其实就是要去定义整个分区的大小是多少。我们不 用去计算扇区的个数,只需要输入+2G即可创建出一个容量为2GB 的硬盘分区。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-16bjLf2h-1589972331291)(image/2020-05-19-19-25-22.png)] 再次使用参数 p 来查看硬盘设备中的分区信息。果然就能看到一个名称为/dev/sdb1、起 始扇区位置为 2048、结束扇区位置为 4196351 的主分区了。这时候千万不要直接关闭窗口, 而应该敲击参数 w 后回车,这样分区信息才是真正的写入成功啦 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qqBUzvFa-1589972331293)(image/2020-05-19-19-25-53.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yj4edPx1-1589972331294)(image/2020-05-19-19-26-08.png)]

在上述步骤执行完毕之后,Linux 系统会自动把这个硬盘主分区抽象成/dev/sdb1 设备文 件。我们可以使用 file 命令查看该文件的属性,但是刘遄老师在讲课和工作中发现,有些时候 系统并没有自动把分区信息同步给 Linux 内核,而且这种情况似乎还比较常见(但不能算作 是严重的 bug)。我们可以输入 partprobe 命令手动将分区信息同步到内核,而且一般推荐连续 两次执行该命令,效果会更好。如果使用这个命令都无法解决问题,那么就重启计算机吧 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HCLhx8wh-1589972331296)(image/2020-05-19-19-27-15.png)] 如果硬件存储设备没有进行格式化,则 Linux 系统无法得知怎么在其上写入数据。因此, 在对存储设备进行分区后还需要进行格式化操作。在 Linux 系统中用于格式化操作的命令是 mkfs。这条命令很有意思,因为在 Shell 终端中输入 mkfs 名后再敲击两下用于补齐命令的 Tab 键,会有如下所示的效果: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pg0Ic6uh-1589972331297)(image/2020-05-19-19-28-18.png)] 这个 mkfs 命令很贴心地把常用的文件系统名称用后缀的方式保存成了多个命令文 件,用起来也非常简单—mkfs.文件类型名称。例如要格式分区为 XFS 的文件系统,则命令 应为 mkfs.xfs /dev/sdb1 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZWOkKIJy-1589972331298)(image/2020-05-19-19-28-37.png)] 终于完成了存储设备的分区和格式化操作,接下来就是要来挂载并使用存储设备了。与 之相关的步骤也非常简单:首先是创建一个用于挂载设备的挂载点目录;然后使用 mount 命 令将存储设备与挂载点进行关联;最后使用 df -h 命令来查看挂载状态和硬盘使用量信息。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R0eOy2CO-1589972331300)(image/2020-05-19-19-34-01.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6lTeSQOQ-1589972331301)(image/2020-05-19-19-34-10.png)]

该命令用来查看一个或多个文件占用了多大的硬盘空间。可 以使用 du -sh /*命令来查看在 Linux 系统根目录下所有一级目录分别占用的空间大小。


添加交换分区

SWAP(交换)分区是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时不常 用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设 计目的是为了解决真实物理内存不足的问题。但由于交换分区毕竟是通过硬盘设备读写数据的, 速度肯定要比物理内存慢,所以只有当真实的物理内存耗尽后才会调用交换分区的资源。

交换分区的创建过程与前文讲到的挂载并使用存储设备的过程非常相似。在对/dev/sdb 存 储设备进行分区操作前,有必要先说一下交换分区的划分建议:在生产环境中,交换分区的 大小一般为真实物理内存的 1.5~2 倍

创建一个交换分区 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8aLzMM9K-1589972331302)(image/2020-05-20-16-48-05.png)]

使用 SWAP 分区专用的格式化命令 mkswap,对新建的主分区进行格式化操作:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Yj6UFAe-1589972331303)(image/2020-05-20-16-49-35.png)]

使用 swapon 命令把准备好的 SWAP 分区设备正式挂载到系统中。我们可以使用 free -m 命 令查看交换分区的大小变化(由 2047MB增加到 7167MB): [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MkdtwQ4o-1589972331304)(image/2020-05-20-16-51-40.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hv30kkpW-1589972331305)(image/2020-05-20-16-51-52.png)] 为了能够让新的交换分区设备在重启后依然生效,需要按照下面的格式将相关信息写入 到配置文件中,并记得保存: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VXoaonMk-1589972331307)(image/2020-05-20-16-53-00.png)]


磁盘容量配额

硬件资源是固定且有限的,如果某些用户不断地 在 Linux 系统上创建文件或者存放电影,硬盘空间总有一天会被占满。针对这种情况,root 管 理员就需要使用磁盘容量配额服务来限制某位用户或某个用户组针对特定文件夹可以使用的 最大硬盘空间或最大文件个数,一旦达到这个最大值就不再允许继续使用。可以使用 quota 命 令进行磁盘容量配额管理,从而限制用户的硬盘可用容量或所能创建的最大文件个数。quota 命令还有软限制和硬限制的功能。

  • 软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。
  • 硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。

软硬连接方式

在 Windows 系统中,快捷方式就是指向原始文件的一个链 接文件,可以让用户从不同的位置来访问原始的文件;原文件一旦被删除或剪切到其他地方 后,会导致链接文件失效。

在 Linux 系统中存在硬链接和软连接两种文件。

  • 硬链接(hard link):可以将它理解为一个“指向原始文件 inode 的指针”,系统不为 它分配独立的 inode 和文件。所以,硬链接文件与原始文件其实是同一个文件,只 是名字不同。我们每添加一个硬链接,该文件的 inode 连接数就会增加 1;而且只 有当该文件的 inode 连接数为 0 时,才算彻底将它删除。换言之,由于硬链接实际 上是指向原文件 inode 的指针,因此即便原始文件被删除,依然可以通过硬链接文 件来访问。需要注意的是,由于技术的局限性,我们不能跨分区对目录文件进行链接。
  • 软链接(也成为符号链接[symbolic link]): 仅仅包含所链接文件的路径名,因此能链 接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件 也将失效,从这一点上来说与 Windows 系统中的“快捷方式”具有一样的性质。

ln 命令用于创建链接文件,格式为“ln [选项] 目标”,其可用的参数以及作用如表所示。 在使用 ln 命令时,是否添加-s 参数,将创建出性质不同的两种“快捷方式”。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ug3ziqSE-1589972331308)(image/2020-05-20-17-01-33.png)]

标签: fmd68m连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台