在debian(unix)下合并分区的最简单方法?

时间:2008-12-10 09:44:22

标签: unix merge debian disk-partitioning

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

3 个答案:

答案 0 :(得分:2)

您可以运行以下(以root身份)来复制文件。它适用于符号链接,设备和普通文件。

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

另一种方法是使用cpio,但我永远不会记住正确的语法。

答案 1 :(得分:2)

由于这是使用GNU fileutils的Debian,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 -; }

答案 2 :(得分:0)

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