磁盘扩展
一、背景说明
服务器在创建linux系统的时候,磁盘的大小和分区都是一开始设置好的,但是由于系统的应用越来越多,或者本身系统应用就是用来存储的,比如数据库(mysql)、消息队列(kafka)、镜像仓库、代码仓库等等。 这时候硬盘空间可能不足以支撑现有的系统运行,需要扩展硬盘的空间大小。
常用的扩展方式有:
增加硬盘
数据迁移新硬盘
下面介绍这两种方式如何对系统的硬盘进行扩展。
以下是做一个设定,具体情况需要根据实际的硬盘分区和硬盘驱动选择:
原硬盘的分区磁盘为:/dev/sda
新硬盘的分区磁盘为:/dev/sdb
查看为分区的磁盘命令:
fdisk -l二、增加硬盘
2.1 磁盘分区
进入磁盘
fdisk /dev/sdb创建分区
输入n,进行分区操作
选择分区类型:p-主分区,e-扩展分区,一般选择主分区,直接回车或者输入p回车
选择分区号:1-4随便选择分区号,最好依次选择
输入起始扇区:如果是新硬盘,一般是2048,回车即可,如果需要手动选择扇区自行选择
输入结束扇区:如果是需要固定大小,比如10G,则可以输入
+10G的方式,也可以自行输入扇区的大小,计算方式如下:10 * 1024 * 1024 * 1024 / 512开头的10为10G。
输入命令w,重写分区表
2.2 挂载磁盘
将分区好的磁盘挂载到目录/mount上
格式化分区
mkfs -t ext4 /dev/sdb1#创建目录 mkdir /mount #挂载目录 mount /dev/sdb1 /mount永久挂载
设置fstab,永久挂载
vi /etc/fstab添加以下信息然后保存退出
路径挂载(推荐)
/dev/sdb1 /mount ext4 defaults 0 1UUID:通过命令
blkid获取UUIDUUID=68c7b9fb-5096-49be-a205-c6f0677ff743 /mount ext4 defaults 0 1
第五列是dump备份设置。
当其值设置为1时,将允许dump备份程序备份;设置为0时,忽略备份操作;
第六列是fsck磁盘检查设置
其值是一个顺序。当其值为0时,永远不检查;而 / 根目录分区永远都为1。其它分区从2开始,数字越小越先检查,如果两个分区的数字相同,则同时检查。
三、迁移新硬盘
新数据的硬盘假设为256G
3.1 数据迁移
通过dd命令将硬盘数据进行拷贝
sudo dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync如果想查看dd的进度,打开新的窗口输入以下命令:
watch -n 5 pkill -USR1 -x dd3.2 磁盘分区
禁用所有交换空间
swapoff -a创建主分区
删除所有分区,并且创建主分区(修改大小)
进入磁盘
fdisk /dev/sdb输入d删除分区(直到删除所有分区)
输入n,进行分区操作
选择分区类型:直接回车
选择分区号:直接回车
输入起始扇区:直接回车
输入结束扇区:输入
+254G(根据实际的硬盘大小设置),本身硬盘是不满的,加上预留2G做swap如果提示
Partition #1 contains a ext4 signature,输入y回车输入
t,选择分区1,设置类型。这一步可以不需要设置,默认即可。
debian为 83(Linux 文件系统)
ubuntu为20(Linux 文件系统)
- 输入命令w,重写分区表
3.2.3 创建交换分区
进入磁盘
fdisk /dev/sdb输入n,进行分区操作
选择分区类型:直接回车
选择分区号:直接回车(看个人选择)
输入起始扇区:直接回车
输入结束扇区:输入
+1G(根据个人选择设置)输入
t,选择分区2(这里要对应自己的swap分区),设置类型为82(swap)。输入命令w,重写分区表
更新UUID
更新UUID有个好处,不需要去修改/etc/fstab里的挂载配置,使用相同的UUID即可避免,将启动引导到新的硬盘上即可
通过blkid查看分区的UUID

记录两个uuid,假设sda1的UUID为UUID1,sda2的UUID为UUID2,sba1为主分区,sba5为swap
通过以下命令设置UUID,具体的分区号以实际为准:
#修复主分区文件:一直回车即可
fsck /dev/sdb1
#设置主分区,输入y
tune2fs -U $514d108d-3f4e-40a4-8621-acb35dc9dd39 /dev/sdb1
#设置swap
mkswap -U ccd62226-15bf-499e-80b3-981c4441698e /dev/sdb2
swapon /dev/sdb23.3 更新配置
更新引导
grub-install /dev/sdb
update-grub重新生成 initramfs
update-initramfs -u扩展大小
resize2fs /dev/sdb1如果是虚拟机需要修改启动引导,这里还有个问题,如果重启以后,硬盘的分区变化了,需要重新更新引导,比如我的sdb在重启以后变成了sda,这个时候我需要重新更新引导
