当我们的服务器磁盘空间快满了,可能就需要新增一块磁盘了。但添加了新的磁盘不是立马就可以用的,需要进行一系列的操作:磁盘分区、格式化、挂载等操作。
下面,我来和大家说下如何给linux系统添加新的分区
分区
分区前我们要找到新的磁盘名称。使用lsblk
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk └─vda1 253:1 0 40G 0 part / vdb 253:16 0 200G 0 disk <===== 我们需要对这块磁盘进行分区 ├─vdb1 253:17 0 50G 0 part /data └─vdb2 253:18 0 100G 0 part /www
可以看到,vdb这块磁盘还剩50G的剩余空间。接下来就是对磁盘进行分区了,需要使用fdisk或gdisk命令。
# fdisk /dev/vdb Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): <=== 输入m可以获得帮助信息,常见有p打印分区情况,n新增分区,d删除分区,w保存
## 然后我们输入n Command (m for help): n Partition type p primary (2 primary, 0 extended, 2 free) e extended (container for logical partitions) Select (default p): <=== 这里我们就用default,如果主分区已经有了三了个,那么建议使用e Using default response p. Partition number (3,4, default 3): <=== 继续enter First sector (314574848-419430399, default 314574848): <=== 继续enter Last sector, +sectors or +size{K,M,G,T,P} (314574848-419430399, default 419430399): # 因为我们想使用掉所有剩余空间,所以直接enter,如果是想要指定大小,可以输入+1G这样 Command (m for help):w <=== 最后填入w保存配置
现在我们检测下,新分区是否出来了
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk └─vda1 253:1 0 40G 0 part / vdb 253:16 0 200G 0 disk ├─vdb1 253:17 0 50G 0 part /data ├─vdb2 253:18 0 100G 0 part /www └─vdb3 253:19 0 50G 0 part <===== 出现了一个新的分区
格式化分区前,我们重新读取下内核分区表
partprobe # cat /proc/partitions major minor #blocks name 253 0 41943040 vda 253 1 41941999 vda1 253 16 209715200 vdb 253 17 52428800 vdb1 253 18 104857600 vdb2 253 19 52427776 vdb3 <=== 已经出来了
格式化
格式化是为了写入文件系统,格式化非常简单,使用mkfs.文件系统名即可。
# mkfs.xfs /dev/vdb3 ……
挂载
格式化后文件系统已经写入到新的分区了,但是该分区还不能使用,还需要去将分区挂载到空目录上。我们就拿/mnt这个空目录作为挂载点
# mount /dev/vdb3 /mnt
到这步就可以使用新的分区了。下面用df命令来检测下看看:
# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 528K 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/vda1 40G 19G 22G 47% / /dev/vdb1 50G 466M 50G 1% /data /dev/vdb2 100G 27G 74G 27% /www tmpfs 782M 0 782M 0% /run/user/0 /dev/vdb3 50G 390M 50G 1% /mnt <===== 已经有了
开机自动挂载
现在这个分区挂载到/mnt目录,已经是可以使用的了,但是每次只要重启服务器,就需要重新挂载该分区。那有没有什么办法,让它开机自动挂载呢?有的,有一个文件专门作用于开机挂载的。这个文件就是/etc/fstab文件,打开这个文件,看下它的格式
UUID=e32cfa7a-df48-4031-8fdf-5eec92ee3039 / xfs defaults 0 0
每一行总共有6个参数,含义分别如下:
[设备名/UUID/卷标名等] [挂载点] [文件系统] [文件系统参数] [是否备份] [是否检测硬盘]
下面,我们在这个文件新加入一样,首先我们需要知道该文件系统的UUID(建议使用UUID)
# blkid /dev/vda1: UUID="e32cfa7a-df48-4031-8fdf-5eec92ee3039" TYPE="xfs" PARTUUID="1863aa79-01" /dev/vdb1: UUID="d997ce14-6822-4719-9476-15e6b0cec59d" TYPE="xfs" PARTUUID="a5f349fa-01" /dev/vdb2: UUID="47685195-e6e1-4761-b7f8-26104218f3d7" TYPE="xfs" PARTUUID="a5f349fa-02" /dev/vdb3: UUID="d95d50fa-a7a9-4cc4-ae41-a9081821f089" TYPE="xfs" PARTUUID="a5f349fa-03" <=== 在这里
现在在/etc/fstab新增一行,内容如下
UUID=d95d50fa-a7a9-4cc4-ae41-a9081821f089 /mnt xfs defaults 0 2
注:修改/etc/fstab文件后,记得用mount -a检测一下是否有语法错误,如果有错的话,会导致开机不正常