我想将一个磁盘上的所有内容复制到另一个硬盘上。我认为该cp
命令可能会起作用。
cp -aR /dev/nvme0n1p1/* /dev/sda1/
Run Code Online (Sandbox Code Playgroud)
/dev/nvme01np1
是我想要复制其内容的旧磁盘,/dev/sda1
是新磁盘。但是我收到一个错误,说这/dev/nvme01np1
不是一个目录。
小智 13
这取决于您\xe2\x80\x99 想要做什么。
\n使用dd
对于克隆磁盘很有好处。这在块级别、低级别上运行。
如果您要进行备份,rsync
就足够了。它在文件系统级别运行,高于块设备级别。
如果磁盘已经挂载(例如,有其他目录不在/dev 目录中),rsync
建议使用该命令。如果您有千兆字节要传输,rsync 会很方便,因为如果进程中断,它可以在之前的位置重新启动。
如果\xe2\x80\x99s有数十万个文件,则文件列表可能太长而出错。我\xe2\x80\x99 通过将 rsync 作业一次批处理到子目录中克服了这个问题。
\nrsync -av --progress /path/of/source /path/of/target\n
Run Code Online (Sandbox Code Playgroud)\nRsync 可以通过 ssh 和 ssh 密钥在网络或 Web 上安全地使用,并使用系统 cron 进行调度。这是一个方便的了解工具。
\nrsync -e "ssh -i $HOME/.ssh/id_rsa" -avz --progress /path/of/source user@host:/path/of/target\n
Run Code Online (Sandbox Code Playgroud)\n更多信息
\n将文件从当前正在运行的系统复制到另一个磁盘是有问题的。您最好使用实时系统。但是,cp
您无法从 复制设备/dev
,只能在设备的挂载点之间进行复制。
如果要克隆分区或硬盘驱动器,最好使用dd
复制块而不是文件。
确保第二个硬盘驱动器的大小至少与第一个硬盘驱动器的大小相同。
启动实时系统
复制硬盘,例如:
dd if=/dev/nvme0n1p of=/dev/sda bs=32M
Run Code Online (Sandbox Code Playgroud)
或使用cat
(通过):
cat /dev/nvme0n1p >/dev/sda
Run Code Online (Sandbox Code Playgroud)读: