将 /usr 移动到其他磁盘

将 /usr 移动到其他磁盘

我在一台有两个硬盘的机器上安装了 Ubuntu 12.04,/dev/sda并将/dev/sdb安装/dev/sdb2在 上/。我想将其移动/usr到第二个硬盘,因为它非常快(但很小)。我该如何(安全地)做到这一点?

谢谢,诺亚

答案1

步骤1:进行备份。

第 2 步:按照此答案操作问库本图

使用 Live CD 是最安全的,但您可以执行以下操作:

  • 将所有文件复制到新分区,确保/usr执行此操作时内容不会发生变化。
  • 编辑/etc/fstab以便/usr下次重启时安装
  • 重启
  • 删除旧文件

请参阅下文了解每个步骤的详细信息。

请注意,您无法在/usr运行时挂载新分区,因为其中将有大量文件/usr处于打开状态。

复制文件

我会使用cp -a.-a是存档选项。从手册页

-a, --archive
          same as -dR --preserve=all
...
-d     same as --no-dereference --preserve=links
...
-P, --no-dereference
          never follow symbolic links in SOURCE
...
--preserve[=ATTR_LIST]
          preserve      the      specified      attributes       (default:
          mode,ownership,timestamps),  if  possible additional attributes:
          context, links, xattr, all
...
-R, -r, --recursive
          copy directories recursively

编辑 /etc/fstab

您需要知道新分区的 UUID。您可以通过执行以下操作来查看映射:

$ ls -l /dev/disk/by-uuid/

然后将这一行添加到/etc/fstab

UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2

将 UUID 更改为您的 UUID,并更改ext4为您正在使用的文件系统类型 - 如果您已经设置了分区,您应该知道这一点。

删除旧文件

重启后,/usr根分区中的旧文件将被挂载在 上的新分区隐藏/usr。但我们可以使用一些挂载绑定诡计获取旧文件然后删除它们。

$ sudo mount --bind / /mnt
$ sudo rm -rf /mnt/usr
$ sudo umount /mnt

但是一些轻微的输入错误(例如,当您只输入时按下 Enter 键sudo rm -rf /mnt)可能会导致灾难,因此,如果您对自己所做的事情非常有信心,真的无法处理任何停机时间,或者没有物理访问机器的权限,因此无法从实时 CD 或实时 USB 启动,我才会使用此方法。

相关内容