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接口的硬盘。

应用举例如下:
Linux磁盘管理精讲

1、磁盘分区结构

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

2、文件系统类型

1)XFS文件系统

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

2)SWAP交换文件系统

为Linux系统建立交换分区。

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

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

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

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

三、规划硬盘分区

1、检测并确认新硬盘

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

Linux磁盘管理精讲

输出信息说明如下所示:

Linux磁盘管理精讲

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

[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)规划硬盘分区的作用及语法格式

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

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)
正在同步磁盘。

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