文章目录
磁盘基础
- 磁盘的结构
-
硬盘的物理结构
盘片:硬盘有多个盘片,每盘片2面
磁头:每面一个磁头 -
硬盘的数据结构
- 扇区:盘片被分为多个扇形区域,每个扇区存放字节的数据,硬盘的最小存储单位
- 磁道:同一盘片不同半径的同心圆
- 柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
-
硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数
-
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
-
磁盘接口类型
- IDE、SATA、SCSI、SAS、光纤通道
磁盘接口类型还有:M2(不在服务器里;台式固态)
MBR与磁盘分区表示
- 主引导记录(MBR:Master Boot Record)
- MBR位于硬盘第一个物理扇区处
- MBR中包含硬盘的主引导程序和硬盘分区表
- 分区表有4个分区及录区,每个分区记录区占16个字节
- Linux中将硬盘、分区等设备均表示为文件
MBR总共有512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447~510字节中。
主启动记录(MBR)磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区,或3个主分区、1个扩展分区和在扩展分区里面分多个逻辑分区。
磁盘分区结构
- 硬盘中的主分区数目只有4个
- 主分区和扩展分区的序号限制在1~4
- 扩展分区再分为逻辑分区
- 逻辑分区的序号将始终从5开始
1~3为主分区
4为扩展分区
5以后都为逻辑分区
文件系统类型
- XFS文件系统
- 存放文件和目录数据的分区
- 高性能的日志型文件系统
- CentOS 7系统中默认使用的文件系统
- SWAP,交换文件系统
- 为Linux系统建立交换分区
- Linux支持的其他文件系统类型
- FAT16、FAT32、NTFS
- EXT4、JFS……
XFS:是一种高性能的日志文件系统,特别擅长于处理大文件,可支持上百万T字节的存储空间。由于XFS文件系统开启日志功能,所以即便发生宕机也不怕数据遭到破坏,这种文件系统可以根据日志记录在短时间内进行数据恢复
SWAP:交换文件系统,用于为Linux系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的1.5~2倍 。例,对于拥有512MB物理内存的主机,其交换分区的大小建议设置为1024MB。如果服务器的物理内存足够大(如8GB以上),也可以不设置交换分区。交换分区不用于直接存储用户的文件和目录等数据。
EXT4:第4代扩展文件系统,用于存放文件和目录数据的分区,是Linux系统中默认使用的文件系统(CentOS 7默认使用XFS)。EXT4是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。
Linux系统还广泛支持其他各种类型的文件系统,如JFS、FAT16、FAT32、NTFS等。JFS文件系统多用于商业版本的 UNIX操作系统中,具有出色的性能表现。由于NTES是微软公司的专有文件系统,Linux系统默认只支持从NTFS分区读取文件,如果需要向NTFS分区中写入文件数据,需要结合其他辅助软件(如NTFS-3G)
SWAP会在内存快用完,没空间的时候,把硬盘的容量分区转换成虚拟内存给系统内存(高ping发)
FAT32 (为U盘的文件格式时)传入不得超过4G,超过就报错
NTFS不限
EXT4、JFS…(Linux操作系统)
JFS在UNIX(收费的)系统中使用
NTFS在微软中使用(必须安装 工具才能在Linux中运行)
XF在Linux
检测并确认新硬盘
- fdisk命令
- 查看或管理磁盘分区
fdisk -l [磁盘设备]
或
fdisk [磁盘设备]
- 查看或管理磁盘分区
- 交换模式中的常用指令
- m、p、n、d、t、w、q
fdisk -l 查看硬盘的整体情况和分区情况
Device:分区的设备文件名称。
Boot:是否是引导分区。若是,则有“*“标识。
Start:该分区在硬盘中的起始位置(柱面数)。
End:该分区在硬盘中的结束位置(柱面数)。
Blocks:分区的大小,以Blocks(块)为单位,默认的块大小为1024字节。
Id:分区对应的系统ID号。83表示Linux中的XFS分区或EXT4分区、8e表示LVM
逻辑卷。LVM是LinuX…
操作系统中对磁盘分区进行管理的一种逻钳机制,与之相关的知识将在后面的章节介绍。
System:分区类型。识别到新的硬盘设备后,就可以在该硬盘中建立新的分区了。在Linux
操作系统中,分区和格式化的过程是相对独立的,关于格式化分区的操作将在后续内容中讲解。
1、首先创建硬盘
2、设置硬盘参数
3、查看新建磁盘
图中可以查看到磁盘的详细信息,如大小,位置等
*号代表是否引导分区
磁盘内容解释
Device:分区的设备文件名称
Boot:是否是引导分区。如果是,就有“*”标识
Start:分区再硬盘中的起始位置(柱面数)
End:分区在硬盘中的结束位置(柱面数)
Blocks:分区大小,Blocks(块)为单位,默认的Blocks大小为1024字节。
ID:分区对应的系统ID号。83表示Linux中的XFS分区或EXT4 分区、8e表示LVM逻辑卷。LVM 是Linux操作系统中对磁盘分区进行管理的一种逻辑机制,与之相关的知识将在后面的章节介绍。
System:分区类型。识别到新硬盘设备后,就可以在该硬盘中建立新分区了。在Linux操作系统中,分区和格式化的过程是相对独立的,关于格式化分区的操作将在后续内容中讲解。
PS:如果查不到可能就是没加载出现,使用重启(init 6 / reboot)或者 echo “- - -” > /sys/class/scsi_host/host0/scan 后再输入 fdisk -l查看是否出现新硬盘设备了
4、进入交互模式
命令:fdisk /dev/sdb(b指的是第二块磁盘,a盘空间不大,用不了)
输入m,获取命令帮助
输入“q”退出
分区的命令 -fdisk
进入交互模式
设置分区大小
查看以设置完的当前分区 -p
设置第二个磁盘
设置第三块磁盘
设置逻辑分区
输入w进行保存
lsblk
以树形查看磁盘分区
语法格式:lsblk [参数]
-a | 显示所有设备 |
---|---|
-b | 以bytes方式显示设备大小 |
-d | 不显示slaves或holders |
-D | print discard capabilities |
-e | 排除设备 |
-f | 显示文件系统信息 |
-h | 显示权限信息 |
-i | use ascii characters only |
-m | 显示权限信息 |
-l | 使用列表格式显示 |
-n | 不显示标题 |
-o | 输出列 |
-P | 使用key=“value”格式显示 |
-r | 使用原始格式显示 |
-t | 显示拓扑结构信息 |
blkid
查看磁盘的UUID(唯一)
blkid /dev/sdb1
查看磁盘分区的UUID
交互模式中的常用指令
fdisk指令说明
gdisk命令交互模式中的指令
b | 将GPT数据备份到一个文件 |
---|---|
c | 更改分区名称 |
d | 删除一个分区 |
i | 显示分区详细信息 |
l | 列出已知分区类型[此处8200是Linux swap,8300是Linux filesystem(对应fdisk的82和83);还有一个8e00是Linux LVM] |
n | 增加一个新的分区 |
o | 创建一个新的空白的GPT分区表 |
p | 显示当前磁盘的分区表 |
q | 退出gdisk程序,不保存任何修改 |
r | 恢复和转换选项(仅限专家) |
s | 排序分区 |
t | 改变分区的类型 |
v | 验证磁盘分区表 |
w | 将分区表写入裁判并退出(保存并退出) |
x | 额外功能(仅限专家) |
? | 显示帮助信息 |
gdisk磁盘分区工具
gdisk主要是用来划分容量大于2T的硬盘,大于2T fdisk搞不定两种类型的分区表:GPT和MBR
MBR:MBR不支持4T以上
GPT分区:GPT,全局唯一标识分区表(GUID PartitionTable),它使用128位GUID来唯一标识每个磁盘和分区,与MBR存在单一故障点不同,GPT提供分区表信息的冗余,一个在磁盘头部一个在磁盘尾部;它通过CRC校验和来检测GPT头和分区表中的错误与损坏;默认一个硬盘支持128个分区。
gdisk-1[设备]
选项
只有一个-1选项,列出一个磁盘的所有分区表
操作菜单说明
主要用到的几个和fdisk差不多:n、p、q、w。
完整的菜单如下:
b 将GPT数据备份到一个文件
c 更改分区名称
d 删除一个分区
i 显示分区详细信息
l 列出已知分区类型。此处8200是Linux swap,8300是Linux filesystem(对应fdisk的82和83)。还有一个8e00是Linux LVM
n 增加一个新的分区
o 创建一个新的空白的GPT分区表
p 显示当前磁盘的分区表
q 退出gdisk程序,不保存任何修改
r 恢复和转换选项(仅限专家)
s 排序分区
t 改变分区的类型
v 验证磁盘分区表
w 将分区表写入裁判并退出(保存并退出)
x 额外功能(仅限专家)
?显示帮助信息
创建文件系统
- mkfs命令
- Make Filesystem,创建文件系统(格式化)
mkfs -t 文件系统类型 分区设备 - 例:
-t:指定文件类型
文件类型:EXT4、EXT3、XFS
分区设备:/dev/sdb1
- Make Filesystem,创建文件系统(格式化)
可以有两种命令来查看
mkfs -t xfs /dev/sdb1 和 mkfs .xfs /dev/sdb1
不重启加载新建的硬盘
磁盘添加完成,进入系统,使用下面命令扫描SCSI总线
echo "- - - " > /sys/class/scsi_host/host0/scan
SWAP创建系统文件
mkswap /dev/sdb5
创建分区
swapon是开启swap
ps:/dev/sdb2(swap分区)
swapoff 是关闭swap
ps:/dev/sdb2(swap)
swapon -s
查看每个分区的swap状态信息
free -m
查看总的swap状态信息
FAT32创建系统文件
mkfs -t vfat -F 32 /dev/sdb6
和
mkfs.vfst -F 32 /dev/sdb6
挂载、卸载文件系统
- mount命令
- 挂载文件系统、ISO镜像到指定文件夹
mount [-t类型] 存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录
- 挂载文件系统、ISO镜像到指定文件夹
- umount命令
- 卸载已挂载的文件系统
umount 存储设备位置
umount 挂载点目录
- 卸载已挂载的文件系统
dr命令
作用df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。
df格式 [options]
主要参数
设置文件系统的自动挂载
- /r=etc/fstab配置文件
- 包含需要开机后自动挂载的文件系统记录
[root@localhost~]# vi /etc/fstab
…… (省略部分内容)
/dev/sdb1 (分区)
/mailbos (挂载点)
xfs(文件系统类型)
defaults
0
0
- 包含需要开机后自动挂载的文件系统记录
0:不检查
1:优先检查
2:其次检查
查看磁盘使用情况
- df命令
- df [选项] [文件]
- 例:[root@localhost~]# df -hT
文件系统 | 类型 | 容量 | 已用 | 可用 | 已用% | 挂载点 |
---|---|---|---|---|---|---|
/dev/maplper/VolGroup-Lv_root | ext4 | 6.7G | 4.1G | 2.3G | 65% | /(根号) |
/dev/sda1 | ext4 | 99M | 11M | 83M | 12% | /boot |
tmpfs | tmpfs | 252M | 0 | 252 | 0% | /dev/shm |
/dev/sdb1 | ext4 | 19G | 173M | 18G | 1% | /mailbox |
总结
-
管理磁盘和分区
-
创建文件系统
-
挂载、卸载文件系统