我在 debian 下有两个 unix 分区,我想合并它们(磁盘空间问题:/)。最简单的方法是什么?我认为最好将文件从一个分区压缩或复制到另一个分区,删除一个分区并调整另一个分区的大小。我将使用parted来调整大小,但我应该如何复制文件?有些链接、权限和设备需要在不进行更改的情况下移动。

有帮助吗?

解决方案

您可以运行下面的(作为root)将文件复制。它适用于符号链接,设备和普通文件。

cd /partition2
tar cf - . | ( cd /partition1 && tar xf - )

另一种方法是使用的cpio,但我从来不记得正确的语法。

其他提示

由于这是Debian中在GNU fileutils中,cp --archive应该正常工作。

cp --archive --sparse=always --verbose --one-file-system --target-directory=/TARGET /ORIGIN

如果由于某种原因,你想通过GNU tar去,你需要做这样的事情:

cd /origin
find . -xdev -depth -not -path ./lost+found -print0 \
    | tar --create --atime-preserve=system --null --files-from=- \
          --format=posix --no-recursion --sparse \
    | { cd /target; tar --extract --overwrite --preserve-permissions --sparse; }

(我已经这样做了这么多次,我已经得到了所有为快速参考这些命令行的文件。)

警告:使用GNU “tar” 将的复制POSIX的ACL;你需要为使用上述“cp --archive法”或“的bsdtar ”:

mkdir /target
cd /origin
find . -xdev -depth -not -path ./lost+found -print0 \
    | bsdtar -c -n --null -T - --format pax \
    | { cd /target; bsdtar -x -pS -f -; }

您还可以使用 SquashFS 创建分区的镜像并将其复制过来。调整第二个分区的大小后,安装 SquashFS 映像并复制必要的文件。请记住,您的内核需要 SquashFS 支持才能挂载映像。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top