加入收藏 | 设为首页 | 会员中心 | 我要投稿 成都站长网 (https://www.028zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

鸟哥Linux学习笔记(磁盘、分区、文件系统)

发布时间:2022-09-30 15:00:45 所属栏目:Linux 来源:互联网
导读: 磁盘与分区
磁盘(disk):分为硬盘和软盘,现在常用硬盘,如机械硬盘
分区(partition):一个磁盘是可以被分为多个分区的,比如常见的C:,D:,E:盘等,都是一个磁盘被分区了。
分区与挂载

磁盘与分区

磁盘(disk):分为硬盘和软盘,现在常用硬盘,如机械硬盘

分区(partition):一个磁盘是可以被分为多个分区的,比如常见的C:,D:,E:盘等,都是一个磁盘被分区了。

分区与挂载

所谓的“挂载”就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下; 也就是说,进入该目录就可以读取该分区的意思。这个动作我们称为“挂载”,那个进入点的目录我们称为“挂载点”。 由于整个Linux系统最重要的是根目录,因此根目录一定需要挂载到某个分区的。 至于其他的目录则可依使用者自己的需求来给予挂载到不同的分区。我们以下图来作为一个说明:

Linux 磁盘管理_linux查看磁盘空间大小_linux 磁盘修复工具

上图中假设我的硬盘分为两个分区,partition 1是挂载到根目录,至于partition 2则是挂载到/home这个目录。 这也就是说,当我的数据放置在/home内的各次目录时,数据是放置到partition 2的,如果不是放在/home下面的目录, 那么数据就会被放置到partition 1了!

文件系统

标准的Linux文件系统由三个东西决定,分别是inode、block、superblock,又叫EXT2文件系统。

考虑一下,如果我的文件系统高达数百GB时, 那么将所有的 inode 与 block 通通放置在一起将是很不智的决定,因为 inode 与 block 的数量太庞大,不容易管理。

为此之故,因此 Ext2 文件系统在格式化的时候基本上是区分为多个区块群组 (block group) 的,每个区块群组都有独立的 inode/block/superblock 系统。这就是所谓的分区。整个来说,Ext2 格式化后有点像下面这样:

linux 磁盘修复工具_Linux 磁盘管理_linux查看磁盘空间大小

Linux 磁盘管理_linux 磁盘修复工具_linux查看磁盘空间大小

一个分区可以被格式化为多个文件系统(例如LVM),也能将多个分区合并为一个文件系统(LVM, RAID),所以说,目前我们在格式化时已经不再说成针对 partition 来格式化了, 通常我们可以称呼一个可被挂载的数据为一个文件系统而不是一个分区喔!

与目录树的关系

当我们在 Linux 下的文件系统创建一个目录时,文件系统会分配一个 inode 与至少一块 block 给该目录。其中,inode 记录该目录的相关权限与属性,并可记录分配到的那块 block 号码; 而 block 则是记录在这个目录下的文件名与该文件名占用的 inode 号码数据。也就是说目录所占用的 block 内容在记录如下的信息:

linux 磁盘修复工具_linux查看磁盘空间大小_Linux 磁盘管理

记载于目录所属的 block 内的文件名与 inode 号码对应示意图

由此可知:inode本身并不记录文件名,文件名的记录是在目录的block当中的。

硬链接与软链接(hard link And symbolic link)

在前一小节当中,我们知道几件重要的信息,包括:

硬链接只是在某个目录下的block多写入一个关联数据而已,不会增加inode和block数量。

例如在/root目录下创建一个/etc/passwd的硬链接:

ln /etc/passwd /root/passwd

此时/root目录下的block内会增加一条关联数据,inode为原文件的inode。

inode number文件名

......

......

1234

passwd

此时如果删除了/etc/passwd文件Linux 磁盘管理,依旧可以通过/root/passwd文件进行访问,因为是同一个inode。

注意:硬链接不能跨文件系统,不能对一个目录进行硬链接。

软链接就比较简单了,可以理解为windows下的快捷方式。创建软链接:

ln -s /etc/passwd /root/passwd

软链接创建一个独立的文件,而这个文件会让数据的读取指向他 link 的那个文件的文件名!

由 软链接 inode 读取到链接文件的内容仅有文件名,根据文件名链接到正确的目录去取得目标文件的 inode , 最终就能够读取到正确的数据了。你可以发现的是,如果目标文件(/etc/crontab)被删除了,那么整个环节就会无法继续进行下去, 所以就会发生无法通过链接文件读取的问题了!

总结一下:

(编辑:成都站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!