一、认识文件存储
-
-
结构
inode节点:简称i节点,存放文件的信息(权限、时间等),以及文件的信息所在的Block位置;
Block块:以扇区(每个512字节)组成,每个Block 4K的大小,真正存放数据的单位;注:文件的文件名并没有存储在文件的i节点或者Block内,而是存放在文件所在目录的Block中;
-
读取操作
系统受到对改文件名的请求,找到文件名所在的目录,找到目录的Block后搜寻该文件名的i节点号码,进而获取到该文件的i节点信息,验证权限、读取该文件所在的Block,最后找到该Block,进行读取; -
删除操作
删除操作其实只是删除了目录的Block中的文件名,然而i节点和文件所属Block块并没有删除,但是文件的i节点处会标记一个值为link,表示i节点无任何链接的文件名,那么系统就会认为此i节点无占用。当新建文件后,新文件会优先占用这些有link标记的i节点,进而覆盖i节点所关联的block。当无此类i节点,那么新建文件时,就会创建新的i节点。也就是说磁盘存放数据时,考虑的因素有两个,一个是Block块,也就是容量,另一个就是i节点的数量值; -
文件的软连接
在源文件的基础上,在软连接所在的目录Block中创建文件名,同时为软连接创建新的i节点,但是i节点指定的文件存放位置就是源文件的位置,也就是说源文件的更改、删除操作会直接影响软连接文件; -
文件的硬连接
在原有文件的基础上,并无新建i节点、Block,而是新建一个硬连接文件名,该文件与源文件使用同一i节点、Block块。但是在源文件的i节点的link标记处会+1,表示该i节点关联了两个文件名,即使源文件被删除,那么只会在源文件的i节点的link处-1,系统不会认为该i节点无用,所以硬连接文件工作正常,但由于两者使用相同i节点,硬连接文件会根据源文件内容的改变而改变;
那么硬连接与复制文件的不同之处就是:节省i节点的占用,并且可以实现两个文件的内容同步,而复制文件无法做到以上两点;stat 文件位置 #此命令可以查看文件的i节点、Block块、权限等所有详细信息
-
管理磁盘分区
-
何为磁盘?何为文件系统?
为了碰见系统出现磁盘不足的情况,应添加磁盘增大存储空间;
若把磁盘必做楼盘的话,那么分区则是每一间屋子,文件系统就是没意见物资的装修方式(机房、教室);- 文件系统:外部存储设备上管理和组织文件的方法
-
分区方式:
- MBR:支持单个磁盘分区数量为4个
- GPT:支持单个磁盘分区数量为128个
-
磁盘的分区类型
-
磁盘分区流程
[root@localhost ~]# fdisk -l /dev/sdb
-
流程
- fdisk -l #查看系统磁盘设备
- fdisk #磁盘设备名称
- 按n #新建分区
- 按p 新建主分区,e为扩展分区,l为逻辑分区
- 按顺序输入编号
- 开始位置默认回车即可
- 结束位置,手动输入大小+5G,可随意指定大小,若直接回车则使用磁盘的所有空间
- p验证分区情况,w保存退出,q不保存退出,d删除分区,t用来更改分区的文件系统类型,L查看文件系统类型的列表
三、管理文件系统
- 文件系统:明确主机中的磁盘或者分区上文件的方法和数据结构
- 配置系统分区:
mkfs -t ext4分区设备名称 #格式化文件系统为ext4格式的分区
mount 分区设备名称 挂载点 #挂载到系统
- 配置交换分区
mkswap 分区设备名称 #格式化文件系统为swap格式的分区,注:分区是需要指定分区类型为82
swapon 分区设备名称 #开启交换分区
free -m #查看系统内存信息
四、挂载分区或文件到系统
-
挂载分到系统中
- 临时挂载:mount命令
语法: 例如: mount /dev/sdb1 /data1 #挂载点必须存在,可提前创建
- 永久挂载
vi /etc/fstab #开机加载此文件 /dev/sdb1 /data1 ext4 defaults 0 0 mount -a #重新读取文件,加载挂载关系 df -h mount #查看系统中所有文件挂载关系
-
挂载iso镜像文件到系统中
- 临时挂载
语法: mount -o loop 镜像文件位置 挂载点
- 永久挂载
vi /etc/fstab #开机加载此文件 iso存放位置 挂载点 iso9660 defaults,loop 0 0
- 卸载
语法: umount 挂载点
五、扩展
- 当硬盘大于2T时,需要将其分区格式改成GPT,分区方式为parted
例如:
[root@localhost ~]# parted /dev/sdb
(parted) mklabel gpt
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name 标志
(parted) mkpart primary 0 5GB
忽略/Ignore/放弃/Cancel? i
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name 标志
1 17.4kB 5000MB 5000MB primary
(parted) quit
注:创建分区使用mkpart命令,删除分区使用rm 分区编号;
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
[root@localhost ~]# mount /dev/sdb1 /data1
[root@localhost ~]# ls /data1
- 挂载U盘
ntfs格式U盘:
编译安装ntfs-3g软件包
mount -t ntfs-3g /dev/sdb1 /data1
fat32格式U盘:
mount -t vfat /dev/sdb1 /data1
步骤:
1.插入U盘
2.重启服务器,开机后选择最后一块硬盘
3.如若U盘的文件系统格式是ntfs格式,那么需要编译安装软件包ntfs-3g,编译选项
./configure -->make -->make install
4.使用命令挂载
mount -t ntfs-3g /dev/sdb1 /data1
5.如若U盘格式是fat32,无需安装软件包,直接挂在使用
mount -t vfat /dev/sdb1 /data1