在 debian (unix) 下合并分区最简单的方法?[关闭]
-
21-08-2019 - |
题
我在 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 支持才能挂载映像。
不隶属于 StackOverflow