增加根磁盘空间

增加根磁盘空间

作为 Linux 新手,我想增加 fedora-root 中的磁盘空间大小,但似乎其他文件系统中还有大约 16GB 的可用空间。这是正确的评估吗?下面我提供了命令 df 和 pvscan 的结果。

[lobster@localhost ~]$ 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  4.9M  3.9G   1% /run 
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/fedora-root   22G   20G  612M  98% /
tmpfs                    3.9G  144K  3.9G   1% /tmp
/dev/sda1                976M  128M  782M  15% /boot
tmpfs                    797M   20K  797M   1% /run/user/42
tmpfs                    797M   11M  787M   2% /run/user/1000

[lobster@localhost ~]$ sudo pvscan
[sudo] password for lobster: 
PV /dev/sda2   VG fedora          lvm2 [24.00 GiB / 0    free]
Total: 1 [24.00 GiB] / in use: 1 [24.00 GiB] / in no VG: 0 [0   ]

我承认这个问题类似于根文件系统中没有更多空间,我该如何增加大小? 但是,当我从该线程运行解决方案时,我收到以下

[lobster@localhost ~]$ sudo lvextend --size +3.9G --resizefs /dev/fedora/root
Rounding size to boundary between physical extents: 3.90 GiB.
Insufficient free space: 999 extents needed, but only 0 available

请帮助我以最简单的方式了解如何增加根磁盘空间。谢谢。

编辑:附加信息

[lobster@localhost ~]$ sudo fdisk -l /dev/sda
Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos Disk identifier: 0x4bf237d2

Device    Boot   Start      End  Sectors Size Id Type
/dev/sda1         2048  2099199  2097152   1G 83 Linux
/dev/sda2    * 2099200 52426751 50327552  24G 8e Linux LVM

答案1

误解

看起来其他文件系统有大约 16GB 的可用空间

好吧,如果这个可用空间在磁盘上,那么可能有办法做你想做的事;但是devtmpfstmpfs数据存储在 RAM 中。RAM 是易失性的,你不能用它来进行长期存储。

即使可以,这些3.9G值也不会增加。基于 RAM 的文件系统取自公共池。向其中一个添加文件会减少其他可用空间。


抽象层

您的案例中,抽象层很少。我们来给它们命名(首先是外层):

  • 物理设备/dev/sda
    • 分区,其中包括 LVM 使用的分区:/dev/sda2
      • LVM提供的虚拟设备:/dev/mapper/fedora-root
        • 文件系统

每一层的更改都使用不同的操作/命令进行。一般来说,如果您想要扩展文件系统并且需要修改几层,则从最外层开始;如果您想要缩小,则从最内层(即文件系统本身)开始。


概述

那么您可以使用什么呢?您的扇区为/dev/sda字节。扇区编号从到。其中包括:52428800512052428799

  • 该扇区0是 MBR。
  • 扇区1-2047可能保存引导加载程序的(一部分)。您不应该触碰它们。无论如何,它大约有 1 MiB,不是很大的空间。
  • 扇区2048-52426751是您的两个分区。稍后我们将回顾它们。
  • 扇区52426752-52428799可能未使用。另外 1 MiB,几乎没有。

运行fdisk -llsblk查看是否还有其他设备可用。这是一般性建议,我想如果它们在那里,您就会知道。

好的,怎么样/dev/sda2? 告诉Linux LVMpvscan整个空间是分布式的。 它的绝大部分构建/dev/mapper/fedora-root用于保存您的根文件系统(安装在 下/)。 文件系统的大小约为 22 GiB。 这小于 报告的 24 GiB pvscan;可能的原因:

  • LVM 保存您的交换分区,大约 2 GiB(可能,运行lvscanswapon确认);
  • 或者文件系统小于/dev/mapper/fedora-root虚拟设备(不太可能);
  • 其他(不太可能)。

怎么样/dev/sda1?它保存挂载在下的文件系统/boot。很可能你不需要整个 1 GiB,它可以更小。如果你缩小它,你将能够创建一个新分区(如sda3),将其添加到 LVM 并扩展根文件系统。如果你缩小它太多,你将在操作系统升级期间遇到问题。你大概可以从中获得几百 MiB 并避免将来出现问题,但是

  • 它是仅有的几百MiB;
  • 如果出现任何问题,您的操作系统可能无法启动。

您的选择(摘要)

  1. 使用ncdu或类似工具来识别根文件系统中的大文件/目录;思考、调查是否可以删除它们。这样或许您无需调整文件系统大小即可获得一些可用空间。
  2. 减少交换分区(如果有的话)并重新配置 LVM,以便最终能够扩展根文件系统。您还没有告诉我们您的交换分区,很难说您可以获得多少空间,或者首先这样做是否有任何意义。一般来说,您确实需要一定数量的交换空间。
  3. 缩小当前安装的文件系统/boot(如上所述)。
  4. 物理连接另一个设备(如/dev/sdb)并将其或其分区添加到 LVM。您提供的信息让我相信这是显著地增加根文件系统。如果我们讨论的是虚拟机,您可能能够扩展现有设备/dev/sda(对于真正的物理设备通常不可能),而不是添加单独的新设备。

笔记

  • 使用 LVM 很好。它使上述大多数选项变得更简单。
  • 扩展文件系统本身将是最后一步。我不知道它是什么类型。一些文件系统类型(ext4, btrfs) 支持在线操作;这意味着您可以在挂载文件系统时扩展它,这对于根文件系统非常有用。
  • 为了更详细地指导您(实际命令等),我们需要知道您选择的选项。涵盖所有这些会使问题和答案变得非常广泛,您还需要提供大量其他信息。因此
    • (元注释)我建议将这个问题改为“我有哪些方法可以增加根磁盘空间?”做出决定后,您可以提出另一个问题以了解详细信息(或者可能已经有一个类似的问题)。我们可以稍后从这里链接到详细问题。

相关内容