上一篇
物理机复制命令到Ubuntu
- 物理机
- 2025-07-08
- 3
机复制命令到Ubuntu可使用scp,如
scp 源文件路径 用户名@UbuntuIP:目的路径
,需Ubuntu开启SSH服务
将物理机上的文件或数据复制到Ubuntu系统时,可以使用多种命令行工具和方法,以下是几种常用的方法及其详细步骤:
使用scp
命令(安全复制)
scp
(Secure Copy)是基于SSH协议的文件传输工具,适用于在物理机与Ubuntu之间传输文件或目录。
语法:
scp [选项] 源文件 目标路径
常用选项:
-r
:递归复制整个目录。-p
:保留文件权限、时间戳等属性。-P
:指定端口(SSH默认端口为22)。-i
:指定私钥文件(用于免密登录)。
示例:
-
从物理机复制文件到Ubuntu:
scp /path/to/local/file.txt user@ubuntu_ip:/path/to/destination/
scp C:UsersAdminDesktopfile.txt user@192.168.1.100:/home/user/
-
从物理机复制目录到Ubuntu:
scp -r /path/to/local/folder user@ubuntu_ip:/path/to/destination/
-
从Ubuntu复制文件到物理机:
scp user@ubuntu_ip:/path/to/remote/file.txt /path/to/local/destination/
注意事项:
- 确保Ubuntu上已安装
openssh-server
并启动SSH服务。 - 如果物理机是Windows,可以使用
sshpass
配合scp
实现自动输入密码:sshpass -p "password" scp -P 22 file.txt user@ubuntu_ip:/path/to/destination/
使用rsync
命令(同步工具)
rsync
是一个高效的文件同步工具,支持增量传输和断点续传,适合大文件或目录的复制。
语法:
rsync [选项] 源文件 目标路径
常用选项:
-a
:归档模式,保留文件属性、符号链接等。-v
:显示详细过程。-z
:压缩传输,适合网络传输。--delete
:删除目标目录中源目录不存在的文件。
示例:
-
同步物理机目录到Ubuntu:
rsync -avz /path/to/local/folder user@ubuntu_ip:/path/to/destination/
-
从Ubuntu同步文件到物理机:
rsync -avz user@ubuntu_ip:/path/to/remote/folder /path/to/local/destination/
优势:
- 仅传输变更部分,节省带宽。
- 支持断点续传,适合不稳定网络环境。
使用dd
命令(磁盘镜像复制)
dd
命令用于低级别数据复制,适合磁盘或分区的完整克隆。
语法:
dd if=输入文件 of=输出文件 bs=块大小 status=progress
示例:
-
将物理机磁盘克隆到Ubuntu:
sudo dd if=/dev/sda of=/path/to/image.img bs=4M status=progress
说明:
if
:输入文件(物理机磁盘设备,如/dev/sda
)。of
:输出文件(镜像文件路径)。bs
:块大小(如4M)。status=progress
:显示进度。
-
将镜像写入Ubuntu磁盘:
sudo dd if=/path/to/image.img of=/dev/sdb bs=4M status=progress
注意事项:
- 需谨慎操作,避免覆盖重要数据。
- 适用于全盘备份或迁移。
使用tar
命令(打包压缩)
tar
命令可将多个文件打包成压缩文件,适合批量传输。
语法:
tar -cvf archive.tar 文件1 文件2 tar -xvf archive.tar -C 目标目录
示例:
-
打包物理机目录:
tar -cvzf backup.tar.gz /path/to/folder
-
在Ubuntu解压:
tar -xvzf backup.tar.gz -C /path/to/destination/
虚拟机与物理机文件共享(VMware/VirtualBox)
如果Ubuntu运行在虚拟机中,可以通过以下方式实现文件共享:
-
安装
open-vm-tools
:sudo apt-get autoremove open-vm-tools sudo apt-get install open-vm-tools-desktop sudo reboot
安装后,可以直接在虚拟机和物理机之间复制粘贴文件。
-
设置共享文件夹:
- 在VMware或VirtualBox中启用“共享文件夹”功能。
- 在Ubuntu中挂载共享文件夹:
sudo mount -t vboxsf shared_folder /mnt/shared/
方法对比与选择建议
场景 | 推荐命令 | 优点 | 缺点 |
---|---|---|---|
小文件传输 | scp |
简单、安全 | 需手动输入密码 |
大目录同步 | rsync |
增量传输、高效 | 需要熟悉参数 |
磁盘克隆 | dd |
完整复制磁盘或分区 | 风险高,操作需谨慎 |
批量文件备份与传输 | tar |
打包压缩,便于存档 | 需解压后才能使用 |
虚拟机与物理机共享文件 | open-vm-tools |
支持复制粘贴,操作便捷 | 需安装工具并重启 |
常见问题与解答(FAQs)
问题1:为什么scp
命令在Windows上无法使用?
解答:scp
基于SSH协议,而Windows系统默认未安装SSH客户端,解决方法:
- 安装SSH客户端(如OpenSSH for Windows)。
- 使用工具(如WinSCP)图形化操作。
- 在Ubuntu端启用SSH服务(确保
sshd
已安装并启动)。
问题2:如何实现物理机与Ubuntu之间的免密传输?
解答:通过SSH密钥对实现免密登录:
- 在物理机生成密钥对:
ssh-keygen -t rsa
- 将公钥复制到Ubuntu:
ssh-copy-id user@ubuntu_ip
- 使用
scp
或`rsync