ฉันจะตั้งเวลาระบบด้วยตนเองใน VirtualBox ได้อย่างไร


30

ฉันพยายามกำหนดเวลาของคอมพิวเตอร์ด้วยตนเองใน VirtualBox แต่จะรีเซ็ตตัวเองเป็นสิ่งที่เคยเป็นก่อนที่ฉันจะเปลี่ยน ฉันจะปิดการใช้งาน ntp และบอกให้ระบบทราบว่าฉันต้องการเวลาเท่าไร


คุณให้รายละเอียดเพิ่มเติมเกี่ยวกับปัญหาของคุณได้ไหม? คุณต้องการให้มันเป็นช่วงเวลาใดและจะตั้งเวลาให้คอมพิวเตอร์ของคุณ
qbi

5
ฉันต้องการตั้งเวลาผิดปกติบนคอมพิวเตอร์ของฉัน
Jeremy Bicha

คำตอบ:


30

ฉันได้พบวิธีแก้ปัญหา อ่านเนื้อหาต่อไปนี้: ลิงค์

โดยทั่วไปถ้าคุณมีโฮสต์ Windows และแขก Ubuntu ให้ทำดังต่อไปนี้:

  1. ค้นหาชื่อของ VM ของคุณ (Virtual Machine) - เรียกใช้ VB (VirtualBox) เลือก VM ของคุณเปิดการตั้งค่าในแท็บ 'ทั่วไป' ตรวจสอบชื่อเช่นในกรณีของฉัน Ubuntu 12.04 32bit
  2. ใน Windows เริ่มตัวแปลบรรทัดคำสั่งไปที่C:\Program Files\Oracleโฟลเดอร์และคลิกVirtualBoxเพื่อเลือกจากนั้นกดแป้น Shift ซ้ายทำเมาส์คลิกขวาที่ปุ่มและเลือกเมนู "เปิดหน้าต่างคำสั่งที่นี่" ล่ามจะต้องทำงานในขณะนี้
  3. วางคำสั่งต่อไปนี้ (เปลี่ยนชื่อ VM เป็นชื่อของคุณ!):

    VBoxManage setextradata "Ubuntu 12.04 32bit" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1

  4. ในที่สุดเริ่มต้นแขก Ubuntu ของคุณและตั้งเวลาและวันที่ด้วยตนเอง


6
นี่ควรเป็นคำตอบที่ได้รับการยอมรับอย่างแน่นอน! ฉันไม่ต้องการที่จะปิดการใช้งานการเพิ่มของแขกเพราะฉันมีโฟลเดอร์ที่ใช้ร่วมกันติดตั้งอยู่ในเซิร์ฟเวอร์อูบุนตูของฉัน 14 แขก
Jon B

น่าเสียดายที่มันไม่ได้ "หยุด" เวลาในระบบของแขก ในบางสถานการณ์แม้ว่าคุณต้องการตรึงตลอดเวลาอย่างสมบูรณ์ (เช่นสำหรับการสร้างงานที่ทำซ้ำได้)
VasyaNovikov

สิ่งนี้ช่วยฉันประหยัดเวลาได้มาก
elsadek

หากโฮสต์ระบบปฏิบัติการของคุณคือ Ubuntu คำสั่งคือ: vboxmanage setextradata "your_VM_name_here" "VBoxInternal / Devices / VMMDev / 0 / Config / GetHostTimeDisabled" 1
Radu Maris

ดูคำถามนี้จะทำงานเมื่อฉันพยายามมันstackoverflow.com/a/45724822/18149vboxadd-serviceจำเป็นอาร์กิวเมนต์เพิ่มเติมเกี่ยวกับผู้เข้าพักส่วนใหญ่--disable-timesync
leeand00

23

ดังที่ได้กล่าวไว้ในคำตอบอื่นหากคุณใช้งาน Ubuntu ในฐานะแขกภายใต้ VirtualBox คุณควรทราบว่าเวลาของระบบจะถูกซิงค์โดยอัตโนมัติโดยบุคคลทั่วไปเพิ่มเติม (เช่นไม่ใช่ตัวเลือกในการตั้งค่ามาเธอร์บอร์ด)

โซลูชันของคุณในกรณีนี้คือการปิดใช้งานการเพิ่มจากผู้เยี่ยมชมซึ่งสามารถทำได้โดยการดำเนินการ

sudo service vboxadd-service stop

หรือ

sudo /etc/init.d/vboxadd-service stop

จากนั้นคุณสามารถกำหนดเวลาได้ตามต้องการ (จากบรรทัดคำสั่งโดยใช้date --setหรือใช้แอปเพล็ตการตั้งค่าระบบ)

บริการ VirtualBox จะถูกรีสตาร์ทในการรีบูตครั้งถัดไปหรือคุณสามารถทำได้ด้วยตนเอง


3
ปิดหัวข้อ แต่การปิดใช้งาน / ถอนการติดตั้งการเพิ่มของผู้เยี่ยมชมช่วยให้คุณสามารถตั้งค่านาฬิการะบบบน Windows guest OS ได้เช่นกัน
speckledcarp

3
sudo service virtualbox-guest-utils stopในรุ่นของฉันอูบุนตูเป็นคำสั่ง ฉันเดาว่าจะเปลี่ยนชื่อแพ็คเกจหรือไม่
Crashthatch

@ Crashthatch โซลูชันของคุณเป็นโซลูชันเดียวที่ใช้งานได้ ขอบคุณ
Bevor

11

วิธีเดียวคือการตั้งเวลาในเมนบอร์ด Virtualbox โดยใช้บรรทัดคำสั่ง:

VBoxManage modifyvm <name> --biossystemtimeoffset <msec>

ตัวอย่างเช่นหากต้องการย้อนกลับวันที่ 1 ปี:

