将 4 个系统文件夹移动到 1 个独立分区

将 4 个系统文件夹移动到 1 个独立分区

一些背景: 我已在我的笔记本电脑 SSD 上的 10GB 格式化分区上安装了 Linux Mint 17 Cinnamon,并且我还有另一个 75GB 的 HDD,均为 ext4 格式。

提问部分:我有两个分区让我们称呼它们系统(sda1)数据(sdb1)

如何移动文件夹:,使用者,变量tmp数据(sdb1)并使它们可以从根系统访问?

我尝试了符号链接和 fstab,其逻辑蹩脚,但不起作用。

我在我的/etc/fstab

UUID=XXX-Data-drive-UUID-XXX /media/data ext4 default 0 1 
/media/data/tmp /tmp ext4 default 0 1
/media/data/home /home ext4 default 0 1
/media/data/usr /usr ext4 default 0 1
/media/data/var /var ext4 default 0 1

有人能至少给我指出正确的方向吗?

-- 已编辑--

答案有效,但只是为了帮助任何走这条路的人:

首先,我使用命令 cp -rp 进行复制(-r 表示递归,-p 表示保持相同的权限,没有 -p 一切都将属于 root)

我更改了 /etc/fstab 作为答案,绑定子句确实起到了作用。

我用 liveUSB 重新启动,只是为了重命名旧文件夹系统(sda1)并避免某种冲突。

而且我正常启动,没有出现任何错误。

答案1

在我看来,您正在尝试将已安装(或安装的一部分)的目录安装到不同的位置。要做的方法就是mount -o bind.所以你会得到这样的东西:

UUID=XXX-Data-drive-UUID-XXX /media/data ext4 defaults 0 1 
/media/data/tmp /tmp ext4 defaults,bind 0 0
/media/data/home /home ext4 defaults,bind 0 0
/media/data/usr /usr ext4 defaults,bind 0 0
/media/data/var /var ext4 defaults,bind 0 0

(你也可能指的是defaults,不是default,我在这里改变了)

PS:不应检查绑定安装,因此我将答案编辑为“0 0”

答案2

你可以试试这个:

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

复制文件:我会使用cp -a.-a是存档选项。从手册页:

-a,--archive

    -dR --preserve=all
    与⋮相同
-d
    --no-dereference --preserve=links
    与⋮相同
-P,--no-dereference
    切勿遵循 SOURCE 中的符号链接
--preserve[=ATTR_LIST]
    保留指定的属性(默认:模式、所有权、时间戳),如果可能的话附加属性:上下文、链接、xattr、全部
-R, -r,--recursive
    递归复制目录

编辑/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

但是一些轻微的错误输入(例如,当您只输入 sudo rm -rf /mnt 时按 Enter )可能会导致灾难,所以如果您对自己正在做的事情非常有信心,真的无法处理,我只会使用这种方法任何停机时间,或者无法物理访问计算机,因此无法从 Live CD 或 Live USB 记忆棒启动。

相关内容