如果我有一个 1200 GB 的文件并且需要使用 3 个 500 GB 硬盘创建备份/复制它,那么使用 Linux 执行此操作的最佳方法是什么?
答案1
这是一个不需要单个 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
用于复制到输出文件中的特定位置。
答案2
如何使用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
答案3
您可以使用split
命令。例如,如果您想将原始大文件分成 100 MB 的小块,请在终端中写入:
split –bytes=100M /big/file/ /chunks/files/prefix
使用前缀使得重建更容易cat
cat prefix* > rebuilded.file
答案4
一个选项是创建一个卷组和一个横跨所有三个物理驱动器的卷。这将产生一个 ~1500G 的文件系统。
vgcreate
尽管您的发行版可能包含用于卷组操作的 GUI 工具,但请参见手册页以了解详细信息。
如果要使用split
这个,您需要在单个文件系统上留出 1200G 的空闲空间来容纳这三个部分。使用卷组可以省去这个麻烦。您只需复制文件即可。