Linux磁盘管理精讲

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux磁盘管理精讲相关的知识,希望对你有一定的参考价值。

博文目录

一、磁盘基础

1、磁盘结构

二、磁盘分区表示

1、磁盘分区结构

2、文件系统类型

三、规划硬盘分区

1、检测并确认新硬盘

2、规划硬盘中的分区

一、磁盘基础

1、磁盘结构

  • 硬盘存储容量=磁头数x磁道(柱面)数x每道扇区数x每扇区字节数

  • 可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域

1)硬盘的物理结构

  • 盘片:硬盘有多个盘片,每盘片2面;

  • 磁头:每面一个磁头;

2)硬盘的数据结构

  • 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据;

  • 磁道:同一盘片不同半径的同心圆;

  • 柱面:不同盘片相同半径构成的圆柱面;

3)磁盘接口类型

  • IDE(并口):基本上已经淘汰;

  • SATA(串口):速度快,纠错能力强,目前主流接口,应用广泛;

  • SCSI:转速快,CPU占用资源低,支持热插拔;

4)MBR主引导记录

MBR(Master Boot Record)位于硬盘第一个物理扇区处;MBR中包含硬盘的主引导程序和硬盘分区表;分区表有4个分区记录区,每个分区记录区占16个字节。

二、磁盘分区表示

Linux中将硬盘、分区等设备均表示为文件。

  • IDE:/dev/hda5,硬盘的顺序号用a~z表示,分区的顺序号用数字表示,1~4表示为主分区,5以后表示为逻辑分区,计算机总共两块IDE接口磁盘。

  • SATA,SCSI:/dev/sdb2,计算机总共三块SATA或者SCSI接口的硬盘。

应用举例如下:
技术图片

1、磁盘分区结构

硬盘中的主分区数目只有4个,因此主分区和扩展分区的序号也就限制在1~4,扩展分区再分为逻辑分区,逻辑分区的序号将始终从5开始。如下图所示:
技术图片

2、文件系统类型

1)XFS文件系统

存放文件和目录数据的分区,高性能的日志型文件系统,CentOS 7系统中默认使用的文件系统。

2)SWAP交换文件系统

为Linux系统建立交换分区。

3)EXT4第4代扩展(Extended)文件系统

存放文件和目录数据的分区,典型的日志型文件系统,系统中默认使用的文件系统。

4)Linux支持的其他文件系统类型

FAT16、FAT32、NTFS、XFS、JFS......

三、规划硬盘分区

1、检测并确认新硬盘

1)检测并确认新硬盘的基本语法格式如下:

技术图片

输出信息说明如下所示:

技术图片

应用举例如下(列出当前系统中所有硬盘设备及其分区的信息):

[root@centos01 ~]# fdisk -l

磁盘 /dev/sda:85.9 GB, 85899345920 字节,167772160 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ab7bb

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     8800255     4194304   82  Linux swap / Solaris
/dev/sda3         8800256   167772159    79485952   83  Linux

磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

2、规划硬盘中的分区

1)规划硬盘分区的作用及语法格式

用来在交互式的操作环境中管理磁盘分区,规划硬盘分区的基本语法格式如下:
技术图片

2)应用举例如下:

[root@centos01 ~]# fdisk /dev/sdb  
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):m   <!--查看操作指命的帮助信息-->
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition‘s system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

3)在fdisk交互模式中的常用指令

  • m:查看操作指令的帮助信息;

  • p:列表查看分区信息;

  • n:新建分区;

  • d:删除分区;

  • t:变更分区类型;

  • w:保存分区设置并退出;

  • q:放弃分区设置并退出;

3)规划硬盘中的分区案例

  • 为主机新添加一块40GB的SCSI硬盘;

  • 对该硬盘进行分区:划分3个主分区,各5GB;

  • 剩余空间为扩展分区;在扩展分区中建立2个逻辑分区,容量分别为5GB、10GB;

  • 将第一个逻辑分区的类型更改为swap,第二个逻辑分区的类型更改为lvm卷;

  • 确认分区设置情况,保存退出;

案例应用如下:

[root@centos01 ~]# fdisk /dev/sdb    <!--规划新添加的硬盘-->
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):n      <!--新建分区-->
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p           <!--创建分区为主分区 -->
分区号 (1-4,默认 1):          <!--第一个主分区(保持默认)-->
起始 扇区 (2048-83886079,默认为 2048):       <!--默认回车即可-->
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):+5G        <!--第一个主分区设置为5GB-->
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):n            <!--新建分区-->
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended 
Select (default p): p           <!--新建主分区-->
分区号 (2-4,默认 2):           <!--第二个主分区-->
起始 扇区 (10487808-83886079,默认为 10487808):    <!--默认下一步-->
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-83886079,默认为 83886079):+5G            <!--第二个主分区设置为5GB-->
分区 2 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):
起始 扇区 (20973568-83886079,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-83886079,默认为 83886079):+5G
分区 3 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):n        <!--新建分区-->
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e         <!--新建扩展分区-->
已选择分区 4
起始 扇区 (31459328-83886079,默认为 31459328):  <!--默认回车即可-->
将使用默认值 31459328
Last 扇区, +扇区 or +size{K,M,G} (31459328-83886079,默认为 83886079):            <!--大小保持默认回车即可-->
将使用默认值 83886079
分区 4 已设置为 Extended 类型,大小设为 25 GiB

命令(输入 m 获取帮助):n           <!--新建第一个逻辑分区-->
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (31461376-83886079,默认为 31461376):     <!--默认回车-->
将使用默认值 31461376
Last 扇区, +扇区 or +size{K,M,G} (31461376-83886079,默认为 83886079):+5G           <!--第一个逻辑分区设置为5GB-->
分区 5 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):n             <!--新建第二个逻辑分区-->
All primary partitions are in use
添加逻辑分区 6
起始 扇区 (41949184-83886079,默认为 41949184):       <!--默认回车-->
将使用默认值 41949184
Last 扇区, +扇区 or +size{K,M,G} (41949184-83886079,默认为 83886079):+10G          <!--第二个逻辑分区设置为10GB-->
分区 6 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):t             <!--转换分区类型-->
分区号 (1-6,默认 6):5            <!--转换第一个逻辑分区-->
Hex 代码(输入 L 列出所有代码):82          <!--转换为swap分区-->
已将分区“Linux”的类型更改为“Linux swap / Solaris”

命令(输入 m 获取帮助):t          <!--转换分区类型-->
分区号 (1-6,默认 6):6            <!--转换第二个逻辑分区-->
Hex 代码(输入 L 列出所有代码):8e             <!--转换为lvm卷-->
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p             <!--列表查看分区信息-->

磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd91b1f6f

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    20973567     5242880   83  Linux
/dev/sdb3        20973568    31459327     5242880   83  Linux
/dev/sdb4        31459328    83886079    26213376    5  Extended
/dev/sdb5        31461376    41947135     5242880   82  Linux swap / Solaris
/dev/sdb6        41949184    62920703    10485760   8e  Linux LVM

命令(输入 m 获取帮助):w           <!--保存分区设置并退出-->
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。

———————— 本文至此结束,感谢阅读 ————————

以上是关于Linux磁盘管理精讲的主要内容,如果未能解决你的问题,请参考以下文章

Linux账号管理精讲

RHEL8(CentOS)网络管理精讲

Linux文件/目录的权限及归属管理精讲

Linux文件系统与LVM精讲

KVM虚拟化实战精讲[第三章 创建虚拟磁盘]

精讲shell基础以及如何高效的学习shell编程