识别文件系统和设备
Linux服务器上的文件是按文件系统层次结构(一个颠倒的目录树)访问的。该文件系统层次结构则是由系统可用的存储设备所提供的文件系统组装而来。每个文件系统都是一个已格式化的存储设备,可用于存储文件。
从某种意义上说,Linux文件系统层次结构可在独立的存储设备上显示文件系统的集合,就如同是一个可浏览的巨型存储设备上的一组文件。大多数情况下,您无需知道特定文件所在的存储设备,只需要知道该文件所在的目录即可。
不过,这信息有时也很重要。您可能需要确定存储设备的空间使用情况以及文件系统层次结构中受影响的目录。日志中可能存在由存储设备引起的错误,而您需要知道哪些文件系统存在风险。您可能只想在两个文件之间创建硬链接,因此需要知道它们是否位于同一文件系统上,以确定上述操作的可行性。
文件系统和挂载点
要让文件系统的内容在文件系统层次结构中可用,必须将它挂载到一个空目录上。该目录被称为挂载点。挂载后,如果使用ls列出该目录,您就会看到已挂载文件系统的内容,并可以正常访问和使用这些文件。许多文件系统都会作为启动进程的一部分自动挂载。
如果您只用过Mcrosot Windows的驱动器盘符,两者的概念完全不同。它与NTFS挂载文件夹功能有点相似。
文件系统、存储和块设备
在Linux中,对存储设备的低级别访问是由种称为块设备的特殊类型文件提供的。在挂载这些块设备前,必须先使用文件系统对其进行格式化。
block device存储在/dev目录中。设备文件是由操作系统自动创建的。在红帽企业Linux中,检测到的第一个SATA/PATA、SAS、SCSI或USB设备称为/dev/sda,第二个被称为/dev/sdb,以此类推。这些名称代表整个硬盘驱动器。
其他类型的存储设备有另外的命名方式。
块设备命名
设备类型
|
设备命名模式
|
SATA/SAS/USB
|
/dev/sda、/dev/sdb...
|
virtio-blk paravirtualizedstorage (部分虚拟机)
|
/dev/vda、/dev/vdb...
|
NVMe- attached storage(many SSDs)
|
/dev/nvme0、/dev/nvme1...
|
SD/MMC/eMMC storage(SD cards)
|
/dev/mmcblk0、/dev/mmcblk1
|
磁盘分区
存储设备通常划分为更小的区块,称为分区,不同分区可以通过不同的文件系统进行格式化或用于不同的用途。
分区本身就是块设备。例如,第一磁盘上的第一个分区是/dev/sda1.第二磁盘上的第三个分区是/dev/sdb3,vda分区类似。
NVMe SSD命名略有不同。第一磁盘上的第一个分区是/dev/nvme0p1。第二磁盘上的第三个分区是/dev/nvme1p3 ,SD或MMC存储卡分区类似。
逻辑卷
逻辑卷管理(LVM)可用于整理磁盘和分区。一个或多个块设备可以汇集为一个存储池,称为卷组。卷组中的磁盘空间被分配到一个或多个逻辑卷,它们的功能等同于物理磁盘上的分区。
LVM的目录结构类似:/dev/myvg/myIv,其中myvg为volume group,mylv为logicalvolume(注:/dev/mapper/myg. mylv是另一种命名方式)。
注意
上面提到的逻辑卷设备的命名形式实际上是建立与实际设备文件的符号链接,依次来访问该文件,其名称在每次启动时可能会有所不同。还有一种逻辑卷设备的命名形式,那就是与常用的/dev/mapper中的文件建立链接,也是一种与实际设备文件的符号链接。
检查文件系统
若要对本地和远程文件系统设备及可用空间大小有个简略了解,可以运行df命令。不带参数运行df时,它会报告所有挂载的普通文件系统的总磁盘空间、已用磁盘空间,以及已用磁盘空间占总磁盘空间的百分比。它会同时报告本地和远程文件系统。
为增加可读性,可以添加-h或-H选项
-h单位是KiB (2^10)、MiB(2^20)或GiB(2^30)
-H单位是SI单位(硬盘驱动器制造商在广告其产品通常使用SI单位),即KB(10^3)、 MB (10^6 )或GB (10^9 )