df -h
以下是我们 Redhat Linux 系统上的输出。
$ df -h
/dev/mapper/vg_d0-lv_root
50G 41G 5.9G 88% /
tmpfs 12G 0 12G 0% /dev/shm
/dev/sda1 477M 75M 378M 17% /boot
/dev/mapper/vg_d0-lv_home
214G 189M 203G 1% /home
我们的托管服务提供商就是这样配置的,它是一台专用服务器。在意识到分区方案之前,我们已经安装了一些重要的软件,并开始将其用于关键的日常任务(这对我来说似乎不切实际,不确定为什么要专用这么小的分区/
?)。在联系我们的托管服务提供商或研究其他解决方案之前,我想咨询这里的社区。
我的主要问题是:
有没有办法将/dev/mapper/vg_d0-lv_home
分区与 /dev/mapper/vg_d0-lv_root
分区“合并”,而无需擦除/dev/mapper/vg_d0-lv_home
分区(我们的/home/
目录安装在其上)。
此外,次要的是,我想知道是否有人可以推断出这种分区方案背后的原因,为什么需要单独的/dev/sda1
分区/boot
?为什么有人会分配这么小的空间/
?tmpfs
足够大吗?等等。
答案1
[阅读您的帖子,我怀疑您可能没有意识到您正在使用逻辑卷 - 这是一种从操作系统中抽象磁盘的强大机制,并且可能为您的问题提供了解决方案,如下所示]
回答您的主要问题 - 不,您不能将 LVM 分区合并在一起。
也就是说,在这种情况下您不需要 - 您甚至无需重新启动系统即可获得所需的最终结果!您可以简单地将数据从 /home 复制到新目录 /home2,然后卸载 /home 并将 /home2 重命名为 /home,并从 fstab 中删除映射。
完成此操作后,您可以销毁 /dev/mapper/lv_d0-lv_home 并将空间重新分配给 /dev/mapper/vg_d0-lv_root,然后扩展文件系统。
如果您需要有关如何执行此操作的具体信息,请告诉我 - 我没有提供这些信息,因为它没有回答您的问题。
关于推理
这实际上是一个非常合乎逻辑的分区方案。
/boot 需要位于物理磁盘上,因为 BIOS 对逻辑卷一无所知。因此,它需要一个它知道如何读取的小磁盘,以便从中引导所有内容。该磁盘是 /dev/sda1,然后将其挂载为 /boot。
此布局中有一个假设,即您想要将数据与程序分离 - /dev/mapper/vg_d0-lv_root 包含操作系统和程序,而 /home 用于用户数据 - 虽然这个假设可能不是您想要的,但它很合理。
对于根文件系统来说 50 GB 实际上是相当多的,如果您考虑到基础 Linux 操作系统通常只需要 2 - 6 GB,那么剩下大约 45 GB 的空间用于程序 - 同样,它可能不是您想要的,但对于普通系统来说,这是一个合理的尝试。
tmpfs 是一种特殊的文件系统,实际上是一个由交换空间支持的 RAM 磁盘。它比需要的要大得多 - 如果非要说的话,那就是太大了 - 但是,由于它由 SWAP 支持,所以这可能是合理的,并且通常由操作系统设置。
附加信息 - 评论后
请先备份所有内容。调整硬盘大小总是有风险的,如果你以前没有这样做过,风险就更大了。我没有运行过这些命令,所以不要盲目相信它们。
首先,关于 LVM 的一个非常基础的入门知识 -
LVM——逻辑卷管理——将一个磁盘(或 10 个磁盘)分成 3 层——
物理卷 - 这些是专门为 LVM 使用的分区。您可以使用命令“pvs”查看物理卷列表,或使用“pvdisplay”查看详细信息。
卷组 (VG) - 这些是物理卷组。您可以在 VG 中拥有 1 个或多个 PV,但每个 PV 最多只能有 1 个 VG。通常只有一个 VG - 但如果您有混合使用(例如 SSD 和硬盘),您可能希望将 SSD 放在一个组中,将硬盘放在另一个组中。您可以使用命令“vgs”查看卷组的摘要,或使用“vgdisplay”查看详细信息
逻辑卷 (LV) 位于卷组上 - 同样,您会将多个逻辑卷归入 1 个卷组。您可以使用命令“lvs”查看逻辑卷的摘要,或使用“lvdisplay”查看详细信息。
查看 /dev/mapper/vg_d0-lv_root - 您的卷组将是“vg_d0”,您的逻辑卷将被称为“lv_root”。
我不太愿意建议您移动 /var,因为这样很可能会破坏一些东西 - 特别是当一个程序试图从 /var 读取时。
以下是扩大根分区的步骤 -
- 通过移动 /home 目录释放磁盘空间:
以 root 身份登录。(如果您以普通用户身份登录,则可能难以卸载系统,因为普通用户的主目录位于 /home 下,而 root 位于 /root 下。如果您无法以 root 身份登录,请创建一个临时用户,将其目录更改为 /tmp,并将其添加到“wheel”组)。以他们的身份登录,然后成为 root,然后 -
mkdir /home2
cp -var /home/* /home2
umount /home
mv /home2 /home
编辑 /etc/fstab 并注释掉 mount /home 行。
lvremove /dev/mapper/vg_d0-lv_home
然后将删除“lv_home”卷组,释放它以供重复使用。您需要确认是否要删除该卷。在执行此命令之前,您应该确保 /home 中的所有内容仍然存在。
现在,您有 203 GB 的额外空间可以随意重新分配。
将(几乎)所有空间分配给根分区
lvexpand /dev/mapper/vg_d0-lv_root -L +202G
(您可以使用“extents”更精确地执行此操作 - 范围是 LVM 中的一块数据 - 块的大小将根据 LVM 的设置方式而有所不同 - 您可以使用 vgdisplay 查看可用的范围,并将 -L +202G 替换为 -l +number_of_extents。)
然后,您就可以在线扩展根驱动器。
resize2fs /dev/mapper/vg_d0-lv_root
(请注意,一些发行版使用 resize2fs,其他发行版使用 resize4fs - 两个命令相同并在标准 ext4 文件系统上运行)。
其他想法:不使用逻辑卷中的所有可用空间通常是有益的 - 如果您有可用空间,LVM 可以允许您拍摄快照,这有助于备份繁忙的系统而不会出现停机或不一致,如果您以后需要分配空间,您可以随时添加它。扩大分区也比缩小分区容易得多 - 缩小文件系统只能离线完成。我建议您至少留出 30 GB,即仅将 LVM 扩展到 170 GB,而不是完整的 203 GB。您以后可以随时将其扩展更多(使用相同的命令)