วิธีซิงค์เวลาใน linux ให้ทำงานอย่างถูกต้องในฐานะแขกเสมือนหลังจากที่โฮสต์ดำเนินการต่อจากโหมดไฮเบอร์เนต


19

ฉันใช้กล่องเสมือนหลายกล่องสำหรับการพัฒนาและเวลาและวันที่ที่ถูกต้องเป็นสิ่งสำคัญสำหรับฉันเมื่อฉันส่งคอมมิท ฉันไม่ได้ปิดโฮสต์ของฉัน - มันทำงานเป็นเวลาหลายเดือนโดยไม่ต้องเริ่มต้นใหม่ ฉันจำศีลเฉพาะตอนกลางคืนและวันหยุดสุดสัปดาห์ สิ่งนี้นำเสนอปัญหาแปลก ๆ ให้กับระบบปฏิบัติการแขกของฉัน (debians ทั้งหมดจาก turnkeylinux.org) - หลังจากผ่านไประยะเวลาหนึ่งวันที่ระบบปฏิบัติการของแขกจะถูกปิดโดยไม่กี่วัน

แม้ว่าแขกทุกคนจะใช้ NTP แต่ก็ไม่ได้ผลหากตรวจพบว่าวันที่นั้นถูกปิดโดยค่าขนาดใหญ่บางอย่าง (ไม่กี่ชั่วโมงดูเหมือนว่าจะเพียงพอ) มีวิธีใดที่จะบังคับให้ซิงค์ NTP แม้จะมีความแตกต่างของเวลามากหรือไม่? หรือโซลูชันอื่นใดที่จะคืนค่าวันที่และเวลาที่ถูกต้องบนกล่องเกสต์หลังจากโฮสต์ดำเนินการต่อจากการไฮเบอร์เนต


1
ดูคำตอบนี้สำหรับรายละเอียดโดยทั่วไปข้อมูลเพิ่มเติมของผู้เข้าพักจะให้การซิงค์กับนาฬิกาโดยตรงโดยไม่จำเป็นต้องใช้ NTP: superuser.com/questions/463106/…
Pierz

คำตอบ:


17

โดยย่อ: ติดตั้ง (แพ็คเกจ ntp และ) VirtualBox Guest Additions :)

  • โฮสต์: Windows 6.1 SP1, x64, 3GB
  • VirtualBox: v4.3.6
  • บุคคลทั่วไป: Debian 7.3, 32-bits, 768 KB

จาก VirtualBox ให้แนบไฟล์Oracle\VirtualBox\VBoxGuestAdditions.isoเข้ากับระบบของผู้เยี่ยมชม (การตั้งค่า / การจัดเก็บ) และเป็นรูท

cd /media/cdrom0
sh ./VBoxLinuxAdditions.run

วิธีใช้ VirtualBox ที่ "9.4 การกำหนดค่าขั้นสูงสำหรับผู้เข้าร่วม Linux และ Solaris" อธิบายขั้นตอน แต่ฉันต้องติดตั้งแพคเกจlinux-headers-3.2.0-4-486ก่อน
จากนั้นในฐานะที่เป็นราก

/usr/lib/VBoxGuestAdditions/vboxadd setup
/usr/lib/VBoxGuestAdditions/vboxadd-service setup
/usr/lib/VBoxGuestAdditions/vboxadd setup

หลังจากนั้นให้รีบูตเกสต์

ฉันได้ตรวจสอบโดยการออกจากระบบของแขก ( Alt+ F4จากนั้นสั่งให้ VirtualBox บันทึกสถานะของแขก) รอ 5 นาทีจากนั้นเริ่มระบบแขกใหม่
ในตอนแรกนาฬิกาถูกเรียกคืนจากค่าก่อนหน้านี้ แต่หลังจากไม่กี่วินาที ทุกอย่างเรียบร้อย (ซิงค์นาฬิกา)


ตามจริงแล้วนั่นคือสิ่งที่ฉันทำลงไป :) ไม่ได้มีเวลาในการโพสต์คำตอบดังนั้นเครดิตจะไปหาคุณ
SiliconMind

ไม่จำเป็นต้องมี NTP สำหรับการซิงค์นาฬิกาเพิ่มเติมของแขก - ดำเนินการโดย daemon เพิ่มเติมของแขก (VBoxService)
Pierz

2
ทำไมคุณถึงแนะนำให้ทำซ้ำคำสั่งแรกสองครั้ง? มันจำเป็นจริงๆเหรอ?
RDP

@RDP <quote> จำเป็นต้องทำซ้ำคำสั่งแรกสองครั้งจริงหรือไม่ </quote> ฉันจำไม่ได้และเอกสารมีการเปลี่ยนแปลงโปรดดู [ virtualbox.org/manual/ch09.html#idm7495]
Pierre

คุณต้องติดตั้ง gcc และทำเช่นกัน ไม่ให้พวกเขาปรากฏเป็นข้อผิดพลาดในการเริ่มบริการ vboxadd แต่คุณไม่ได้รับคำแนะนำที่เป็นประโยชน์ในการติดตั้งแพ็คเกจเหล่านั้นเว้นแต่ว่าคุณจะเรียกใช้ vboxadd อย่างชัดเจน - VBoxLinuxAdditions.run จะไม่เปิดเผย
แฮร์รี่ไจ่

1

เซิร์ฟเวอร์ NTP ไม่ได้ถูกออกแบบมาให้ทำงานภายในเครื่องเสมือน ต้องใช้นาฬิการะบบความละเอียดสูงพร้อมเวลาตอบสนองต่อการขัดจังหวะนาฬิกาที่ให้บริการด้วยความแม่นยำระดับสูง ไคลเอนต์ NTP ก็สามารถทำงานในโซลูชันการจำลองเสมือนบางอย่างได้ เรียกใช้ NTP บนระบบปฏิบัติการพื้นฐานของเครื่องจากนั้นให้แขกระบบปฏิบัติการต่าง ๆ ของคุณใช้ประโยชน์จากนาฬิกาที่ดีที่สร้างขึ้นในระบบ แม้อาจไม่เพียงพอเนื่องจากอาจมีเครื่องมือเพิ่มเติมหรือตัวเลือกเคอร์เนลที่คุณต้องเปิดใช้งานเพื่อให้ไคลเอ็นต์เครื่องเสมือนสามารถซิงโครไนซ์นาฬิกาเสมือนของตนกับนาฬิการะบบร่างกายได้อย่างเพียงพอ

ที่มา: รองรับปัญหา NTP ที่ทราบ

จากคำแถลงนั้นและอ่านว่าส่วนที่สำคัญของคุณคือคอมไพล์เวลาคอมไพล์แล้วมันจะเป็นเรื่องไม่สำคัญที่จะเขียนฮุกก่อนการคอมไพล์เพื่อรวบรวมเวลาจากเครื่องโฮสต์ของคุณและคุณสามารถทำได้โดยขอเครื่องโฮสต์

ssh hostmachine "date +%Y%m%d%H%M%s"


ขอบคุณ แต่นั่นไม่ใช่คำตอบ :) ฉันใช้ VirtualBox และไม่มีตัวเลือกสำหรับการซิงค์เวลา ดังนั้นถ้าไม่ใช่ NTP แล้วอะไรล่ะ
SiliconMind

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