Linux如何给根目录扩容内存

  • Linux如何给根目录扩容内存已关闭评论
  • 49 次浏览
  • A+
所属分类:linux技术

第一种:LVM分区格式,就是用系统默认的自动分区格式

1.添加一块20G大小的nvme硬盘

Linux如何给根目录扩容内存

2.启动后,查看硬盘是否已经被系统识别

Linux如何给根目录扩容内存

3.对/dev/nvme0n2进行分区,并设置分区属性

fdisk /dev/nvme0n2  # 然后输入 n p enter enter enter t L 8e w  # t:修改分区文件系统id,选择8e,与原有分区属性一致(lvm) # L:列举出所有Hex代码 

Linux如何给根目录扩容内存
Linux如何给根目录扩容内存
Linux如何给根目录扩容内存

3.让系统识别新增分区,然后创建物理卷

# 输入partprobe让系统识别新增的分区  partprobe   # 创建物理卷  pvcreate /dev/vdc1   # 如果没有上述命令就需要安装这个软件包  dnf -y install lvm2   # 查看  pvdisplay 

Linux如何给根目录扩容内存
Linux如何给根目录扩容内存

4.扩展卷组,扩展根分区

如果不知道系统自动给你分配的卷组的名称是什么,可以通过以下命令查看  vgdisplay | grep -w "VG Name" | awk '{print $3}'  # vgdisplay命令,会列出系统中存在的所有卷组的详细信息,grep -w "VG Name"是在输出信息中过滤出名为 “VG Name” 的行,awk '{print $3}'则是只打印该行的第三个单词,即卷组的名称。   vgextend rl /dev/nvme0n2p1   # 这个命令的作用是将一个物理卷(Physical Volume,PV)/dev/nvme0n2p1扩展到一个名为rl的卷组(Volume Group,VG)中   lvresize -L +19.90G /dev/rl/root   # 这个命令的作用是将名为/dev/rl/root的逻辑卷的大小增加 19.90 GB。该命令会把逻辑卷的大小调整为原来的大小加上指定的大小,因此这个卷会变得更大。  # 此命令通过 -L 参数指定要增加的大小,+19.90G 表示要增加的大小为 19.90 GB。如果要缩小逻辑卷的大小,可以省略 + 号,例如 -L 10G 表示将逻辑卷调整为 10 GB。  # /dev/rl/root指的是名为 rl 的卷组中的逻辑卷 root 指定这个逻辑卷是因为系统中可能有多个逻辑卷,我们需要指定要调整哪一个, root 这个逻辑卷通常是操作系统根目录(/)所在的逻辑卷,所以就给根目录扩容了20G   xfs_growfs /dev/rl/root  # 这个命令的作用是将文件系统大小扩展到逻辑卷 /dev/rl/root 的大小。  # 在 Linux 系统中,逻辑卷是通过管理物理卷来分配的。逻辑卷中的文件系统可以在线扩容,即在不影响正在运行的系统的情况下增加文件系统的大小。逻辑卷的大小被扩展后,文件系统并没有跟着扩展,需要使用 xfs_growfs 命令单独对文件系统进行扩展。  # xfs_growfs 命令用于扩展 XFS 文件系统的大小到逻辑卷的大小,即文件系统和逻辑卷大小保持一致。执行这个命令时,需要保证文件系统是挂载的状态,否则命令会执行失败。在这个命令中,/dev/rl/root 指定了要操作的逻辑卷的名称。 

Linux如何给根目录扩容内存

5.查看硬盘大小

Linux如何给根目录扩容内存


第二种,标准分区格式,及自定义的分区

标准分区(Standard Partition)是硬盘分区的一种类型,也称作基本分区(Primary Partition)。

Linux如何给根目录扩容内存

1.添加一块40G大小的nvme硬盘

Linux如何给根目录扩容内存

2.确认硬盘被识别,调整分区大小,初始化

# 该命令比lsblk查看到的硬盘信息更详细  fdisk -l  fdisk /dev/nvme0n2  # 然后输入 n p enter enter enter w  mkfs.ext4 /dev/nvme0n2p1 

Linux如何给根目录扩容内存
Linux如何给根目录扩容内存
Linux如何给根目录扩容内存

3.确认创建完毕后,新建挂载点,并使用 blkid 命令找到新创建分区的 UUID。

# 创建一个名为新分区的目录作为挂载点  mkdir /mnt/new_partition   # 查找创建的分区的UUID  blkid /dev/nvme0n2p1 

Linux如何给根目录扩容内存

4.将分区挂载到挂载点,使用rsync 命令将原本的根目录下的所有数据复制到新的分区下。

mount /dev/nvme0n2p1 /mnt/new_partition  dnf -y install rsync  rsync -avx / /mnt/new_partition # 上述命令中,-a 参数表示以递归方式同步文件夹,并保留完整的文件属性。-v 参数表示通过标准输出显示执行过程中的详细信息,-x 表示排除挂载点 /mnt/new_partition 的同步 

5.复制完成后,需要在根目录下创建一个old文件夹(名字自定义),并将原来的根(/)目录挂载到old文件夹

mkdir /old mount --bind / /old 

6.将/mnt/new_partition挂载到根目录下

mount --bind /mnt/new_partition/ / 

7.最后在/etc/fstab文件中写入内容,开机自动挂载

vim /etc/fstab /dev/nvme0n2p1 /mnt/new_partition ext4 defaults 0 0 

这种方法只能帮你在你根目录容量不够的情况下,迁移到一块大一点的硬盘上,虽然也能起到扩容的作用,但是还是建议使用LVM,方便快捷,而且,生产环境中也不会让你所有东西都放在根目录下,你只要加上一块硬盘,格式化后,随便挂载一个目录就能使用了,到时,要存的东西扔在挂载目录下就行。

Linux如何给根目录扩容内存
Linux如何给根目录扩容内存