一两个月前,在网上偶尔看到hellosystem的新闻,因当时正在琢磨freebsd系统且已初步体验了ghostbsd,就产生了试试的想法,况且听说是对照macos的。先从0.4版起步的,一开始是刻光盘、写优盘安装,挑电脑,试了好几台电脑,有的电脑根本就启动不了,无论是BIOS还是EFI,由于一开始不太懂,怕搞坏别的系统就没敢再试,后来在VMware Workstation、VirtualBox上均安装成功了。看到0.5版发行后,两个虚拟机均未成功安装,后下载的0.6测试版才再次安装成功。这是我遇到的难搞的操作系统之一。在虚拟机上,遇到的难题有两个:一个是无法启动问题,另一个是虚拟驱动的问题。在搞定这两个问题的过程中,有几点收获分享。
关于无法启动的问题。 无论是在VMware Workstation上,还是在VirtualBox上,我都只能通过BIOS启动,但在VMware上通过ISO文件能以EFI方式启动,但安装freebsd后却无法启动,无需重装,将启动方式改为BIOS后正常启动。hellosystem官网表示,有网友反映在VMware上只能以bios方式启动,而在VirtualBox均可,但我却也只能以bios启动。此外,若因修改参数无法启动,则启动时进入单用户详细模式,即启动时适时按Backspace键,显示OK;分别执行unset boot_mute;boot -v -s启动,直接是root权限登录,只有读的权限,无法修改配置文件,再以读写方式挂载根文件系统,即执行 mount -uw / 即可修改配置文件,比如ee /etc/X11/xorg.conf ,还原改错的参数,再重启即可正常进入系统。
关于虚拟驱动问题。先安装并设置开机启动vmware工具,执行sudo pkg ins open-vm-tools (virtualbox下则是sudo pkg ins virtualbox-ose-additions)。sudo ee /etc/rc.conf,加入以下设置(参照freebsd)让该工具随系统启动:
#for open-vm-tools
hald_enable="YES"
dbus_enable="YES"
vmware_guest_vmblock_enable="YES"
vmware_guest_vmhgfs_enable="YES"
vmware_guest_vmmemctl_enable="YES"
vmware_guest_vmxnet_enable="YES"
vmware_guestd_enable="YES"
对此文件,还需修改initgfx_enable="NO",原为“YES”,即不让系统自动检测显卡。如果需要搞定共享文件夹的问题,还需要修改/boot/loader.conf 加入fuse_load="YES",若系统未安装fuse则安装;还需修改/etc/fstab加入代码。网上看到的,我尚未设置共享文件夹,反正安装open-vm-tools后可以跨系统复制文件,有无共享文件夹无所谓。
再就是修改xorg.conf文件。先自动生成,重启动进入单用户详细模式,先后执行Xorg -configure;cp /root/xorg.conf.new /usr/local/etc/X11/xorg.conf.d/xorg.conf;reboot,不过在重启前最好检查一下xorg.conf文件中鼠标驱动是否为vmmouse,显卡驱动是否为vmware。重启后进入系统看分辨率、跨系统复制等功能是否正常。如果鼠标无法跨系统操作,在 Section "ServerLayout" 小节最下面加入以下代码:
Option "AutoAddDevices" "Off"
到此时存在的主要问题是,通过菜单中的Screen Settings可以调为4K,但重启后又恢复成默认的1024*768,无法保存设置,不知是否因权限不足。后查资料发现是vmware-user未启动,只需执行vmtoolsd -n vmusr,点了一下vmware工具栏中的“自由拉伸”按钮,分辨率马上就更改为4K。为了让该命令自动执行,也是大费周章,毕竟还没入freebsd的门。查资料,freebsd开机启动程序可用两种方式,一种是自编可执行shell放在/etc/rd.d/下,一种是将代码放在/etc/rc.local文件中,而在hellosystem中这两种方法都试了不行,毕竟这个系统与freebsd还是有所不同的。后来发现是放在/Applications/Autostart/下的。sudo ee /Applications/Autostart/start-vmusr.sh,代码如下:
#!/bin/sh
/usr/local/bin/vmtoolsd -n vmusr
再sudo chmod a+x /Applications/Autostart/start-vmusr.sh,重启。一开始还是要点“自由拉伸”分辨率才作调整,但今天发现启动时已经是最高分辨率了。这个系统暂时是英文的,官方已在做多语言的翻译,中文包也有了,不过我还不知道怎么弄。
参照以上思路,在VirtualBox中还是没有搞定。继续研究中。
附:VMware Tools 用户指南 VMware Tools 文档
vmware tools或open-vm-tools中几个主要程序的功能
vmtoolsd 负责汇报虚拟机状态的服务。
vmware-checkvm 用于检测虚拟机中是否在运行着某程序的工具。
vmware-toolbox-cmd 用于收集宿主系统信息的工具。
vmware-user 用户宿主系统和客户系统间剪贴板的数据共享。
vmware-vmblock-fuse 文件系统。基于 FUSE (Filesystem in Userspace) 实现了宿主 / 客机之间拖拽文件。
vmware-xferlogs 向虚拟机的日志文件输出日志与调试信息。
vmhgfs-fuse 挂载 HGFS 共享目录的工具。
内核模块:
vmhgfs 旧有的 HGFS 驱动。传统的宿主机-客机间共享目录的方案。
vmxnet 旧有的 VMXNET 网卡驱动。