Tôi đang cố gắng tự đặt thời gian của máy tính trong VirtualBox nhưng nó luôn tự đặt lại chính nó trước khi tôi thay đổi. Làm thế nào tôi có thể vô hiệu hóa ntp và cho hệ thống biết tôi muốn nó vào lúc nào?
Tôi đang cố gắng tự đặt thời gian của máy tính trong VirtualBox nhưng nó luôn tự đặt lại chính nó trước khi tôi thay đổi. Làm thế nào tôi có thể vô hiệu hóa ntp và cho hệ thống biết tôi muốn nó vào lúc nào?
Câu trả lời:
Tôi đã tìm thấy một giải pháp. Đọc tài liệu sau: link
Về cơ bản nếu bạn có máy chủ Windows và máy khách Ubuntu, hãy làm như sau:
Ubuntu 12.04 32bit
C:\Program Files\Oracle
thư mục và nhấp VirtualBox
để chọn, sau đó giữ phím shift trái, nhấp chuột phải và chọn menu "Mở cửa sổ lệnh tại đây", trình thông dịch phải chạy ngay bây giờDán lệnh sau (thay đổi tên VM thành tên của bạn!):
VBoxManage setextradata "Ubuntu 12.04 32bit"
"VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
Cuối cùng, bắt đầu khách Ubuntu của bạn và đặt thời gian và ngày theo cách thủ công.
vboxadd-service
cần một cuộc tranh cãi thêm về vị khách, chủ yếu là--disable-timesync
Như đã đề cập trong một câu trả lời khác, nếu bạn đang chạy Ubuntu với tư cách là Khách trong VirtualBox thì bạn nên lưu ý rằng thời gian hệ thống sẽ tự động được đồng bộ hóa bởi các Bổ sung của Khách (nghĩa là không thông qua tùy chọn trong cài đặt bo mạch chủ).
Giải pháp của bạn trong trường hợp đó là vô hiệu hóa Bổ sung khách, có thể đạt được bằng cách thực hiện
sudo service vboxadd-service stop
hoặc là
sudo /etc/init.d/vboxadd-service stop
Sau đó, bạn có thể đặt thời gian như mong muốn (từ dòng lệnh bằng cách sử dụng date --set
hoặc sử dụng applet cài đặt hệ thống)
Dịch vụ VirtualBox sẽ được khởi động lại vào lần khởi động lại tiếp theo hoặc bạn có thể thực hiện thủ công.
sudo service virtualbox-guest-utils stop
. Tôi đoán gói đã được đổi tên?
Chà, nếu bạn muốn đặt ngày tùy ý, trước tiên bạn nên tắt hoặc hủy cài đặt ntp.
sudo update-rc.d -f ntp remove
Sau đó, bạn có thể sử dụng date
-command để đặt thời gian hệ thống của mình:
date -s "17 April 2011 12:34:56"
date --set="17 April 2011 12:34:56"
Cả hai lệnh đều tương đương. Để chỉ đặt thời gian bạn có thể sử dụng:
date +%T -s "12:34:56"
Các date
-manpage có một số điều khiển định dạng hơn. Bạn có thể sử dụng tất cả để thay đổi ngày
Nhấp vào phần thời gian và ngày của bảng điều khiển, sau đó Lịch sẽ xuất hiện và bên dưới Cài đặt Thời gian & Ngày ở đó để nhấp vào đó.
Nhấp vào biểu tượng Khóa móc và nhập mật khẩu của bạn, sau đó chọn Đặt Thời gian theo cách thủ công.
Trong Trung tâm phần mềm, hãy tra cứu ntpdate và xóa nó hoặc trong terminal: sudo apt-get remove ntpdate
(Bạn có thể phải khởi động lại để tắt hoàn toàn ntp)
Sau đó thiết lập ngày của bạn.
Dựa trên ví dụ ".ps1" (tập lệnh Windows PowerShell) được đưa ra trong
Tôi đã viết một tập lệnh ".bat" thông thường để thay đổi thời gian đồng hồ khởi động máy ảo của VirtualBox.
Thời gian bắt đầu mong muốn được đặt ở biến "TEMPO_START_TIMESTAMP" ở định dạng epoch. Bạn có thể có được thời gian bắt đầu epoh mong muốn tương đương tại " http://www.timestampconvert.com/ ".
Tên của máy ảo VirtualBox sẽ được khởi động là cần thiết trong biến "NOME" (cùng một kiểu chữ được sử dụng trong tập lệnh ".ps1" ở trên).
echo off
echo %time%
set NOME="Windows_7_x64"
set TEMPO_CS_2_MS=0
set TEMPO_S_2_MS=000
rem # Starts the VM always on the date 07/11/2014 - 11h58
rem http://www.timestampconvert.com/
set TEMPO_START_TIMESTAMP=1415361480
for /f "delims=" %%x in ('cscript /nologo toEpoch.vbs') do set epoch=%%x
rem %epoch%
set TEMPO_CURRENT_TIMESTAMP=%epoch%
rem set TEMPO_CURRENT_TIMESTAMP=1544518714
set /A TEMPO_TEMP=(%TEMPO_START_TIMESTAMP%-%TEMPO_CURRENT_TIMESTAMP%)
call set TEMPO=%TEMPO_TEMP%%TEMPO_S_2_MS%
rem %TEMPO_TEMP%
rem %TEMPO%
c:\Progra~1\Oracle\VirtualBox\VBoxManage setextradata %NOME% "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
c:\Progra~1\Oracle\VirtualBox\VBoxManage modifyvm %NOME% --biossystemtimeoffset %TEMPO%
c:\Progra~1\Oracle\VirtualBox\VBoxManage startvm %NOME%
Bạn cũng sẽ cần thời gian hiện tại ở định dạng epoh, vì điều này sử dụng tập lệnh sau (lưu dưới dạng "toEpoch.vbs", tập lệnh cơ bản trực quan này được gọi từ tập lệnh ".bat" ở trên):
WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now())
Để chạy máy ảo, chỉ cần thực hiện tệp tập lệnh ".bat" ở trên. Không cần mở giao diện "Quản trị Oracle VM VirtualBox".
Tôi hi vọng cái này giúp được.
Trân trọng