文章目录
第五章 存储结构与管理硬盘
一、一切从“/”开始
1、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、常见的硬件设备及其文件名称
硬件设备 | 文件名称 |
---|---|
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 |
三、文件系统与数据资料
1、常见的文件系统
Ext2:最早可追溯到1993年,使Linux系统第一个商业级文件系统,基本沿袭的是Unix文件系统的设计标准。但由于不包含读写日志功能,数据丢失可能性很大,能不用就不要用,或者顶多建议用于SD存储卡或者U盘。
Ext3:是一款日志文件系统,他会把整个硬盘的每个写入动作的细节都与先记录下来,然后在实际操作,以便在发生异常宕机后能回溯追踪到被中断的部分。Ext3能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百的保证资料不会丢失。
Ext4:Ext3的改进版本,作为RHEL6系统中的默认文件管理系统,它支持的存储容量高达1EB,且能够无限多的子目录。另外能够批量分配Block块,从而极大地提高了读写效率。
XFS:是一种高性能的日志文件系统,而且是RHEL7/8中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地回复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB。
四、挂在硬件设备
1、mount命令
mount命令用于挂载文件系统。把硬盘设备或分区与一个目录文件进行关联,然后就能在这个目录中看到硬件设备中的数据了,对于比较新的Linux系统来讲,一般不需要使用-t参数来指定文件系统的类型,Linux系统会自动进行判断。而mount中的-a参数会在执行后自动检查/etc/fstab文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。
语法格式:mount 文件系统 挂载目录
2、mount命令中的参数以及作用
参数 | 作用 |
---|---|
-a | 挂载所有在/etc/fstab中定义的文件系统 |
-t | 指定文件系统的类型 |
3、将设备/dev/nvme0n2挂载到/backup目录下
//创建backup目录
[root@centos /]# mkdir backup
//格式化nvme0n2
[root@centos /]# mkfs.ext4 /dev/nvme0n2
mke2fs 1.45.6 (20-Mar-2020)
创建含有 5242880 个块(每块 4k)和 1310720 个inode的文件系统
文件系统UUID:61a91aa6-2547-4ec1-8377-6ead16a655b1
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
正在分配组表: 完成
正在写入inode表: 完成
创建日志(32768 个块)完成
写入超级块和文件系统账户统计信息: 已完成
//挂载nvme0n2至backup目录下
[root@centos /]# mount /dev/nvme0n2 /backup/
4、blkid命令
blkid命令用于显示设备的属性信息,英文全称为:“block id”。
语法格式:blkid [设备名]
5、将设备/dev/nvme0n2挂载到/backup目录下
//显示设备信息
[root@centos /]# blkid
/dev/nvme0n1: PTUUID="09f3c2d9" PTTYPE="dos"
/dev/nvme0n1p1: UUID="d5ca23c4-63e8-403e-9ccc-106cfb54e858" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="09f3c2d9-01"
/dev/nvme0n1p2: UUID="acplZU-2UUO-L5a7-x5eh-CXch-Kfqr-aei7QO" TYPE="LVM2_member" PARTUUID="09f3c2d9-02"
/dev/nvme0n2: UUID="61a91aa6-2547-4ec1-8377-6ead16a655b1" BLOCK_SIZE="4096" TYPE="ext4"
/dev/sr0: BLOCK_SIZE="2048" UUID="2021-11-13-01-04-26-00" LABEL="CentOS-8-5-2111-x86_64-dvd" TYPE="iso9660" PTUUID="5fb10f71" PTTYPE="dos"
/dev/mapper/cl-root: UUID="59937829-491c-45c8-b76a-bc6378439129" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/cl-swap: UUID="d4f50cb9-4511-482a-bf5d-5ed19116e664" TYPE="swap"
//挂载nvme0n2至backup目录下
[root@centos /]# mount UUID=61a91aa6-2547-4ec1-8377-6ead16a655b1 /backup/
mount: /backup: /dev/nvme0n2 already mounted on /backup.
6、fstab文件中挂载信息的填写格式
设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检
7、用于挂载信息的指定填写格式中各字段所表示的意义
字段 | 意义 |
---|---|
设备文件 | 一般为设备的路径+设备名称,也可以写唯一识别码 |
挂载目录 | 指定要挂载到的目录,需要挂在前创建好 |
格式类型 | 指定文件系统的格式 |
权限选项 | 若设置为defaults,则默认权限为:rw、suid、dev、exec、auto、nouser、async |
是否备份 | 若为1则开机后使用dump进行磁盘备份,为0则不备份 |
是否自检 | 若为1则开机后自动进行磁盘自检,为0则不自检 |
8、umount命令
umount命令用于卸载设备或文件系统,英文全称:“un mount”。
语法格式:umount 挂载目录 设备文件
五、添加硬盘设备配置 分区
1、fdisk命令
fdisk命令用于新建、修改及删除磁盘的分区表信息,英文全称:“format disk”。
语法格式:fdisk 磁盘名称
2、fdisk命令中的参数以及作用
参数 | 作用 |
---|---|
m | 查看全部可用的参数 |
n | 添加新的分区 |
d | 删除某个分区信息 |
l | 列出所有可用的分区类型 |
t | 改变某个分区的类型 |
p | 查看分区表信息 |
w | 保存并退出 |
q | 不保存直接退出 |
3、配置主分区
//使用fdisk命令管理/dev/sdb硬盘设备
[root@centos ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x593e29eb 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):
//输入p查看硬盘设备内已有的分区信息
命令(输入 m 获取帮助):p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x593e29eb
//输入n设置分区,创建主分区,编号为1,硬盘分区容量2GB
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认 1): 1
第一个扇区 (2048-41943039, 默认 2048):
上个扇区,+sectors 或 +size{
K,M,G,T,P} (2048-41943039, 默认 41943039): +2G
创建了一个新分区 1,类型为“Linux”,大小为 2 GiB。
//输入p查看硬盘设备内的分区信息
命令(输入 m 获取帮助):p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x593e29eb
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 4196351 4194304 2G 83 Linux
//输入w保存
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
4、格式化磁盘
//格式化分区为XFS的文件系统
[root@centos ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=