Linux之磁盘管理
一、磁盘结构
1.1硬盘的物理结构
1.2硬盘的数据结构
- 扇区: 存放数据的最小单位,一个扇区512字节
- 磁道: 同一盘片不同半径的同心圆
- 柱面: 不同盘片相同半径不同盘片相同半径构成的圆(柱面和磁道数量相同)
1.3磁盘的接口类型
IDE SATA SCSI SAS 光纤通道
- IDE:133MB/s,并行接口,早期家用电脑
- SCSI:640MB/s,并行接口,早期服务器
- SATA:6Gbps,SATA数据端口与电源(长的电源,数据线短的)端口是分开的,即需要两条线,一条数据线,一条电源线
- SAS:6Gbps,SAS是一整条线,数据端口与电源端口是一体化的,SAS中是包含供电线的,而SATA中不包含供电线。SATA标准其实是SAS标准的一个子集,二者可兼容,SATA硬盘可以插入SAS主板上,反之不行。
- M.2
- 光纤接口
服务器硬盘大小
- LFF:3.5寸
- SFF:2.5寸
Tips:小尺寸的可以适配大尺寸的,反之不行
机械硬盘(HDD)
固态硬盘(SSD)
Tips:
相较于SSD,HDD在价格、容量占有绝对优势
硬盘有价,数据无价,目前SSD不能完全取代HHD
二、MBR与磁盘分区
- Windows 不一定要分区
- Linux 一定要分区,才可以使用硬盘
2.1分区的优点
- 优化I/O性能,读写
- 实现磁盘空间配额限制
- 提高修复速度
- 隔离系统和程序
- 安装多个OS
- 采用不同文件系统
2.2分区的缺点
- 只能分连续分空间
- 一旦分好区域后无法增加减少空间,空间就固定
- 一旦分好区域inode号就会固定
2.3MBR分区
MBR(Master Boot Record)
-
MBR 分区(old)只支持2T以下硬盘 fdisk
-
GPT 分区(new)能支持2T以上硬盘 gdisk
-
MBR位于硬盘的第一个物理扇区,MBR中有硬盘主引导程序和硬盘分区表
-
MBR:主引导记录,是硬盘上的第一个扇区,想要读数据得从这个扇区开始
MBR一共512字节
前446字节 开机引导程序,引导硬件,找到操作系统
后64 字节 分区表 表明了分区的范围,分区从哪里开始到哪里结束
最后2字节 代表MBR 结束位 -
MBR分区只可以分4个分区,一个分区表要占16字节
-
MBR分区分类
主分区:可以直接使用,安装操作系统、存储文件等。
扩展分区:不可以直接使用,需要再划分逻辑分区 (作用:让分区超过4个)
逻辑分区:可以直接使用,存储文件 -
tips:
扩展分区是特殊的主分区
主分区的序号为1-4
逻辑分区的序号从5开始
55aa是第一个扇区的结束
分区表不能丢失,一旦丢失,整个硬盘的内容就丢失了
[root@localhost ~]#hexdump -C -n 512 /dev/sda 00000000 eb 63 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |.c..............| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b |.........|...t..| 00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00 |L.....|.........| 00000050 00 00 00 00 00 00 00 00 00 00 00 80 01 00 00 00 |................| 00000060 00 00 00 00 ff fa 90 90 f6 c2 80 74 05 f6 c2 70 |...........t...p| 00000070 74 02 b2 80 ea 79 7c 00 00 31 c0 8e d8 8e d0 bc |t....y|..1......| 00000080 00 20 fb a0 64 7c 3c ff 74 02 88 c2 52 be 05 7c |. ..d|<.t...R..|| 00000090 b4 41 bb aa 55 cd 13 5a 52 72 3d 81 fb 55 aa 75 |.A..U..ZRr=..U.u| 000000a0 37 83 e1 01 74 32 31 c0 89 44 04 40 88 44 ff 89 |7...t21..D.@.D..| 000000b0 44 02 c7 04 10 00 66 8b 1e 5c 7c 66 89 5c 08 66 |D.....f..\|f.\.f| 000000c0 8b 1e 60 7c 66 89 5c 0c c7 44 06 00 70 b4 42 cd |..`|f.\..D..p.B.| 000000d0 13 72 05 bb 00 70 eb 76 b4 08 cd 13 73 0d 5a 84 |.r...p.v....s.Z.| 000000e0 d2 0f 83 de 00 be 85 7d e9 82 00 66 0f b6 c6 88 |.......}...f....| 000000f0 64 ff 40 66 89 44 04 0f b6 d1 c1 e2 02 88 e8 88 |d.@f.D..........| 00000100 f4 40 89 44 08 0f b6 c2 c0 e8 02 66 89 04 66 a1 |.@.D.......f..f.| 00000110 60 7c 66 09 c0 75 4e 66 a1 5c 7c 66 31 d2 66 f7 |`|f..uNf.\|f1.f.| 00000120 34 88 d1 31 d2 66 f7 74 04 3b 44 08 7d 37 fe c1 |4..1.f.t.;D.}7..| 00000130 88 c5 30 c0 c1 e8 02 08 c1 88 d0 5a 88 c6 bb 00 |..0........Z....| 00000140 70 8e c3 31 db b8 01 02 cd 13 72 1e 8c c3 60 1e |p..1......r...`.| 00000150 b9 00 01 8e db 31 f6 bf 00 80 8e c6 fc f3 a5 1f |.....1..........| 00000160 61 ff 26 5a 7c be 80 7d eb 03 be 8f 7d e8 34 00 |a.&Z|..}....}.4.| 00000170 be 94 7d e8 2e 00 cd 18 eb fe 47 52 55 42 20 00 |..}.......GRUB .| 00000180 47 65 6f 6d 00 48 61 72 64 20 44 69 73 6b 00 52 |Geom.Hard Disk.R| 00000190 65 61 64 00 20 45 72 72 6f 72 0d 0a 00 bb 01 00 |ead. Error......| 000001a0 b4 0e cd 10 ac 3c 00 75 f4 c3 00 00 00 00 00 00 |.....<.u........| 000001b0 00 00 00 00 00 00 00 00 0a 2f 0b 00 00 00 80 20 |........./..... | 000001c0 21 00 83 d5 89 8c 00 08 00 00 00 00 a0 00 00 d5 |!...............| 000001d0 8a 8c 8e fe ff ff 00 08 a0 00 00 f8 df 06 00 00 |................| 000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200 [root@localhost ~]#
三、文件系统
3.1文件系统是什么和作用
- 文件系统时内核中的模块
- 负责为用户建立文件,存入,读取,修改,转储文件,控制文件存取,安全控制,日志,压缩,加密等。
Tips:iso9660 光驱
3.2XFS(CentOS7默认)
- 根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
- 用优化算法,日志记录对整体文件操作影响非常小
- 是一个全64-bit的文件系统,最大可以支持8EB的文件系统,1EB=1024PB1PB=1024TB
- 而支持单个文件则达到8EB能以接近裸设备I/O的性能存储
3.3swap(当内存不足时,将硬盘的空间转化成内存使用)
swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的 RAM 保存系统处理的数据时会将数据写入 swap 分区,当系统缺乏 swap 空间时,内核会因 RAM 内存耗尽而终止进程。配置过多 swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖内存不足。
3.4FAT16 FAT32
单个文件最大支持4G,最大支持32G分区。
3.5NTFS(xfs)(Windows默认)
NTFS文件系统所具备3个功能:错误预警功能、磁盘自我修复功能和日志功能,单个文件64GB。
3.6EXT4(CentOS6默认)
Extended file system 适用于那些分区容量不是太大,更新也不频繁的情况。
3.7JFS
主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB,该文件系统最大支持1PB的容量。
1EB=1024PB
1PB=1024TB
1TB=1024GB
3.8文件系统的修复
fsck.FS_TYPE fsck -t FS_TYPE -a 自动修复 -r 交互式修复错误
四、分区工具
4.1fdisk
fdisk [磁盘设备] -m 打印出菜单 -p 打印出当前分区表 -n 新建一个分区 -d 删除一个分区 -t 改变分区的属性,系统ID -w 保存 -q 不保存退出
fdisk -l #查询磁盘情况 [root@localhost ~]#fdisk -l 磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000b2f0a 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 10487807 5242880 83 Linux /dev/sda2 10487808 125829119 57670656 8e Linux LVM #Device:分区的设备文件名称。 #Boot:是否是引导分区。若是,则有“*”标识。主系统 #Start:该分区在硬盘中的起始位置(柱面数)。 #End:该分区在硬盘中的结束位置(柱面数)。 #Blocks:分区的大小,以Blocks(块)为单位,默认的块大小为 1024 字节。 #Id:分区对应的系统ID号。83表示 Linux 中的 XFS 分区或 EXT4 分区、8e表示 LVM逻辑卷。LVM是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,与之相关的知识将在后面的章节介绍。 #System:分区类型。识别到新的硬盘设备后,就可以在该硬盘中建立新的分区了。在 Linux操作系统中,分区和格式化的过程是相对独立的。 磁盘 /dev/mapper/centos-root:53.7 GB, 53687091200 字节,104857600 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-swap:5364 MB, 5364514816 字节,10477568 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 fdisk -l 设备名 /dev/sd{a,b,c,d,e} #查询设备的磁盘情况
[root@localhost scsi_host]#fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x4d1bd521 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助): 输入n新建分区 p:主分区 e:扩展分区 l:逻辑分区 设置分区:1(范围1-4 ,如按回车代表默认值) 设置分区大小:+20G (指定大小为20G ,回车代表默认使用全部空间)
Tips:创建后分区如果分区未出现可以使用 partprobe 刷新检测分区表。
4.2blkid
可以查看块设备属性信息
blkid [磁盘设备]
4.3mkfs
创建文件系统(格式化)
mkfs -t ext4=mkfs.ext4 -t {ext2|ext3|ext4|xfs} 指定文件系统类型
4.4mkswap
swap分区 (会开启和关闭)
swapoff -a 全部关闭 swapon -a 全部开启 分区时需要改变分区类型为82 swap类型 需要按t 输入82 mkswap 设备名 格式化成swap分区 swapon 设备名 开启swap
free -h fdisk /dev/sdb1 p t 82 w mkswap /dev/sdc1 #1.分区
五、挂载和解挂载
5.1挂载
mount [ -t 类型 ] 存储设备 挂载点目录 mount -o loop ISO镜像文件 挂载点目录
挂载规则 :
- 一个挂载点同一时间只能挂载一个设备
- 一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏
- 一个设备可以同时挂载到多个挂载点
- 通常挂载点一般是已存在空的目录
自动挂载
vim /etc/fstab
/dev/sdb1 /mnt xfs defaults 0 0
mount -a #自动挂载
df
tips:挂载的时候尽量用UUID(可使用blkid /dev/sdb1查看UUID,在vim编辑器中末行模式:.!blkid /dev/sdb1)(逻辑分区567,删掉6,7会顺延)(Ctrl+D报错 硬盘出错)
mount -o loop iso光驱 空文件夹
5.2解挂载
umount [磁盘设备]
六、实验
本文作者:德国南部之星
本文链接:https://www.cnblogs.com/mtwm/p/17576459.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步