历览千载书,时时见遗烈。这篇文章主要讲述存储结构与管理硬盘(Day9 ~ Day10)相关的知识,希望能为你提供帮助。
一、一切从“/”开始1、 FHS (Filesystem Hierarchy Standard,文件系统层次标准)
1)Linux一切皆文件Linux一切皆文件,都是从“根”目录(/)开始的,并按照FHS采用倒树状结构来存放文件,以及定义常见目录的用途。
2)Linux系统中的文件和目录名称是严格区分大小写的3)FHS的用途:
- 应该把文件保存到什么位置
- 应该在何处找到所需的文件
- FHS只是道德上的约束
2、FHS倒树状存储结构图
3、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 | 当文件系统发生错误时,将一些丢失的文件片段存放在这里 |
1)相对路径(relative path):相对于当前路径的写法
2)绝对路径(absolute path):从根目录(/)开始写起的文件或目录名称
二、物理设备命名规则
1、udev设备管理器
1)常驻内核,自动规范硬件名称2)方便用户根据设备文件名猜出设备属性及分区信息等;3)Udev服务以守护进程形式持续侦听内核指令来管理/dev目录下的设备文件2、常见的硬件设备及其文件名称
硬件设备 | 文件名称 |
IDE设备 | /dev/hd[a-d] |
SCSI/SATA/U盘 | /dev/sd[a-z]
(注:a~z代表26块不同的硬盘,下同) |
virtio设备 | /dev/vd[a-z] |
软驱 | /dev/fd[0-1] |
打印机 | /dev/lp[0-15] |
光驱 | /dev/cdrom |
鼠标 | /dev/mouse |
磁带机 | /dev/st0或/dev/ht0 |
3、硬盘分区编号
1)主分区或扩展分区的编号从1开始,到4结束;2)逻辑分区(对应windows中的逻辑驱动器)从编号5开始。4、纠正2个错误的知识点(设备名称与分区编号)
1)设备名称理解错误:
- 设备名称由系统内核识别顺序决定,不是主板插槽顺序;
- /dev目录中sda设备之所以是a,并不是由插槽决定的,而是由系统内核的识别顺序来决定的,而恰巧很多主板的插槽顺序就是系统内核的识别顺序,因此才会被命名为/dev/sda。
- 分区的数字编码不一定是强制顺延下来的,也有可能是手工指定的。(即:分区数字编码不代表分区个数)
- sda3表示编号为3的分区,而不能判断sda上已经存在了3个分区
3)应用实战(/dev/sda5解释)
- /dev/:硬件设备文件
- sda5:sd表示的是存储设备;a表示同类接口中第一个被识别到的设备;5表示这个设备是一个逻辑分区。
- /dev/sda5:第一块被识别到的硬件设备中分区编号为5的逻辑分区的设备文件
1)分区要求
- 分为主分区(primary partion)和扩展分区(extension partion)两种
- 主分区和扩展分区数目之和不能大于四个
- 主分区可马上被使用但不能再进行分区
- 主分区至少1个
- 扩展分区最多1个,并且必须再分区(分成‘逻辑分区’)后才能使用
主分区数量(个)? Primary Partion? | 扩展分区数量(个)? Extension Partion? |
4? | 0? |
3? | 1? |
2? | 1? |
1? | 1? |
三、文件系统与数据资料1、Linux各种文件系统特性对照表
文件系统 | 推出时间 | 级别 | 特性 | 使用建议 |
Ext2 | 1993年 | 首个商业级 |
| v
最好不用 v 顶多用于SD卡或U盘 |
Exte3 | RHEL2~5 |
|
|
|
Ext4 | RHEL6 | Ext3改进版 |
| 当前主流 |
XFS | RHEL7/8 | Ext4改进版 |
| 当前主流 |
2、新硬盘的正确使用方式
先分区--> 再格式化--> 最后挂载到目录中使用
3、硬盘地图(Super Block)、inode(索引节点)、block(块)解释
1)硬盘地图(Super Block)记录该硬盘或分区上文件系统的整体信息,如文件系统的大小等。
2)Inode
- 又称“索引节点”,每个inode对应一个文件或目录,inode记录了文件的大小、占用block及目录的directory block信息。
- 一个inode默认大小为128字节,记录一个block消耗4字节
- 当文件的inode被写满后,Linux会自动再分配一个block,专门用于像inode那样记录其他block块的信息,这样把各个block块的内容串到一起,就能够让用户读到完整的文件内容了。
- Inode节点记录的信息:
- 该文件的访问权限(read、write、execute);
- 该文件的所有者与所属组(owner、group);
- 该文件的大小(size);
- 该文件的创建或内容修改时间(Ctime);
- 该文件的最后一次访问时间(Atime);
- 该文件的修改时间(Mtime);
- 文件的特殊权限(SUID、SGID、SBIT);
- 该文件的真实数据地址(point)。
- 保存文件的实际内容(block大小一般是1KB、2KB或4KB)
- 存储数据的最小单元,ext3文件系统中,创建时默认4k,分为存储文件数据的data block和存储目录数据的directory block
文件很大(5KB),那么会占用两个block(5KB?4KB后剩下的1KB也要占用一个block,浪费3KB)。
4、虚拟文件系统(Virtual File System,VFS)
1)VFS特点屏蔽底层硬盘结构,简化用户使用
2)VFS架构示意图
四、挂载硬件设备1、挂载(mount)
当需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,而这个关联动作就是“挂载”。
2、mount命令及常用参数(命令格式:mount 待挂载设备 挂载目录)
mount命令中的参数以及作用
参数 | 作用 |
-a | 挂载所有在/etc/fstab中定义的文件系统 |
-t | 指定文件系统的类型 |
-t 一般不需要使用-t来指定文件系统类型,Linux系统会自动进行判断。
3、应用示例:挂载/dev/sdb2到/backup目录
[root@linuxprobe ~]# mount /dev/sdb2 /backup
4、应用示例:使用UUID挂载设备
1)UUIDUniversally Unique Identifier,通用唯一识别码,具有唯一性及稳定性,可唯一标识硬件,常用来挂载网络设备。
2)查询设备的UUID:命令: blkid[root@linuxprobe ~]# blkid
/dev/sdb1: UUID="2db66eb4-d9c1-4522-8fab-ac074cd3ea0b" TYPE="xfs" PARTUUID="eb23857a-01"
3)使用UUID挂载网络设备[root@linuxprobe ~]# mount UUID=478fRb-1pOc-oPXv-fJOS-tTvH-KyBz-VaKwZG /backup
5、mount命令挂载的设备重启后失效,可写入/etc/fstab文件永久生效。
1)/etc/fstab 文件挂载信息格式:设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检
2)用于挂载信息的指定填写格式中,各字段所表示的意义
字段? | 意义? |
设备文件? | 一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier)? |
挂载目录? | 【存储结构与管理硬盘(Day9 ~ Day10)】指定要挂载到的目录,需在挂载前创建好? |
推荐阅读
|