Câu trả lời:
Đối với máy chủ Linux, trước tiên hãy cài đặt gói DKMS (Hỗ trợ mô-đun hạt nhân động) trên máy khách ( nguồn ):
$ sudo apt-get install dkms
Sau đó cài đặt Guest Additions vào hệ thống của khách:
$ sudo apt-get install virtualbox-guest-additions
Ngoài ra, đây là mô tả của một số lệnh để điều chỉnh đồng bộ hóa thời gian VirtualBox .
apt
là một trình quản lý gói dành riêng cho các bản phân phối dựa trên Debian. Điều này sẽ không hoạt động trên các khách Linux khác.
Thiết lập sau đây cho phép khách của tôi duy trì thời gian chính xác trong vòng 1 giây từ máy chủ của tôi. Nó được thử nghiệm với máy chủ đang chạy VirtualBox 4.3.26 và khách đang chạy cùng phiên bản VirtualBox Guest Additions. Đối với VirtualBox 5.x, cho đến nay tôi chưa có nhu cầu thực hiện các thay đổi cấu hình này; thời gian đã tự động được đồng bộ hóa.
Tham khảo: https://www.virtualbox.org/manual/ch09.html#changetimesync
Trên máy chủ, liệt kê các VM để xác định tên của VM có liên quan.
$ VBoxManage list vms | awk '{print $1}'
"CentOS6"
Trên máy chủ, định cấu hình các tham số đồng bộ hóa thời gian cho khách bằng cách chạy các lệnh bên dưới. Đầu tiên thiết lập $VMNAME
với giá trị thích hợp của nó. Nếu giá trị $VMNAME
chứa một khoảng trắng, tất nhiên nó sẽ được trích dẫn.
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-interval" 10000
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-min-adjust" 100
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-set-on-restore" 1
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold" 1000
Các giá trị của các tham số thời gian ở trên đã bị giới hạn ở bội số 10. timesync-set-threshold
Thay vào đó, có thể rất khó để đặt thành 10000, nhưng điều này có thể có nguy cơ thay đổi thời gian khá quyết liệt khi được kích hoạt và do đó có thể phá vỡ các ứng dụng.
Trên máy chủ, xem các giá trị liên quan được cập nhật cho khách. Đây có thể được xác nhận lại bất cứ lúc nào.
$ VBoxManage guestproperty enumerate ${VMNAME} | grep timesync | sort
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-interval, value: 10000, timestamp: 1402110397618554000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-min-adjust, value: 100, timestamp: 1402110777505446000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-set-on-restore, value: 1, timestamp: 1402110904964050000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold, value: 1000, timestamp: 1402110660162295000, flags:
Trên máy khách, dừng và vô hiệu hóa tất cả NTP nội bộ và các dịch vụ chấm công liên quan. Chúng không nên được sử dụng vì chúng có khả năng can thiệp vào VirtualBox. Trên một khách CentOS 6:
$ sudo /sbin/chkconfig ntpd off
$ /sbin/chkconfig --list | grep ntp
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ntpdate 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Trên khách, khởi động lại dịch vụ có tên vboxadd-service
. Giả sử bổ sung khách đã được cài đặt trước đó, dịch vụ này sẽ được cài đặt và kích hoạt. Trên một khách CentOS 6:
$ /sbin/service vboxadd-service status
Checking for VBoxService ...running
$ sudo /sbin/service vboxadd-service restart
Stopping VirtualBox Guest Addition service [ OK ]
Starting VirtualBox Guest Addition service [ OK ]
$ /sbin/service vboxadd-service status
Checking for VBoxService ...running
Nếu thời gian của khách chưa được đồng bộ hóa, hãy khởi động lại khách.
vboxadd-service
dịch vụ là những gì giúp tôi làm việc và dường như không được ghi lại (ít nhất là tại liên kết bạn đưa ra).
Tôi đưa ra một giải pháp khác để đồng bộ hóa thời gian giữa khách và máy chủ mà không cần cài đặt thêm khách Virtualbox:
/etc/ntp.conf
.disable auth
broadcastclient
/etc/ntp.conf
tệp của bạn và định cấu hình dòngbroadcast 192.168.123.255
Đối với người dùng Windows, hãy kích hoạt dịch vụ Thời gian Windows của Windows. Sau đó, bạn có thể đọc trang này để định cấu hình thời gian phát sóng
virtualbox-guest-dkms
vàvirtualbox-guest-utils
.