Filesystem Hierarchy Standard
FHS是根据以往无数Linux系统用户和开发者的经验而总结出来的,是用户在Linux系统中存储文件时需要遵守的规则,用于指导我们应该把文件保存到什么位置,以及告诉用户应该在何处找到所需的文件。
目录名称 | 应放置文件的内容 |
---|---|
/boot | 开机所需文件—内核、开机菜单以及所需配置文件等 |
/dev | 以文件形式存放任何设备与接口 |
/etc | 配置文件 |
/home | 用户家目录 |
/bin | 存放单用户模式下还可以操作的命令 |
/lib | 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数 |
/sbin | 开机过程中需要的命令 |
/media | 用于挂载设备文件的目录 |
/opt | 放置第三方的软件 |
/root | 系统管理员的家目录 |
/srv | 一些网络服务的数据文件目录 |
/tmp | 任何人均可使用的“共享”临时目录 |
/proc | 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等 |
/usr/local | 用户自行安装的软件 |
/usr/sbin | Linux系统开机时不会使用到的软件/命令/脚本 |
/usr/share | 帮助与说明文件,也可放置共享文件 |
/var | 主要存放经常变化的文件,如日志 |
/lost+found | 当文件系统发生错误时,将一些丢失的文件片段存放在这里 |
物理设备的命名规则
硬件设备 | 文件名称 |
---|---|
IDE设备 | /dev/hd[a-d] |
SCSI/SATA/U盘 | /dev/sd[a-p] |
软驱 | /dev/fd[0-1] |
打印机 | /dev/lp[0-15] |
光驱 | /dev/cdrom |
鼠标 | /dev/mouse |
磁带机 | /dev/st0或/dev/ht0 |
主分区或扩展分区的编号从1开始,到4结束;逻辑分区从编号5开始。
/dev/目录中保存的应当是硬件设备文件;其次,sd表示是存储设备;然后,a表示系统中同类接口中第一个被识别到的设备,最后,5表示这个设备是一个逻辑分区。
硬盘设备是由大量的扇区组成的,每个扇区的容量为512字节。其中第一个扇区最重要,它里面保存着主引导记录与分区表信息。就第一个扇区来讲,主引导记录需要占用446字节,分区表为64字节,结束符占用2字节;其中分区表中每记录一个分区信息就需要16字节,这样一来最多只有4个分区信息可以写到第一个扇区中,这4个分区就是4个主分区。<br /><br /> 第一个扇区最多只能创建出4个分区?于是为了解决分区个数不够的问题,可以将第一个扇区的分区表中16字节(原本要写入主分区信息)的空间(称之为扩展分区)拿出来指向另 外一个分区。也就是说,扩展分区其实并不是一个真正的分区,而更像是一个占用16字节分区表空间的指针—一个指向另外一个分区的指针。这样一来,用户一般会选择使用3个主分区加1个扩展分区的方法,然后在扩展分区中创建出数个逻辑分区,从而来满足多分区(大于4个)的需求。<br /> 所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。
Linux内核中的软件层为用户程序提供了一个VFS(Virtual File System,虚拟文件系统)接口,这样用户实际上在操作文件时就是统一对这个虚拟文件系统进行操作了
相关命令
mount
mount命令用于挂载文件系统,格式为“mount 文件系统 挂载目录”
参数 | 作用 |
---|---|
-a | 挂载所有在/etc/fstab中定义的文件系统 |
-t | 指定文件系统的类型 |
-o remount | 重新挂载目录 |
如果想让硬件设备和目录永久地进行自动关联,就必须把挂载信息按照指定的填写格式“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检”,写入到/etc/fstab文件中。这个文件中包含着挂载所需的诸多信息项目,一旦配置好之后就能一劳永逸了。
umount
umount命令用于撤销已经挂载的设备文件,格式为“umount [挂载点/设备文件]”。
/etc/fstab
字段 | 意义 |
---|---|
一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier) | |
指定要挂载到的目录,需在挂载前创建好 | |
指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等 | |
若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async | |
is checked by the dump(8) utility. This field is usually set to 0, which disables the check. | |
sets the order for filesystem checks at boot time; see fsck(8). For the root device it should be 1. For other partitions it should be 2, or 0 to disable checking. |
设备命名
有多种方法可以识别到设备kernel name descriptor, file system label and UUID, and GPT partition label and UUID for GPT disks. UUID or PARTUUID must be privileged over kernel name descriptors and labels
lsblk -f
[root@ip-172-31-15-250 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
loop0 squashfs /var/lib/snapd/snap/snapd/12398
loop1 squashfs /var/lib/snapd/snap/core18/2074
loop2 squashfs /var/lib/snapd/snap/stress-ng/5932
nvme0n1
├─nvme0n1p1
└─nvme0n1p2 xfs 949779ce-46aa-434e-8eb0-852514a5d69e /
File system UUIDs and GPT partition labels
[root@ip-172-31-15-250 ~]# blkid
/dev/nvme0n1p2: UUID="949779ce-46aa-434e-8eb0-852514a5d69e" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="f3dc379a-e15b-46c0-82ff-b9c089f7f27f"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/nvme0n1: PTUUID="246b752e-8cb4-41e7-b9b1-365a93acf890" PTTYPE="gpt"
/dev/nvme0n1p1: PARTUUID="1227fbb3-a2f6-4933-a7ac-98432f8f15af
参考链接:
https://wiki.archlinux.org/title/fstab
磁盘管理
fdisk
在Linux系统中,管理硬盘设备最常用的方法就当属fdisk命令了。fdisk命令用于管理磁盘分区,格式为“fdisk [磁盘名称]”,它提供了集添加、删除、转换分区等功能于一身的“一站式分区服务”。
参数 | 作用 |
---|---|
m | 查看全部可用的参数 |
n | 添加新的分区 |
d | 删除某个分区信息 |
l | 列出所有可用的分区类型 |
t | 改变某个分区的类型 |
p | 查看分区信息 |
w | 保存并退出 |
q | 不保存直接退出 |
mkfs 命令
格式化分区 命令格式 : [mkfs.文件类型名称 设备文件]
du
用于查看文件数据占用量,格式为“du [选项] [文件]”
SWAP
SWAP(交换)分区是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时不常用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计目的是为了解决真实物理内存不足的问题。<br /> mkswap /dev/sdb2 格式化为swap格式<br /> swapon /dev/sdb2 加载到swap
磁盘配额
root管理员就需要使用磁盘容量配额服务来限制某位用户或某个用户组针对特定文件夹可以使用的最大硬盘空间或最大文件个数,一旦达到这个最大值就不再允许继续使用。可以使用quota命令进行磁盘容量配额管理,从而限制用户的硬盘可用容量或所能创建的最大文件个数。quota命令还有软限制和硬限制的功能。
- 软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。
- 硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。
xfs_quota
xfs_quota命令是一个专门针对XFS文件系统来管理quota磁盘容量配额服务而设计的命令,格式为“xfs_quota [参数] 配额 文件系统”。其中,-c参数用于以参数的形式设置要执行的命令;-x参数是专家模式,让运维人员能够对quota服务进行更多复杂的配置。
硬盘使用量的软限制和硬限制分别为3MB和6MB;创建文件数量的软限制和硬限制分别为3个和6个。
xfs_quota -xc ‘limit bsoft=3m bhard=6m isoft=3 ihard=6 tom’ /boot/
edquota
edquota命令用于编辑用户的quota配额限制,格式为“edquota [参数] [用户] ”。在为用户设置了quota磁盘容量配额限制后,可以使用edquota命令按需修改限额的数值。其中,-u参数表示要针对哪个用户进行设置;-g参数表示要针对哪个用户组进行设置。
Disk quotas for user tom (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 6144 3072 6144 2 3 6