一些背景: 我已在我的笔记本电脑 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 记忆棒启动。