一、环境介绍¶
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、右键虚拟机,点击【设置】。

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

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

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

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

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

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移除