一、环境介绍

1、Centos版本:Centos7-X86_64-Eeverything2009 2、Linux 系统中增加了一块新的磁盘,系统对应的设备名为 /dev/sdb,通过 fdisk 命令对这个磁盘进行分区。创建一个主分区,两个逻辑分区。

二、相关概念(网上查询)

2.1 主要分区-P

主分区,也称为主磁盘分区,是一种分区类型。主分区中不能再划分其他类型的分区,因此每个主分区都相当于一个逻辑磁盘(在这一点上主分区和逻辑分区很相似,但主分区是直接在硬盘上划分的,逻辑分区则必须建立于扩展分区中)。早期MBR模式分区只能划分四个分区,现在的GPT分区至少可以划分128个主分区,未来很有可能将不存在扩展分区和逻辑分区的概念。其中,主分区与扩展分区最多可以有4个。

快懂百科-主分区

2.2 扩展分区-E

扩展分区就是除主分区外的分区,可以使用额外的扇区来记录分区信息,扩展分区本身并不能用于格式化。其中,扩展分区最多只能有1个。

2.3 逻辑分区

由扩展分区持续划分出来的分区。

三、准备工作

3.1 添加硬盘

1、右键虚拟机,点击【设置】。

Centos7磁盘分区-图1

2、虚拟机设置界面上,依次点击【硬件】-【添加】-【硬盘】-【下一步】。

Centos7磁盘分区-图2

3、添加硬件向导界面上,选择磁盘类型为SCSI,点击【下一步】。

Centos7磁盘分区-图3

4、添加硬件向导界面上,选择【创建新虚拟磁盘】-【下一步】。

Centos7磁盘分区-图4

5、添加硬件向导界面上,选择磁盘大小为20G,点击【下一步】。

Centos7磁盘分区-图5

6、添加硬件向导界面上,指定磁盘文件,默认即可,点击【完成】。

Centos7磁盘分区-图6

7、虚拟机设置界面上,点击【确定】。

Centos7磁盘分区-图7

注意:如上操作若在开机状态下执行需要执行reboot命令进行重启!!!

四、磁盘分区

磁盘分区三部曲:

  • 打隔断:分区操作
  • 装修,格式化:创建文件系统
  • 安装门窗:挂载(命令,配置文件)

4.1 检查磁盘分区状态

1、执行ls /dev/sd*命令查看所有磁盘。

[root@localhost test]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb

2、执行lsblk命令列出所有存储设备。

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    2G  0 part /boot
└─sda2            8:2    0   18G  0 part 
  ├─centos-root 253:0    0   16G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sr0              11:0    1  9.5G  0 rom  /run/media/test/CentOS 7 x86_64

3、执行fdisk -l /dev/sdb命令查看分区状态。观察到/dev/sdb未被分区。

[root@localhost ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

4.2 开始分区

创建主分区 1、执行fdisk /dev/sdb命令将磁盘sdb进行分区。

[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x3649a7f1.

Command (m for help): m
Command action
   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)

针对以上选项进行描述:

选项 选项含义
a 切换可启动标志
b 编辑磁盘标签
c 切换 dos 兼容标志
d 删除一个磁盘分区
g 创建一个新的空 GPT 分区表
G 创建一个 IRIX (SGI)分区表
l 列出已知的分区类型
m 打印这个菜单
n 新增一个磁盘分区
o 创建一个新的空 DOS 分区表
p 屏幕上显示分区表
q 不保存且退出fdisk程序
s 创建一个新的空 Sun 磁盘标签
t 更改分区的系统 ID
u 更改显示/输入单元
v 验证分区表
w 将表写入磁盘并退出
w 额外功能(只限专家)

2、输入【n】,新增一个磁盘分区。

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended

3、输入【p】,输入分区号【1】,起始扇区位置为【2048】,分配大小为【+10G】。

Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G
Partition 1 of type Linux and of size 10 GiB is set

4、主分区已创建完成,大小10G。输入【p】查看分区是否成功。

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x3649a7f1

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux

创建扩展分区 1、输入【n】新建分区。

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended

2、输入【e】,选择扩展分区。

Select (default p): e

3、输入【2】,选择分区号为2。

Partition number (2-4, default 2): 2

4、起始扇区位置和分配大小为默认,即直接回车即可。

First sector (20973568-41943039, default 20973568): 
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039): 
Using default value 41943039
Partition 2 of type Extended and of size 10 GiB is set

5、扩展分区创建完成,输入【p】进行查看。

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x3649a7f1

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    41943039    10484736    5  Extended

创建逻辑分区1 1、输入【n】新建分区。

Command (m for help): n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)

2、输入【l】,选择逻辑分区。

Select (default p): l
Adding logical partition 5

3、起始扇区位置为默认,即直接回车即可;分配大小为【+5G】。

First sector (20975616-41943039, default 20975616): 
Using default value 20975616
Last sector, +sectors or +size{K,M,G} (20975616-41943039, default 41943039): +5G
Partition 5 of type Linux and of size 5 GiB is set

创建逻辑分区2 1、输入【n】新建分区。

Command (m for help): n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)

2、输入【l】,选择逻辑分区。

Select (default p): l
Adding logical partition 6

3、起始扇区位置、分配大小为默认,即直接回车即可。

First sector (31463424-41943039, default 31463424): 
Using default value 31463424
Last sector, +sectors or +size{K,M,G} (31463424-41943039, default 41943039): 
Using default value 41943039
Partition 6 of type Linux and of size 5 GiB is set

4、逻辑分区已创建完成,输入【p】进行查看。

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x3649a7f1

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    41943039    10484736    5  Extended
/dev/sdb5        20975616    31461375     5242880   83  Linux
/dev/sdb6        31463424    41943039     5239808   83  Linux

