我有一个磁盘 /dev/sda1,其容量为 60GB,我需要增加其容量。还有另一个磁盘 /dev/sdb,其容量为 500GB,我想增加磁盘容量,有什么方法可以使用 /dev/sdb 来增加磁盘 /dev/sda1 的容量吗?
答案1
假设 /dev/sda1 被挂载为,/
但它变得太小了。假设您/data
在该磁盘上有一个巨大的目录。您想将其移开,移到另一个分区,比如说/dev/sdb1
,但仍然能够访问它,就像它仍在您的 上一样/dev/sda1
。假设 上有一个 EXT4 文件系统/dev/sdb1
。
挂载
/dev/sdb1
到文件系统中的挂载点(我diskb1
在这里使用,但您可以随意称呼它):sudo mkdir /mnt/diskb1 sudo mount /dev/sdb1 /mnt/diskb1 sudo chown youruser:youruser /mnt/diskb1
最后一个命令将分区的所有权更改为您的用户。替换youruser
为您的用户名。
将
/data
目录复制到另一个磁盘。我建议这样做rsync
,但cp
使用正确的标志也可以。rsync -alz /data /mnt/diskb1/
如果复制过程中出现错误,只需重新输入相同的命令即可。事实上,无论如何都要重复两次,以确保所有内容都已复制。
删除旧的
/data
。此时,您已经正确复制了它,因此这样做没有坏处。这是释放磁盘 /dev/sda1 上的存储空间的步骤。sudo rm -r /data
创建一个名为的符号链接
/data
,指向磁盘 b 上的数据副本:sudo ln -s /mnt/diskb1/data /data
就是这样。以前可用的所有数据/data
仍然存在,只是现在存储在磁盘 b 上。您需要输入一行/etc/fstab
,使data
分区在每次重新启动后都挂载,但本网站上有很多这样的示例。
确保将sdb1
、youruser
和替换/data
为系统所需的内容。不要对/bin
或等系统目录进行此操作/lib
,这些目录应保留在根分区上。在开始之前,备份你的数据。
答案2
除非您想处理附加层 RAID 的复杂性,否则您无法将多个磁盘的空间组合成一个存储卷。对于“普通”用户(即没有服务器),使用符号链接无缝访问另一个位置的存储具有很大的灵活性。
您可能想探索 RAID,但不要过分依赖它来扩大单个卷,除非您投资额外的硬盘空间。强大的 RAID 要求您选择数据镜像,因此您需要双倍的空间。