前言
- 如果你的主机是
windows
的话,那么装个虚拟机就很有必要,毕竟有的时候在预研某项技术的时候最好的环境就是linux
上安装相应的服务进行单元功能点研究以及测试,至于为什么选择linux
这里没啥好赘述的。 - 因为主机硬盘大小的限制,虚拟机的硬盘空间正常不会分配的太大,但是随着虚拟机承载的功能点越来越多,扩容就很有必要。包括我们的
linux
服务器也会遇到硬盘空间扩容的场景。
硬盘信息
-
一个硬盘上可以分为
主分区
扩展分区
逻辑分区
. 在linux
中 通过sd
或者hd
用来标识硬盘前缀 。比如我们系统中就一块硬盘 通过ls /dev/ | grep sd
查看能够发现只有一块名称叫做sda
。而通过数字来进行区分分区。 -
sda1~sda4
用来标识主分区 、扩展分区分配一块硬盘上主分区+扩展分区<=4
。 主分区用Primary
标识 ;扩展分区用Exetend
标识。 -
主分区主要用来存放系统的,扩展分区无法直接使用。在扩展分区里需要创建逻辑分区用来存放文件。
- 我们可以通过
ls /dev | grep sd
来查看当前系统一共有几块硬盘。sda
sda1
表示是同一块硬盘。包括后面我们在虚拟机上扩容也是同一块硬盘。
分区的意义
- 分区的意义就在于能够分离管理。主分区主要用来放系统,逻辑分区主要用来存放文件。这样当系统奔溃的时候只有主分区受影戏,就算我们想重新安装系统也只有系统文件被更新了,和我们平时自己产生的文件没有丝毫关联。这里的分区和
windows
的盘符一个作用。 - 我们创建不同的逻辑分区就是对应
windows
上的不同的盘符 。 将不同的逻辑分区挂载到不同的目录下就可以分工合作了。在使用时只是不同的目录,但是数据确实存储在不同的分区上的,甚至是不同的硬盘上,这样做的好处是坏也只会坏1个分区或者1块硬盘,其他分区是不会受影响的。
文件系统
- 存放在分区里的文件我们叫做文件系统。每一块分区只能存储一种文件系统。这个在我们格式化分区的时候需要我们指定的。关于文件系统有好多类型
文件系统 | 说明 |
---|---|
FAT16 | 老的文件系统;4G以内的分区系统 |
FAT32 | 管理2TB以内的分区适合的文件系统 |
NTFS | 日志型文件系统。Windows 大多使用的是这种 |
ext2 | Linux系统专用类型 |
ext3 | Linux系统专用类型 |
ext4 | Linux系统专用类型 |
系统扩容
-
有了上面的基础知识的铺垫 , 下面我们再来为我们的
Linux
系统进行扩容就很容易理解了。- 给硬盘创建扩展分区
- 给硬盘创建逻辑分区
- 给逻辑分区创建文件系统
- 将逻辑分区挂载到空的目录上
-
光知道理论知识可能还不够,我们还需要了解相关的指令才能清除的知道该创建什么分区。
指令 | 作用 |
---|---|
lsblk | 查看硬盘情况 |
df -lh | 查看硬盘使用情况,以及挂载点信息 |
sudo fdisk -l | 查看硬盘分区情况 |
sudo fdisk /dev/sda | 给指定的sda 硬盘创建分区 |
sudo mkfs.ext4 /dev/sda | 格式化硬盘,并写入文件系统。sudo mkfs.ext4 /dev/sda4 : 格式化 sda4 分区 |
sudo mount /dev/sda4 ~/zxhtom | 将 /dev/sd4 这块逻辑分区挂载到系统用户的下的 zxhtom 目录下 |
cat /proc/partitions | 查看当前硬盘分区数据 |
查看当前硬盘
- 由于我是通过
虚拟机
演示的,所以扩展的硬盘相当于原来的硬盘,所以这里我们先查看下/dev/sda
这块硬盘的情况。
sudo fdisk -l | grep /dev/sda
- 我们也可以通过
sudo fdisk /dev/sda
后选择F
来查看未被分区的空间大小
创建分区
- 既然还有未分区的空间,那么我们下面就开始创建分区吧,为了体验下逻辑分区,所以这里我们需要创建扩展分区。其实主分区和逻辑分区没啥区别。只不过逻辑分区不受数量限制。
sudo fdisk /dev/sda
-
输入上面命令进入分区界面。进入界面如果你不知道该如何操作可以
m
查看帮助文档。 -
由文档可知,输入
n
表示创建分区
- 按下
n
后系统告诉我们,当前/dev/sda
硬盘有1个主分区, 还剩余3个分区名额可以使用。且p
表示主分区 ;e
表示扩展分区。这里我们选择e
-
上述操作 将硬盘的剩余空间全部创建为
/dev/sda3
这块扩展分区中。 -
在保存之前我们可以通过
p
查看下分区情况
- 说明此时我们拥有
/dev/sda1
/dev/sda3
两块分区,第二块是扩展分区Extended
- 保存后就完成了分区了,此时通过
sudo fdisk -l | grep sda
就可以看到了
创建逻辑分区
- 之前我们就说了,扩展分区是不会存储任何东西的,需要存储文件我们就需要在扩展分区中创建逻辑分区。而我也说过了逻辑分区约等于主分区 , 逻辑分区的创建和上面的步骤一样。(注意如果硬盘空间被使用了,且无扩展分区,那么在执行
n
创建分区会提示无空间使用)
- 上面我们创建的 扩展分区是
100G
空间 。 那么我们的逻辑分区大小就不得小于1G 。 这里我选择创建2G
- 保存后就可以查看新的分区情况了
格式化文件系统
-
现在我们已经有了逻辑分区了
/dev/sda5
。 剩下的就是给他进行格式化了。 -
还记得
lsblk
这个命令吗。这个命令可以查看硬盘信息已经分区类型等。但是通过lsblk
这个命令却查不到/dev/sda5
这块分区。因为需要我们先刷新下分区表
partprobe /dev/sda
- 能够通过
lsblk
看到说明此时我们就能够格式化分区了。
sudo mkfs.ext4 /dev/sda5 # 如果需要格式化多个分区可以用 ; 隔开 ,在敲 sudo mkfs.ext4 /dev/sdax
挂载目录
- 在挂载之前我们得先准备一个空的文件夹。
mkdir ~/mnt
- 否则会报错的
- 这样就说明挂载完成了。此时我们可以通过
df
命令查看分区的使用以及挂载情况
-
至此我们
linux
的扩容就完成了。 如果此时你想解除挂载目录 可以输入umount /dev/sda5
-
最后在挂载目录下会生成一个文件夹
lost+found
就说明挂载完成
不挂载使用
- 如果你的分区创建好之后并不想进行挂载 ,这个时候也是可以使用的,毕竟此时我们已经创建好逻辑分区了。此时分区的位置在
/media/${USER}
位置下, 我的登录用户名叫zxhtom
所以我创建的分区就在/media/zxhtom
目录下。
- 没错下面这一长串的
UUID
就是我新建的分区的文件夹名称。如果我新建了很多个分区,那我该如何知道分区对应的UUID呢?
-
通过
ls -l /dev/disk/by-uuid
就可以将当前硬盘的分区对应的UUID 显示出来了。 -
或者执行
sudo blkid
也可以查看到UUID
永久挂载
- 上述虽然完成了挂载,但是当系统重启后你会发现之前挂载的目录空了 ,说明挂载丢了。
- 总不能系统重启后每次都要手动进行挂载吧。linux也帮我们想到了这一点了。只需要在
/etc/fstab
文件中追加如下内容
-
你也许看到第一行是配置UUID的方式配置的,分区名也就是第一列是可以配置成UUID=分区的UUID的格式的,关于分区的UUID 上面提到了两种方式
-
配置完之后要么重启, 不重启的话 执行
mount -a
刷新/etc/fstab
文件里内容。 -
这样就完成了永久挂载, 及时永久挂载了,如果说你想临时解除挂载
umount
命令也是可以的。
扩展作业
- 上面完成了创建1个逻辑分区,看完本文你试试去创建另外一个逻辑分区吧。 分区需谨慎哦。