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 中国大陆许可协议进行许可。

posted @   德国南部之星  阅读(114)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