1200 GBのファイルを1つ入手し、3 500 GBのハードリブを使用してバックアップ/コピーを作成する必要がある場合、Linuxを使用してこれを行う最良の方法は何ですか?
1200 GBのファイルを1つ入手し、3 500 GBのハードリブを使用してバックアップ/コピーを作成する必要がある場合、Linuxを使用してこれを行う最良の方法は何ですか?
回答:
単一の1200GB宛先ファイルシステムを必要としないソリューションを次に示します。
dd if=<1200G file> of=<dest disk 1 file> bs=1G count=400
dd if=<1200G file> of=<dest disk 2 file> bs=1G skip=400 count=400
dd if=<1200G file> of=<dest disk 3 file> bs=1G skip=800
この手法を使用すると、ディスク1を接続したり、コピーしたり、切断したり、ディスク2に接続したりすることもできます。
その後、ファイルはと再結合することができますcatまたはddそれ以降:
dd if=<disk 1 file> of=<new 1200G file> bs=1G count=400
dd if=<disk 2 file> of=<new 1200G file> bs=1G seek=400 count=400
dd if=<disk 3 file> of=<new 1200G file> bs=1G seek=800
skipは、コピーを開始するために入力ファイル内の適切な場所を見つけるために使用さseekれ、出力ファイル内の特定の場所にコピーするために使用されることに注意してください。
splitコマンドを使用してはどうですか?
Usage: split [OPTION]... [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'. With no INPUT, or when INPUT
is -, read standard input.
Mandatory arguments to long options are mandatory for short options too.
-a, --suffix-length=N use suffixes of length N (default 2)
-b, --bytes=SIZE put SIZE bytes per output file
-C, --line-bytes=SIZE put at most SIZE bytes of lines per output file
-d, --numeric-suffixes use numeric suffixes instead of alphabetic
-e, --elide-empty-files do not generate empty output files with `-n'
--filter=COMMAND write to shell COMMAND; file name is $FILE
-l, --lines=NUMBER put NUMBER lines per output file
-n, --number=CHUNKS generate CHUNKS output files. See below
-u, --unbuffered immediately copy input to output with `-n r/...'
--verbose print a diagnostic just before each
output file is opened
--help display this help and exit
--version output version information and exit
SIZE is an integer and optional unit (example: 10M is 10*1024*1024). Units
are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).
CHUNKS may be:
N split into N files based on size of input
K/N output Kth of N to stdout
l/N split into N files without splitting lines
l/K/N output Kth of N to stdout without splitting lines
r/N like `l' but use round robin distribution
r/K/N likewise but only output Kth of N to stdout
splitコマンドを使用できます。たとえば、端末の書き込みで元の大きなファイルを100 MBの小さなチャンクに分割する場合:
split –bytes=100M /big/file/ /chunks/files/prefix
プレフィックスを使用すると、次を使用して再構成が簡単になります。 cat
cat prefix* > rebuilded.file
1つのオプションは、3つの物理ドライブすべてにまたがるボリュームグループとボリュームを作成することです。これにより、〜1500Gファイルシステムが作成されます。
これについては、マニュアルページを参照してくださいvgcreate。ただし、ディストリビューションにボリュームグループ操作用のGUIツールが含まれている可能性があります。
これに使用する場合split、3つの部分を保持するために、単一のファイルシステムに1200Gの空きスペースが必要になります。ボリュームグループを使用すると、これは不要になります。ファイルをコピーするだけです。