1

マージしたいdebianの下に2つのUNIXパーティションがあります(ディスクスペースの問題:/)。それを行う最も簡単な方法は何でしょうか?あるパーティションから別のパーティションにファイルをtarまたはコピーし、一方を削除して、もう一方のサイズを変更するのが最善だと思います。partedを使用してサイズを変更しますが、ファイルをコピーするにはどうすればよいですか?変更せずに移動する必要があるリンク、権限、およびデバイスがあります。

4

3 に答える 3

2

以下を (ルートとして) 実行して、ファイルをコピーできます。シンボリックリンク、デバイス、および通常のファイルで機能します。

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

もう 1 つの方法は cpio を使用することですが、正しい構文を覚えていません。

于 2008-12-10T10:11:07.053 に答える
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 -; }
于 2009-01-13T21:09:04.783 に答える
0

SquashFS を使用してパーティションのミラーを作成し、それをコピーすることもできます。2 番目のパーティションのサイズを変更したら、SquashFS イメージをマウントし、必要なファイルをコピーします。イメージをマウントするには、カーネルで SquashFS のサポートが必要になることに注意してください。

于 2008-12-10T10:17:13.467 に答える