如何调整主文件系统的大小

mik*_*927 4 linux filesystems

在我的 centos 服务器上,我安装了一个新卷/dev/sdb。我想为根文件系统添加空间/dev/vda1

[user@prod current]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        30G   11G   18G  37% /
devtmpfs        488M     0  488M   0% /dev
tmpfs           497M     0  497M   0% /dev/shm
tmpfs           497M   50M  447M  11% /run
tmpfs           497M     0  497M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1000
/dev/sdb         50G   53M   47G   1% /mnt/volume_nyc3_01

Run Code Online (Sandbox Code Playgroud)

有没有办法减少/dev/sdb和增加/dev/vda1?如果可能的话,不会丢失/dev/vda1.

Sve*_*ven 11

如果我们将/dev/vda/dev/sdb视为不同的(物理)磁盘,这并不容易实现,以至于从头开始重新安装服务器并从一开始就/放入 LVM 卷会容易得多。

如果绝对有必要,这可以通过长时间的停机时间和大量有关您需要做什么的知识来完成。不过,这很容易出错,我什至不建议尝试。

/dev/vda表明这是某种虚拟系统。根据底层系统允许的内容,可能可以调整提供的磁盘映像的大小/dev/vda(如有必要,删除/缩小提供的映像/dev/sdb)。与您的管理员/提供商交谈。在这种情况下,在系统选择较大的 之后/dev/vda,您可以扩展/dev/vda1然后扩展/文件系统。


小智 5

我非常怀疑这在字面上是可能的。但是您可以做的是将文件或文件夹从 /dev/vda1 移动到 /dev/sdb,然后让它们出现在 /dev/vda1 上的同一位置。这会增加 /dev/vda1 上的可用空间。

例如,一个简单的解决方案是将 /var、/home、/opt 或 /usr 的内容移动到 /dev/sdb,然后将 /dev/sdb 挂载为您移动的任何文件夹。这是处理这个问题的一种很常见的方法。小心使用 /sbin 和 /root,因为它们可能需要在 /dev/sdb 安装到您的设置中之前存在。您可以通过更改 fstab(这可以通过您的设置中的工具完成)来做到这一点。

您也可以对 /dev/sdb 进行分区(我认为)。然后你可以将它挂载为多个目录。这将涉及向 fstab 添加条目。

第三种选择是将文件从 /dev/vda1 移动到 /dev/sdb,然后对它们进行符号链接,使它们出现在文件结构中的相同位置。您通常会将这些符号链接放在文件夹级别。例如类似的东西

ln -s /mnt/volume_nyc3_01/usr /usr
Run Code Online (Sandbox Code Playgroud)

您将以 root 身份执行此操作(可能使用sudo)。这将允许您将任意文件夹或文件放在 /dev/sdb 上,同时仍然在文件系统中的同一位置访问它们。我想您已经知道如何使用du来查找占用最多空间的文件和文件夹。