5、输入【w】进行分区配置保存。

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

6、执行fdisk -l /dev/sdb命令查看分区状态。这里注意逻辑分区只能是从5开头(sdb5),因为主分区和扩展分区最多4个。

[root@localhost test]# fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x3649a7f1

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    41943039    10484736    5  Extended
/dev/sdb5        20975616    31461375     5242880   83  Linux
/dev/sdb6        31463424    41943039     5239808   83  Linux

4.3 格式化分区

格式化主分区 1、执行mkfs.xfs /dev/sdb1命令格式化主分区

[root@localhost test]# mkfs.xfs /dev/sdb1

说明:如果重复格式化失败,可以选择-f参数进行强制格式化

格式化逻辑分区 1、执行mkfs.xfs /dev/sdb5命令格式化逻辑分区1

[root@localhost test]# mkfs.xfs /dev/sdb5

2、执行mkfs.xfs /dev/sdb6命令格式化逻辑分区2

[root@localhost test]# mkfs.xfs /dev/sdb6

说明:如果重复格式化失败,可以选择-f参数进行强制格式化

4.4 挂载目录

4.4.1 临时挂载

临时挂载

1、执行mkdir -p命令创建data/usb1、data/usb2、data/usb3作为挂载点。

[root@localhost ~]# mkdir -p data/usb1
[root@localhost ~]# mkdir -p data/usb2
[root@localhost ~]# mkdir -p data/usb3

2、执行mount命令临时挂载文件系统到data/usb1、data/usb2、data/usb3空目录中。

[root@localhost ~]# mount /dev/sdb1 data/usb1
[root@localhost ~]# mount /dev/sdb5 data/usb2
[root@localhost ~]# mount /dev/sdb6 data/usb3

3、执行mount命令查看挂载是否成功。

[root@localhost ~]# mount
/dev/sdb1 on /root/data/usb1 type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sdb5 on /root/data/usb2 type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sdb6 on /root/data/usb3 type xfs (rw,relatime,attr2,inode64,noquota)

取消临时挂载 1、执行umount命令取消挂载文件系统到data/usb1、data/usb2、data/usb3空目录中。

[root@localhost ~]# umount data/usb1 data/usb2 data/usb3 

4.4.2 永久挂载

永久挂载1-/etc/fstab

1、执行blkid命令查看文件系统的UUID。

[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="232e1a5f-65d2-4509-b446-99be7c2d6293" TYPE="xfs" 
[root@localhost ~]# blkid /dev/sdb5
/dev/sdb5: UUID="f5c69e75-436e-4e77-9093-ff67179c955e" TYPE="xfs" 
[root@localhost ~]# blkid /dev/sdb6
/dev/sdb6: UUID="6b5d4060-bca2-49c0-b23d-457cc144f734" TYPE="xfs" 

2、执行vi /etc/fstab命令打开/etc目录下的fstab文件,填写以下内容。

UUID="232e1a5f-65d2-4509-b446-99be7c2d6293"  /root/data/usb1 xfs defaults 0 0
UUID="f5c69e75-436e-4e77-9093-ff67179c955e" /root/data/usb2 xfs defaults 0 0
UUID="6b5d4060-bca2-49c0-b23d-457cc144f734" /root/data/usb3 xfs defaults 0 0

其中内容格式为

[UUID] [挂载点] [文件系统] [文件系统参数] [dump] [fsck]
dump-能否被dump备份命令作用
fsck-是否以fsck检验扇区

3、执行mount -a命令进行语法检查,正常则无任何回显消息;反之,会报错。

[root@localhost usb1]# mount -a

4、执行df /root/data/usb1命令查看/dev/sdb1是否挂载成功。这里显示挂载成功。

[root@localhost usb1]# df /root/data/usb1
Filesystem     1K-blocks  Used Available Use% Mounted on
/dev/sdb1       10475520 32992  10442528   1% /root/data/usb1

5、执行df /root/data/usb2命令查看/dev/sdb5是否挂载成功。这里显示挂载成功。

[root@localhost usb1]# df /root/data/usb2
Filesystem     1K-blocks  Used Available Use% Mounted on
/dev/sdb5        5232640 32992   5199648   1% /root/data/usb2

6、执行df /root/data/usb3命令查看/dev/sdb6是否挂载成功。这里显示挂载成功。

[root@localhost usb1]# df /root/data/usb3
Filesystem     1K-blocks  Used Available Use% Mounted on
/dev/sdb6        5229568 32992   5196576   1% /root/data/usb3

取消永久挂载1-/etc/fstab 1、执行umount命令取消挂载文件系统到data/usb1、data/usb2、data/usb3空目录中。

[root@localhost ~]# umount data/usb1 data/usb2 data/usb3 

2、执行df /root/data/usb1命令查看/dev/sdb1是否取消挂载成功。这里显示取消挂载成功。/dev/sdb2和/dev/sdb3类似。可自行演示。

[root@localhost ~]# df /root/data/usb1
Filesystem              1K-blocks    Used Available Use% Mounted on
/dev/mapper/centos-root  16762880 4943956  11818924  30% /

永久挂载2-/etc/rc.local

把挂载命令写入到/etc/rc.local,注意命令最好写为绝对路径

[root@localhost ~]# echo "mount /dev/sdb1 data/usb1" >> /etc/rc.local
[root@localhost ~]# echo "mount /dev/sdb5 data/usb2" >> /etc/rc.local
[root@localhost ~]# echo "mount /dev/sdb6 data/usb3" >> /etc/rc.local

取消永久挂载2-/etc/rc.local

将上面挂载命令从/etc/rc.local移除