2008-12-10 273 views
1

我有兩個我想合併的debian下的unix分區(磁盤空間問題:/)。最簡單的方法是什麼?我認爲最好將文件從一個分區打包或複製到另一個分區,刪除一個分區並調整其他分區。我將使用parted來調整大小,但我應該如何複製這些文件?有鏈接,權限和設備需要移動而不用更改。在debian(unix)下合併分區最簡單的方法是什麼?

回答

2

您可以運行以下命令(以root身份)來複制文件。它適用於符號鏈接,設備和普通文件。

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

另一種方法是使用cpio,但我從來不記得正確的語法。

+0

安德斯,謝謝你,這焦油技術是夢幻般的remerging不佳消除重複的iTunes音樂: X:〜$ USR cd'/ Users/usr/phelix/removed/Volumes/Extended/Media/iTunes /' x:iTunes usr $ tar cf - 。 | (cd/Volumes/Extended/Media/iTunes/&& tar xf - ) – 2009-04-22 15:52:15

0

您還可以使用SquashFS創建分區的鏡像並複製該分區。調整第二個分區的大小後,裝入SquashFS映像並複製必要的文件。請記住,您的內核需要SquashFS支持才能掛載映像。

2

由於這是Debian中GNU文件實用程序,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 -; } 
相關問題