vbox 安装 fedora 29 的一些小坑

使用WSL一段时间, 各方面还都不错, 日常开发很便利(省电 :D), 但最近转向docker, 尝试了docker for windows后, 觉得既然都开了hyper-v, 那何不直接开个vbox来的方便:

  • 首先关闭hyper-v, 并在bios里开启虚拟化, 不然vbox就只能虚拟32bit的系统
  • 硬盘配置, 如果你是ssd, 那么一定要勾选固态硬盘这个选项, 不然真的慢死了
  • 不知是否我的高分屏问题, 图形安装界面卡到炸, 如果你也遇到, 就进入text mode安装, 方法是在镜像的第一个启动项install fedora 29高亮下按tab, 在屏幕最下面会出现引导参数, 在最后面加 inst.text.
  • NAT(不是NAT网络)访问的问题, 这种网络不能直接从host->guest发起访问, 需要做端口映射.
  • 设置方法: 虚拟机设置 -> 网络 -> 高级 -> 端口映射, 把需要开放给host的端口映射好就可以了. 可能会觉得做端口转发比较麻烦, 但对于开发者还是建议使用这个模式, 因为它不需要主机连接外网有自己的子网. 保证host ssh到guest不会因为外网断掉而断开. 桥接模式一般情况下比较方便, 但你切换网络IP就重新分配, 断网后连不上客户机会带来很大困扰.
  • docker安装, 这个没想到, 官网还没准备好docker仓库给fedora 29, 所以安装docker官网的安装教程是不行的. dnf仓库里有1.13版本的, 可以暂时用着. 当然, rpm包的本地安装方式应该是可以的, 没有测试.
  • 普通用户无权访问/var/run/docker.sock, 所有的docker都需要使用root权限发起, 这样不太方便, 官网提示如下:
    • 建立docker用户组
    • 把当前用户加入docker组
    • 重启docker daemon
    • logout当前用户, 重新登入(刷新group权限

这样就可以使用普通用户执行docker命令.

vbox的share folder问题, 虽然界面上提供了挂载控制面板, 但直接使用是无效的, 需要安装增强工具:
  • dnf update, 主要目的是更新内核, 不然增强工具的安装脚本会找不到对应版本的kernel-headers
  • 重启选择最新安装的kernel
  • 安装 gcc make perl kernel-headers elfutils-libelf-devel,
  • 在虚拟机的"设备"菜单, 选择"安装增强工具"
  • shell里执行 mount /dev/cdrom /mnt, 记得用root
  • 执行 /mnt/VBoxLinuxAdditions.run, 如果出错, 去看它提示的日志, 如果只是说 modprobe vboxsf failed, 那么应该可以忽略, 重启后看下/media目录下是否可以看到和列出共享目录内的文件, 如果文件空, 那么还有其他问题, 依然翻日志解决.
  • 重启
  • 启动后尝试进入/media/xxx, 如果提示无权限, 可ls -al下看目录组应该是vboxfs, 直接将自己加入这个组.
  • logout , 重新登入.