如何将本地文件移入虚拟机Linux系统?

在虚拟化环境中,将本地文件传输到Linux虚拟机是日常开发、运维或学习中的常见需求,根据虚拟机软件类型(如VMware、VirtualBox)、文件大小及使用场景(图形界面/命令行),可选择不同的传输方法,本文将详细介绍几种主流操作方式,涵盖准备工作、具体步骤及注意事项,帮助用户高效完成文件传输。

如何把本地文件移入到虚拟机linux

使用共享文件夹(推荐,适合频繁传输)

共享文件夹是虚拟机软件提供的便捷功能,通过安装“增强工具”(VMware Tools/VirtualBox Guest Additions),可实现主机与虚拟机之间的文件夹双向映射,支持拖拽、命令行访问,适合频繁传输文件的场景。

适用场景

Windows主机与Linux虚拟机之间频繁传输文件,需支持图形化操作和命令行调用。

准备工作

  1. 虚拟机软件准备:确保虚拟机已安装对应增强工具(VMware需安装VMware Tools,VirtualBox需安装Guest Additions)。
  2. Linux系统准备:虚拟机需正常运行图形界面(如GNOME、KDE),且用户具有sudo权限。

操作步骤(以VMware为例)

  1. 启用共享文件夹功能

    在VMware Workstation中,选中虚拟机→右键“设置”→“选项”→“共享文件夹”→勾选“总是启用”→点击“添加”,选择主机需共享的本地文件夹,设置名称(如“host_share”)和权限(“只读”或“完全控制”)。

  2. 安装VMware Tools

    • 虚拟机开机后,在VMware菜单栏点击“虚拟机”→“安装VMware Tools”(若已安装可跳过)。
    • 在Linux虚拟机内会自动挂载VMware Tools安装包(通常为VMwareTools-x.x.x-xxxx.tar.gz),复制到临时目录并解压:
      cp /media/$(whoami)/VMware Tools/*.tar.gz /tmp/  
      cd /tmp  
      tar -zxvf VMwareTools-*.tar.gz  
    • 进入解压目录,运行安装脚本(默认路径为vmware-install.pl):
      cd vmware-tools-distrib  
      sudo ./vmware-install.pl -d  # -d参数使用默认配置,一路回车即可  
    • 安装完成后重启虚拟机:sudo reboot。
  3. 访问共享文件夹

    • 重启后,共享文件夹会自动挂载到/mnt/hgfs目录(VMware默认路径),可通过cd /mnt/hgfs进入,查看或操作主机共享的文件。
    • 若需自定义挂载路径,可在/etc/fstab中添加条目(如hgfs /mnt/host hgfs defaults 0 0)。

VirtualBox操作差异

  • 安装Guest Additions:虚拟机运行后,点击“设备”→“安装增强功能”,Linux内会自动挂载光盘,执行:
    sudo mount /dev/cdrom /mnt  
    cd /mnt  
    sudo ./VBoxLinuxAdditions.run  
  • 访问共享文件夹:默认挂载路径为/media/sf_共享文件夹名(如/media/sf_host_share)。

注意事项

  • 增强工具版本需与虚拟机软件版本匹配(如VMware Workstation 16需安装16.x版本的Tools)。
  • 共享文件夹权限不足时,可通过sudo chown -R $USER:$USER /mnt/hgfs修改所有者。

拖拽/复制粘贴(适合小文件快速传输)

若虚拟机已安装增强工具且运行图形界面,可直接通过拖拽或复制粘贴传输小文件,操作简单直观。

如何把本地文件移入到虚拟机linux

适用场景

传输小型文件(如文档、图片、配置文件),无需复杂配置。

操作步骤

  1. 确保虚拟机处于活动窗口:拖拽或复制粘贴需虚拟机窗口为当前焦点。
  2. 直接拖拽:主机选中文件→按住鼠标左键拖至虚拟机桌面或指定文件夹,松开即可完成传输。
  3. 复制粘贴:主机选中文件→Ctrl+C复制→虚拟机目标窗口→Ctrl+V粘贴。

注意事项

  • 部分虚拟机软件(如旧版VMware)可能不支持拖拽特定格式文件(如二进制可执行文件),建议优先使用共享文件夹。
  • 大文件(如超过500MB)拖拽可能因缓存不足导致失败,建议改用命令行或共享文件夹。

命令行传输(SCP/FTP,适合无图形界面或大文件)

若虚拟机无图形界面或需远程传输文件,可通过SSH的SCP协议或FTP服务实现高效传输。

适用场景

Linux虚拟机无图形界面、大文件传输、跨网络远程传输。

准备工作

  1. 虚拟机网络配置:确保虚拟机与主机处于同一局域网(如NAT模式或桥接模式),获取虚拟机IP地址(通过ip a或ifconfig查看)。
  2. 开启SSH服务:虚拟机需安装并运行SSH服务(默认安装,若未安装可执行sudo apt install openssh-server并启动sudo systemctl start ssh)。

操作步骤(SCP为例)

SCP(Secure Copy)基于SSH协议,支持加密传输,适合命令行操作。

  • 从主机传输到虚拟机:
    scp 本地文件路径 用户名@虚拟机IP:虚拟机目标路径  
    # 示例:将主机C:test.txt传输到虚拟机/home/user/目录(用户名为user,虚拟机IP为192.168.1.100)  
    scp "C:test.txt" user@192.168.1.100:/home/user/  
  • 从虚拟机传输到主机(反向操作):
    scp 用户名@虚拟机IP:虚拟机文件路径 本地目标路径  
    # 示例:将虚拟机/home/user/test.txt传输到主机D:文件夹  
    scp user@192.168.1.100:/home/user/test.txt "D:文件夹"  

传输目录(需加-r参数)

scp -r 本地目录路径 user@虚拟机IP:虚拟机目标路径  
# 示例:传输主机D:project目录到虚拟机/home/user/  
scp -r "D:project" user@192.168.1.100:/home/user/  

注意事项

  • 虚拟机IP需固定(可通过DHCP保留或配置静态IP),避免重启后IP变化导致传输失败。
  • 防火墙需开放SSH端口(默认22),虚拟机内执行sudo ufw allow 22(若使用ufw防火墙)。

网络共享(Samba,适合局域网多设备共享)

若需在局域网内多设备(如Windows、Mac、Linux)间与虚拟机共享文件,可配置Samba服务,实现类似Windows网络邻居的访问方式。

适用场景

局域网内多设备与虚拟机共享文件,需跨平台访问。

准备工作

  • 虚拟机安装Samba服务:sudo apt install samba。
  • 确定需共享的目录(如/home/share),并设置权限:sudo chmod 777 /home/share(生产环境建议限制权限)。

操作步骤

  1. 配置Samba

    如何把本地文件移入到虚拟机linux

    • 编辑Samba配置文件:sudo nano /etc/samba/smb.conf。
    • 在文件末尾添加以下内容:
      [share]  
      comment = Shared Folder  
      path = /home/share  
      browseable = yes  
      guest ok = yes  
      writable = yes  
    • 保存退出(Ctrl+O→Enter→Ctrl+X),重启Samba服务:sudo systemctl restart smbd。
  2. 主机访问共享文件夹

    • Windows主机:在文件管理器地址栏输入\虚拟机IPshare(如\192.168.1.100share),即可访问虚拟机共享目录。
    • Linux主机:安装Samba客户端后,通过smbclient //虚拟机IP/share -U guest访问,或直接在文件管理器输入smb://虚拟机IP/share。

注意事项

  • 共享目录权限需同时满足Linux系统权限(chmod)和Samba配置权限(writable = yes)。
  • 局域网内所有设备需与虚拟机在同一网段,否则无法访问。

根据实际场景选择传输方法:

  • 频繁传输/图形化操作:优先使用共享文件夹(需安装增强工具)。
  • 小文件快速传输:拖拽或复制粘贴(需虚拟机运行图形界面)。
  • 无图形界面/远程传输:SCP命令(需开启SSH服务)。
  • 局域网多设备共享:Samba服务(需配置共享目录和权限)。

相关问答FAQs

问题1:共享文件夹提示“权限拒绝”,如何解决?
解答:首先检查虚拟机设置中共享文件夹权限是否为“完全控制”;若权限正常,在Linux内执行以下命令修改文件夹所有者:

# VMware默认路径
sudo chown -R $USER:$USER /mnt/hgfs  
# VirtualBox默认路径  
sudo chown -R $USER:$USER /media/sf_共享文件夹名  

若仍无效,可能是增强工具安装不完整,建议重新安装增强工具后重启虚拟机。

问题2:拖拽文件到虚拟机时文件丢失或失败,如何处理?
解答:首先确认虚拟机已安装增强工具(VMware Tools/Guest Additions),若未安装需先安装;若已安装,尝试关闭虚拟机后重新启动;检查文件大小是否超过虚拟机拖拽限制(通常2GB以下);若为Linux主机,可能需安装gvfs-fuse支持(sudo apt install gvfs-fuse);若仍失败,改用SCP或共享文件夹方法传输,避免拖拽导致的缓存问题。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/19225.html

赞 (0)
酷番叔酷番叔
上一篇 2025年8月29日 00:40
下一篇 2025年8月29日 00:53

相关推荐

  • Linux下如何释放已分配的IP地址?

    在Linux系统中,IP地址的释放通常涉及动态获取的IP(如通过DHCP自动分配)和静态手动配置的IP两种场景,动态IP的释放主要是为了终止DHCP租约、释放当前占用的IP资源,而静态IP的释放则是清除手动配置的IP地址,以便切换网络模式或解决IP冲突等问题,以下是不同场景下的详细操作方法及注意事项,动态IP地……

    2025年10月5日
    19600
  • Linux如何升级Java版本?

    在Linux系统中升级Java版本是常见的需求,可能由于新项目需要更高版本的Java支持、旧版本存在安全漏洞,或是为了利用新版本的性能优化和语言特性,本文将详细介绍在Linux系统上升级Java版本的完整步骤,包括当前版本检查、新版本下载、旧版本卸载、新版本安装、环境变量配置及验证等环节,覆盖不同Linux发行……

    2025年9月10日
    23900
  • Linux如何编译运行C程序?步骤方法详解

    在Linux操作系统中,编译和运行C程序是开发过程中的基础操作,主要通过GNU Compiler Collection(GCC)完成,本文将详细介绍从环境准备到程序编译、运行、调试的全流程,帮助用户掌握Linux下C程序的开发方法,环境准备:安装编译工具Linux系统通常默认未安装GCC编译器,需先手动安装,不……

    2025年9月23日
    21200
  • Windows PE是什么?U盘启动必备!

    在Linux环境下进入Windows PE(预安装环境)通常指从Linux系统重启计算机并引导至PE介质(如U盘或光盘),由于PE是Windows组件,无法直接在Linux系统中运行,需通过外部介质启动,以下是详细操作指南:Linux的作用:仅用于制作PE启动盘或配置引导,后续需重启脱离Linux系统,关键步骤……

    2025年7月15日
    27500
  • linux如何编译python

    Linux上编译Python,首先确保已安装必要的依赖库,然后下载Python源码,解压后进入目录运行`.

    2025年8月15日
    17500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信