阅读 93

040-解决Linux使用virtualbox共享文件夹问题

这是坚持技术写作计划(含翻译)的第40篇,定个小目标999,每周最少2篇。

本文主要介绍,在使用virtualbox时,如何共享文件夹

  • rsync 是单向(宿主机修改了,定时同步到虚拟机里,但是虚拟机修改的不会对宿主造成影响)
  • nfs 官方文档说 Windows users: NFS folders do not work on Windows hosts. Vagrant will ignore your request for NFS synced folders on Windows. 而且需要下载插件,新手十有八九会被坑
  • smb 兼容性比较好,支持mac,linux,windows访问(虚拟机),宿主机只限mac和win,但是win需要管理员权限,mac下操作挺复杂,还得进行配置,防止自动超时
  • VirtualBox 综合来看,virtualbox不错,当然,如果文件量太多的话,也有性能问题,意思是别想着用来构建前端项目(一个 node_modules 搞死你啊),可以结合rsync使用,rsync可以设置排除目录,然后定时同步到虚拟机,需要双向的,再把文件复制到挂载为virtualbox的目录下,宿主机就可以访问了。

python+vagrant+virtualbox系列文章

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box_check_update = false
  config.vm.box = "centos/7"
  config.vm.hostname = "ansible"
  config.vm.network "private_network", ip: "172.17.8.102"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "4096"
    vb.cpus = 2
    vb.name = config.vm.hostname
  end
  ## 单向同步
  config.vm.synced_folder ".", "/vagrant", type: "rsync",
    rsync__verbose: true,
    rsync__auto: true,
    rsync__exclude: ['.git*', 'node_modules*','*.log','*.box','Vagrantfile']
    config.trigger.after :up do |t|
      t.info = "rsync auto"
      t.run = {inline: "vagrant rsync-auto"}
    end
  
  config.vm.provision "shell", inline: <<-SHELL
## 配置xshell等可以使用密码登录
sed -e "s/#PasswordAuthentication yes/PasswordAuthentication yes/g" -e "s/PasswordAuthentication no/PasswordAuthentication yes/g" -i  /etc/ssh/sshd_config
service sshd restart

## 设置yum的清华源(阿里云源不稳定)
sudo sed -e "/mirrorlist/d" -e "s/#baseurl/baseurl/g" -e "s/mirror\.centos\.org/mirrors\.tuna\.tsinghua\.edu\.cn/g" -i /etc/yum.repos.d/CentOS-Base.repo
sudo yum makecache
sudo yum install -y epel-release

## 安装virtualbox需要kernel-headers
yum install -y gcc make kernel-headers-$(uname -r) kernel-devel-$( uname -r)

## 可以使用rsync同步目录,不用每次都联网下载
curl -O http://download.virtualbox.org/virtualbox/6.0.10/VBoxGuestAdditions_6.0.10.iso
sudo mkdir /media/VBoxGuestAdditions
sudo mount -o loop,ro VBoxGuestAdditions_6.0.10.iso /media/VBoxGuestAdditions
sudo sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run
rm VBoxGuestAdditions_6.0.10.iso
sudo umount /media/VBoxGuestAdditions
sudo rmdir /media/VBoxGuestAdditions
  SHELL
end
复制代码

image.png

控制台输出如下所示,即为挂载成功。
image.png

招聘小广告

山东济南的小伙伴欢迎投简历啊 加入我们 , 一起搞事情。
长期招聘,Java程序员,大数据工程师,运维工程师,前端工程师。

参考资料

关注下面的标签,发现更多相似文章
评论