VBoxManage modifyvm <name> --biossystemtimeoffset -31536000000

4

ถ้าคุณต้องการตั้งวันที่โดยพลการอันดับแรกคุณควรปิดการใช้งานหรือยกเลิกการติดตั้ง ntp

  • หากต้องการปิดใช้งานให้เปิดเทอร์มินัลแล้วเรียกใช้ sudo update-rc.d -f ntp remove
  • หากต้องการยกเลิกการติดตั้งให้ใช้ซอฟต์แวร์การจัดการซอฟต์แวร์ที่คุณชื่นชอบ

หลังจากนั้นคุณสามารถใช้dateคำสั่งเพื่อตั้งเวลาระบบของคุณ:

date -s "17 April 2011 12:34:56"
date --set="17 April 2011 12:34:56"

ทั้งสองคำสั่งนั้นเทียบเท่ากัน หากต้องการตั้งเวลาเท่านั้นที่คุณสามารถใช้:

date +%T -s "12:34:56" 

date-manpageมีการควบคุมรูปแบบบางมากขึ้น คุณสามารถใช้พวกเขาทั้งหมดเพื่อเปลี่ยนวันที่


ตกลงฉันทำไปแล้ว แต่วันที่ sudo - เก็บวันที่เพียงไม่กี่วินาทีก่อนที่จะคืนค่า โดยที่ฉันหมายถึงวันที่ทำงานอีกครั้งจะแสดงเวลาที่ฉันตั้งค่าการทำงานตามปกติ แต่ตัวบ่งชี้เวลาในแผงไม่ได้และเมื่อฉันเรียกใช้วันที่อีกครั้งเวลาได้เปลี่ยนให้ตรงกับนาฬิกาแผง ..... และพยายามที่จะ เปลี่ยนนาฬิกาตัวบ่งชี้ - วันที่และเวลาไม่ทำงานเช่นกัน ฉันคิดว่าฉันจะต้องเปิดข้อบกพร่อง
Jeremy Bicha

คุณแน่ใจหรือไม่ว่าติดตั้ง / ปิดใช้งาน ntp คุณติดตั้งซอฟต์แวร์การจัดการเวลาอัตโนมัติอื่น ๆ (เช่น chrony) หรือไม่?
qbi

มันเป็น Natty ใหม่ที่ติดตั้งใน VirtualBox และฉันได้ลบล้าง ntp ทุกอย่างและไม่ได้ติดตั้งซอฟต์แวร์การจัดการเวลาอื่น
Jeremy Bicha

2
Virtualbox„ ถ่ายโอน“ เวลาจากโฮสต์ของคุณไปยังไคลเอนต์ คุณจะต้องเปลี่ยนตัวเลือกบางอย่างที่นี่ อาจจะเป็นvirtualbox.org/manual/ch03.html#settings-motherboardเป็นประโยชน์
qbi

3

คลิกที่ส่วนเวลาและวันที่ของพาเนลจากนั้นปฏิทินจะปรากฏและอยู่ใต้การตั้งค่าเวลาและวันที่ดังนั้นคลิกที่

คลิกที่ไอคอน Padlock และป้อนรหัสผ่านของคุณจากนั้นเลือก Set The Time เป็น Manual


ฉันจะไปข้างหน้าและทำเครื่องหมายว่านี่เป็นคำตอบที่ดีที่สุดสำหรับผู้ใช้ส่วนใหญ่ ปัญหาเฉพาะของฉันคือกับ VirtualBox
Jeremy Bicha

1

ในศูนย์ซอฟต์แวร์ค้นหา ntpdate และนำออกหรือในเทอร์มินัล: sudo apt-get remove ntpdate

(คุณอาจต้องรีบูตเพื่อปิดการใช้งาน ntp อย่างสมบูรณ์)

จากนั้นตั้งค่าวันที่ของคุณ


ตกลงฉันล้าง ntpdate และรีบูต แต่ฉันยังคงไม่สามารถตั้งค่านาฬิการะบบและติดมันได้
Jeremy Bicha

0

อ้างอิงตามตัวอย่าง ".ps1" (สคริปต์ Windows PowerShell)

https://superuser.com/questions/539880/using-virtual-box-is-it-possible-to-set-your-virtual-machine-time-to-be-differen

ฉันเขียนไฟล์สคริปต์ ".bat" ปกติเพื่อเปลี่ยนเวลานาฬิกาที่เครื่องเสมือนของ VirtualBox เริ่มทำงาน

เวลาเริ่มต้นที่ต้องการถูกกำหนดไว้ที่ตัวแปร "TEMPO_START_TIMESTAMP" ในรูปแบบยุค คุณสามารถรับเวลาเริ่มต้นที่เทียบเท่ากับ epoh ได้ที่ " http://www.timestampconvert.com/ "

ชื่อของเครื่องเสมือนของ VirtualBox ที่จะเริ่มต้นนั้นเป็นสิ่งจำเป็นในตัวแปร "NOME" (nomenchature เดียวกับที่ใช้ในสคริปต์ ".ps1" ด้านบน)

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%

คุณจะต้องใช้เวลาปัจจุบันในรูปแบบ epoh เพื่อให้ใช้สคริปต์ต่อไปนี้ (บันทึกเป็น "toEpoch.vbs" สคริปต์พื้นฐานแบบภาพนี้เรียกจากสคริปต์ ".bat" ด้านบน):

WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now())

หากต้องการเรียกใช้เครื่องเสมือนเพียงเรียกใช้ไฟล์สคริปต์ ".bat" ด้านบน ไม่จำเป็นต้องเปิดอินเทอร์เฟซ "Oracle VM VirtualBox Administration"

ฉันหวังว่านี่จะช่วยได้.

ความนับถือ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.