AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 656
Accepted
Nathan Osman
Nathan Osman
Asked: 2010-08-02 16:21:36 +0800 CST2010-08-02 16:21:36 +0800 CST 2010-08-02 16:21:36 +0800 CST

如何将 /usr 移动到新分区?

  • 772

我的/usr文件夹需要移动到新分区。如何在不删除内容的情况下做到这一点?

这可以在 Ubuntu 运行时完成,还是我需要为此使用 LiveCD?

partitioning
  • 3 3 个回答
  • 56565 Views

3 个回答

  • Voted
  1. Best Answer
    Hamish Downer
    2010-08-03T05:39:51+08:002010-08-03T05:39:51+08:00

    使用 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/
    

    或者

    $ sudo blkid
    

    然后将此行添加到/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)可能会导致灾难,所以我只会在你对自己正在做的事情非常有信心,真的无法处理任何停机时间,或者没有对机器的物理访问,因此无法从 live CD 或 live USB 记忆棒启动。

    • 32
  2. txwikinger
    2010-08-02T16:36:51+08:002010-08-02T16:36:51+08:00

    由于使用的大多数库都在 /usr 中,因此我不建议在运行 Ubuntu 时移动此目录。事实上,当您尝试执行此操作时,您可能会收到错误消息。因此,最好使用 LiveCD。

    您可以使用多种可能性来移动/复制文件 cp、rsync 等,以确保创建任何符号链接而不仅仅是复制。cp 和 rsync 都有这方面的选项。

    将文件移动到另一个分区后,您需要在 /etc/fstab 中添加另一个挂载以将新分区挂载到 /usr。

    • 8
  3. Aleksandar Stefanović
    2016-04-04T02:14:33+08:002016-04-04T02:14:33+08:00

    这就是我的做法(按照哈米什的回答和评论):

    1. 将所有文件复制到新创建的分区(替换为您的分区的位置,它应该类似于我的):

       rsync -avz /usr/* /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c 
      
    2. 编辑/etc/fstab(与 Hamish 的回答相同,当然,替换xxxxxx为您的 UUID)

       UUID=xxxxxx/usr           ext4    defaults        0       2
      
    3. 重新启动系统

    4. 重新启动后,打开系统监视器或类似应用程序以查看您的新/usr分区是否已挂载,并安全检查一切是否按计划进行。

    5. 检查一切正常后,您可以删除旧/usr分区。我会保留我的,以防万一出现问题。

    • 2

相关问题

  • 如何从双启动计算机访问加密的主文件夹?

  • 您对台式机和家庭服务器的驱动器分区方案有什么建议?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve