Linux存储结构
一、系统的文件目录
FHS协议软约束,并没有硬性规定
目录名称 | 对应内容 |
---|---|
/boot | 开机所需文件—内核、开机菜单以及所需配置文件等 |
/dev | 以文件形式存放任何设备与接口 |
/etc | 配置文件 |
/home | 用户主目录(/home/zhangsan 普通用户家目录) |
/bin | |
/lib | 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数 |
/sbin | |
/media | 用于挂载设备文件的目录 |
/opt | 放置第三方的软件 |
/root | 系统管理员的家目录 |
/srv | 一些网络服务的数据文件目录 |
/tmp | 任何人均可使用的“共享”临时目录 |
/proc | 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等 |
/usr/local | 用户自行安装的软件 |
/usr/sbin | Linux系统开机时不会使用到的软件/命令/脚本 |
/usr/share | 帮助与说明文件,也可放置共享文件 |
/var | 主要存放经常变化的文件,如日志 |
/lost+found | 当文件系统发生错误时,将一些丢失的文件片段存放在这里(ext3格式以上才有) |
二、物理设备的命名
系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大致的属性以及分区信息等
硬件设备 | 文件名称 |
---|---|
IDE设备 | /dev/hd[a-d] |
SCSI/SATA/U盘 | /dev/sd[a-z] |
Virtio设备 | /dev/vd[a-z] |
软驱 | /dev/fd[0-1] |
打印机 | /dev/lp[0-15] |
光驱 | /dev/cdrom |
鼠标 | /dev/mouse |
磁带机 | /dev/st0或/dev/ht0 |
硬盘设备都是以“/dev/sd”开头。而一台主机上可以有多块硬盘,因此系统采用a~z来代表26块不同的硬盘(默认从a开始分配),而且硬盘的分区编号也很有讲究:
主分区或扩展分区的编号从1开始,到4结束;
逻辑分区从编号5开始。
例:
/dev/sda2
/dev —— 硬件设备文件所在目录
sd —— SCSI/SATA/U盘 设备
a —— 内核识别到的第一块硬盘
2 —— 编号为2的主分区或扩展分区
/dev/sdb5
b —— 内核识别到的第二块硬盘
5 —— 编号为5的逻辑分区
思考:什么是分区?
硬盘设备是由大量的扇区组成的,每个扇区的容量为512字节。其中第一个扇区最重要,它里面保存着主引导记录与分区表信息。就第一个扇区来讲,主引导记录需要占用446字节,分区表占用64字节,结束符占用2字节;其中分区表中每记录一个分区信息就需要16字节,这样一来最多只有4个分区信息可以写到第一个扇区中,这4个分区就是4个主分区。
思考:通过上面叙述可以看出,硬盘最多只能分4个区。如果想要更多分区该怎么办呢?
将第一个扇区的分区表中16字节(原本要写入主分区信息)的空间(称之为扩展分区)拿出来指向另外一个分区,就会多出512/16=32个逻辑分区。逻辑分区是在扩展分区中创建出来的
文件系统
ext2:不包含日志读写功能,数据丢失的可能性很大
ext3:是一款日志文件系统。能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误
ext4:Ext3的改进版本,作为RHEL 6系统中默认的文件管理系统,提高了读写速率
xfs:是一种高性能的日志文件系统,而且是RHEL 7/8中默认的文件管理系统。容量大
文件的存储方式:
inode:保存文件的属性,以及指向实际存储文件的block块(相当于指针)
block块:文件内容的存储位置,多个block块(block块的大小固定的)链式组合
VFS(虚拟文件系统)
虚拟文件系统,隐藏了底层的硬盘结构
分区、格式化、挂载
分区
首先要添加一块硬盘,系统会识别硬盘,并根据udev服务命名,/dev/sdb 就是新添加的硬盘
[root@localhost ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb
fdisk 命令
fdisk命令用于新建、修改及删除磁盘的分区表信息,语法格式为“fdisk 磁盘名称”
参数 | 作用 |
---|---|
m | 查看全部可用的参数 |
n | 添加新的分区 |
d | 删除某个分区信息 |
l | 列出所有可用的分区类型 |
t | 改变某个分区的类型 |
p | 查看分区表信息 |
w | 保存并退出 |
q | 不保存直接退出 |
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x2e6b767c.
#参数n,新建一个分区
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extende