Bootstrap

Linux文件系统相关知识:存储设备、文件系统、分区、挂载、块设备、部分相关简单指令。

1. 存储设备是什么?怎么理解分区和格式化?

存储设备:物理硬件设备,‌用于存储数据。‌这包括硬盘驱动器(‌HDD)‌、‌固态驱动器(‌SSD)‌、‌USB闪存驱动器、‌RAID阵列等。‌这些设备提供了实际的存储空间,‌可以用来存储操作系统、‌应用程序、‌文件、‌数据等。‌存储设备的容量可以从几GB到数TB不等,‌并且由操作系统识别并管理。‌

分区:通常,我们不会将整个存储设备建成一个文件系统。借助分区,我们可以划分硬盘:不同的部分可以通过不同的文件系统进行格式化或用于其他用途。例如,一个分区可以包含用户主目录,另一个分区则可包含系统数据日志。即使主目录分区呗填满了数据,系统分区可能依然有可用的空间。分区有助于管理和使用存储设备,‌使其更易于理解和使用。‌而且分区本身就是块设备。

格式化:是在每个分区上创建文件系统的过程,‌这样操作系统才能理解和管理存储设备上的数据。‌

2. 文件系统是什么?

文件系统:是一种组织和管理数据的方法,‌定义了文件和目录的结构、‌访问权限、‌元数据等。‌常见的Linux文件系统包括ext4、‌XFS、‌exFAT等,‌它们具有不同的性能、‌特性和用途。‌

红帽企业 Linux (RHEL)使用扩展文件系统(Extents File SystemXFS)作为默认的本地文件系统。RHEL支持使用扩展文件系统(ext4)文件系统来管理本地文件。自RHEL9起,支持将Extensible File Allocation Table(exFAT)文件系统用于可移动介质。在企业服务器集群中,共享磁盘使用全局文件系统2(GFS2)文件系统来管理并发多节点访问。

3. 挂载是什么?挂载点是什么?

挂载:指将一个文件系统‌关联到Linux文件系统的某个目录上,‌使得用户可以通过访问该目录来访问文件系统中的文件。‌通过挂载,‌用户可以像访问普通文件一样访问存储设备中的数据。‌

挂载点:通过将文件系统挂载到空目录来访问文件系统的内容,该目录被称为挂载点。

4. 怎么理解块设备?

块设备: 是提供存储设备低级别访问权限的文件。(必须对块设备进行可选分区并创建文件系统后,才能挂载该设备)

5.例如 在 SATA 附加存储中,第一磁盘上的第一个分区和第二磁盘的第二个分区分别对应哪个块设备文件?(块设备名称如下图)

/dev/sda1磁盘对应第一磁盘上的第一分区

/dev/sdb2磁盘对应第二磁盘的第二个分区

6. 比较 df 和 du 命令及-h 和-H 选项的作用。

df使用df命令 可以显示本地和远程文件系统设备的概览,其中包括总磁盘空间、可用磁盘空间、以及占整个磁盘空间的百分比。

df 命令的 -h或 -H选项是人类可读选项,可以改善输出大小的可读性。-h选项的报告单位是 KiB(2^10)、MiB (2^20)或 GiB (2^30),而 -H选项的报告单位是S| 单位,即 KB(10^3)、MB(10^5)或 GB(10^9)。硬盘驱动器制造商在广告其产品时通常使用SI 单位。

du:使用du命令 可以显示某一特定目录树空间的详细信息,并且以递归方式显示当前目录树中的所有文件大小。

du:命令的-h和-H选项可以将输出转换为人类可读格式,同上述df。

7. lsblk 命令和 lsblk -fp 命令有什么用?

lsblk 命令可以列出指定块设备或所有可用设备的详细信息

lsblk -fp 命令可列出设备的完整路径、其 UUID 和挂载点,以及分区的文件系统类型。如果尚未挂载文件系统,挂载点将为空。

8. 有哪两种手动挂载的方式?

要访问可移动存储设备上的文件系统,必须挂载该存储设备。通过mount 命令,root 用户可以手动挂载文件系统。mount 命令的第一个参数指定要挂载的文件系统。第二个参数指定在文件系统层次结构中用作挂载点的目录。

可以使用 mount 命令,以下列方式之一挂载文件系统:

(1)使用 /dev 目录中的设备文件名。

(2)使用 UUID,即设备的通用唯一标识符。

然后,识别要挂载的设备,确保挂载点存在,并将设备挂载到挂载点上。

9. 使用 umount 卸载文件系统时需要注意什么?

如果挂载的文件系统在使用之中,则无法卸载。要成功执行umount 命令,所有进程必须停止访问挂载点下的数据。

10. 搜索文件时, locate 和 find 命令各有哪些优点?

locate命令搜索预生成索引中的文件名或文件路径,并即时返回结果。

locate命令根据文件的名称或路径来搜索文件。此命令速度较快,因为它是从mlocate数据库中查找这些信息的。但是,此数据库不会实时更新,需要频繁更新才能获得准确结果。此功能还意味着 locate 命令不会搜索上次数据库更新后创建的文件。locate 命令限制非特权用户的结果。若要查看生成的文件名,用户必须对文件所在的目录具有搜索权限

find 命令通过解析整个文件系统层次结构来实时搜索文件。

find命令速度比 locate 命令慢,但更加准确。此外,find 命令还可以根据文件名以外的条件搜索文件,例如文件的权限、文件大小或修改时间。find 命令使用执行搜索的用户帐户查看文件系统中的文件。运行 find 命令的用户必须具有要查看其内容的目录的读取和执行权限。find 命令的第一个参数是要搜索的目录。如果 find 命令省略了目录参数,它会从当前目录中开始搜索,并在任何子目录中查找匹配项。要按文件名搜索文件,请使用 find 命令 -name FILENAME 选项来返回与 FILENAME 完全匹配的文件的路径。

11. 如何搜索/usr/bin 目录中文件大小超过 50KB 的所有文件?

find命令使用下列命令

find /usr/bin -size +50k

;