2017-08-16 34 views
1

vboxadd-service在我的VirtualBox的客人必須運行從以下VagrantFile代碼片段獲得IP,否則按預期vagrant hostupdater命令將不起作用:保持guest虛擬機上運行的vboxadd服務沒有與主機同步時間?

config.hostmanager.ip_resolver = proc do |vm, resolving_vm| 
     if vm.id 
     `VBoxManage guestproperty get #{vm.id} "/VirtualBox/GuestInfo/Net/2/V4/IP"`.split()[1] 
     end 
    end 

所得/etc/hosts文件時vboxadd-service關閉:

## vagrant-hostmanager-start                    

value bareOSdirector 

value webserver 

value bareOSremoteSD 

## vagrant-hostmanager-end 

,這是因爲...

如果vboxadd-service正在運行...你可以運行此命令,並得到:

VBoxManage guestproperty get "turnkey_lamp_packer_test_webserver_1502906374188_41719" "/VirtualBox/GuestInfo/Net/2/V4/IP" 
Value: 10.0.3.8 

但是,如果它沒有運行,而不是你將得到:

VBoxManage guestproperty get "turnkey_lamp_packer_test_webserver_1502906374188_41719" "/VirtualBox/GuestInfo/Net/2/V4/IP" 
No value set! 

但爲了讓我能夠輕鬆地更改時間在我的虛擬機測試事情...... vboxadd-service必須不在guest虛擬機上運行,​​否則,當我使用sudo date -s命令更改時,時間將與主機同步。

除了每次啓動和停止服務外,如何保持vboxadd-service運行而忽略時間同步?有沒有辦法保持服務運行,而不與主機同步時間?

回答

1

這似乎工作:

# On the host... 
VBoxManage setextradata "vm-name" "/VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1 

# On the guest(s)... 
sudo sed -i.bak 's/\(daemon \$binary\) \(--pidfile \$PIDFILE > \/dev\/null\)/\1 --disable-timesync \2/g' /opt/VBoxGuestAdditions-5.0.40/init/vboxadd-service && rm /opt/VBoxGuestAdditions-5.0.40/init/vboxadd-service.bak 
sudo sed -i.bak '0,/start-stop-daemon --start --exec \$1 -- \$2 \$3/{s/start-stop-daemon --start --exec \$1 -- \$2 \$3/\0 $4/}' /opt/VBoxGuestAdditions-5.0.40/init/vboxadd-service && rm /opt/VBoxGuestAdditions-5.0.40/init/vboxadd-service.bak 
sudo systemctl daemon-reload 
sudo systemctl restart vboxadd-service 
sudo rm /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service 
相關問題