将空间从一个分区移动到另一个分区?

将空间从一个分区移动到另一个分区?

我真的不确定这是否可能,或者我将如何解决这个问题。

Filesystem      Size  Used Avail Use% Mounted on
udev             14G   12K   14G   1% /dev
tmpfs           2.8G  388K  2.8G   1% /run
/dev/sda1        30G   26G  2.6G  91% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none             14G     0   14G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sdb1       394G   54G  321G  15% /mnt

看起来我有足够的空间/dev/sdb1,但我没有足够的空间/dev/sda1。是否可以将千兆字节从 sdb1 移动到 sda1?

答案1

  • /dev/sdX(“X”是一个字符,例如a、b、c...)-这代表块设备(可以是HDD、SSD或其他存储设备)
  • /dev/sdXN/dev/sda1并且/dev/sdb1在你的df-命令输出) - 这代表/dev/sdX设备上的特定分区。

您无法在不同存储设备之间移动“物理”存储空间(扇区、GB...)。

以下信息基于假设。请记住这一点。

我相信您的实际要求是在“/”安装点中有可用空间。您可以通过不同的方式实现这一目标。最简单的是将部分数据从...移动/dev/sda1/dev/sdb1...

我认为这是一个好主意移动“用户”数据 /dev/sda1 /dev/sdb。您的目录很可能/home位于/dev/sda1.

  1. 备份您的/dev/sda1/dev/sdb1卷!
  2. 使用分区工具来缩小您的/dev/sdb1.例如,您可以使用gparted.您需要为您的/home目录释放足够的空间,包括您未来的需求。
  3. 添加新分区 ( /dev/sdb2)。使用与之前相同的文件系统类型对其进行格式化/dev/sda1。这将确保您能够/home正确存储所有数据(包括访问权限等)。 (实际上“几乎所有” - 如果您的 /home 包含指向其他文件的硬链接,而这些文件不在 /home 中,您将无法将它们保留为硬链接。所有硬链接必须放置在一个文件系统中。)
  4. 将所有数据从当前/home目录复制到/dev/sdb2.您可以选择不同的工具,例如 -同步, 或者CP(两者都有适当的选项)。
  5. 从目录中删除所有内容/home
  6. 安装/dev/sdb2/home.您可以让系统在引导期间执行自动挂载。请参阅您的发行版的文档以了解更多详细信息。

注意:在进行任何操作之前,请记住备份 /dev/sda 和 /dev/sdb 中的所有数据。

——更新:“我如何获取这些块设备上安装了哪些文件系统?” 看blkidmount或者sudo parted -l输出。

答案2

我认为大部分数据位于主目录(?)挂载/dev/sdb1/home分区。移旧移homehome。 (或者usermod -d user使用 to更改每个用户的主目录/mnt/home/user并移动文件...)

答案3

按照所写的问题,不可能从一个空间中移动千兆字节的空间身体的设备到另一个设备。这些设备是:

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda1        30G   26G  2.6G  91% /
/dev/sdb1       394G   54G  321G  15% /mnt

...由于/dev/sda/dev/sdb结尾有不同的字母,它们可能是不同的物理设备,这是不可能的。

然而,一个人可以移动文件/dev/sda1/dev/sdb1。假设/dev/sda1包含一个20G的文件/home/用户/foo.bar。执行mv /home/user/foo.bar /mnt/foo.bar将使可用空间看起来像这样:

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda1        30G    6G 22.6G  20% /
/dev/sdb1       394G   74G  301G  19% /mnt

相关内容