ton*_*sdg 6 partitioning ssd lvm hard-drive
我目前在一台带有 96-GB SSD 的机器上安装了 Ubuntu 16.04 Server。对于服务器上的所有用户来说,这不再有足够的空间,所以我想添加一个 1 TB 硬盘并将/home文件夹明确移动到这个 1 TB 驱动器上的新分区。
最初,我计划使用此处的说明执行此操作。但是,仔细查看系统后,我发现 LVM 已启用:
Filesystem Size Used Avail Use% Mounted on
udev 63G 0 63G 0% /dev
tmpfs 13G 9.5M 13G 1% /run
/dev/mapper/ubuntu--vg-root 98G 76G 18G 82% /
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda2 473M 111M 338M 25% /boot
/dev/sda1 512M 136K 512M 1% /boot/efi
tmpfs 13G 0 13G 0% /run/user/1001
Run Code Online (Sandbox Code Playgroud)
根据我目前阅读的内容,我需要将新驱动器添加到ubuntu-vg卷组(如本答案的步骤 2-3 中所示)。但我不确定在此之后如何继续——我应该继续第4-5 步吗?或者是否有另一种方法可以明确移动/home到 1 TB HDD 并留/在 SSD 上?
有很多方法可以做你想做的事,但我推荐的方法是:
pvcreate命令准备 PV(s) 以供 LVM 使用,如sudo pvcreate /dev/sdb1.vgextend,如sudo vgextend ubuntu--vg /dev/sdb1。sudo pvdisplay以显示有关 PV 的统计信息,包括其大小。lvcreate,如sudo lvcreate -L 900G -n home ubuntu--vg /dev/sdb1。请注意,我已经指定了一种语法,使您能够设置大小 (via -L) 和将在其上创建 LV 的 PV ( /dev/sdb1)。sudo pvdisplay再次键入以验证您是否创建了大小合适的 LV。如果没有,您可以使用 调整大小lvresize或删除它,lvremove然后重试。sudo mkfs -t ext4 /dev/mapper/ubuntu--vg-home.sudo mount /dev/mapper/ubuntu--vg-home /mnt./home使用tar、cp、rsync或您喜欢的任何工具复制您的目录。/etc/fstab以在/home./home名称重命名为其他名称(例如,/home-orig)并创建一个新的空/home目录作为挂载点。/home-orig目录。步骤 8-11 与您参考的 wiki 页面中概述的过程中的等效步骤非常相似,因此我已经详细介绍了这些步骤。
请注意,虽然我自己已经做过很多次这种事情,但我展示的示例命令是基于我对相关手册页的阅读,所以我可能遗漏了一些细节。我建议您查看手册页,如果出现错误,请在找出错误后进行调整。此外,我发现 Ubuntu 的默认 LVM 命名令人困惑,因此我可能误解了该细节,您可能需要进行调整。
完成此操作后,您的 SSD 上的 PV 中将有未使用的空间。您可以将根 ( /) LV 扩展到此空间,扩展/homeLV 以跨越两个磁盘,为某些特殊目的创建另一个 LV,等等。
此过程的一个变体可能是将当前/homeLV保留在原处,在新磁盘上创建一个新 LV,然后开始使用新 LV 作为溢出空间。您注意到您的计算机是一个多用户服务器,所以这可能很尴尬,但可能有这样做的理由——例如,如果只有一两个用户消耗了大部分磁盘空间,您可以移动只是他们的主目录到新空间或为他们提供新空间上的目录(带有挂载点或符号链接以使其更容易访问)并指示他们将大文件移动到新空间。这种方法的优点是不会对其他用户产生负面影响,因为新的硬盘存储空间可能明显比旧的 SSD 存储空间慢。