Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows

แก้ไข Windows และ Linux แสดงเวลาที่ต่างกันเมื่อทำการบูทคู่

แก้ไข Windows และ Linux แสดงเวลาที่ต่างกันเมื่อทำการบูทคู่

หากระบบของคุณบูททั้ง Windows และ Linux คุณอาจสังเกตเห็นว่าไม่สามารถซิงค์นาฬิการะบบได้ ไม่ว่าคุณจะเปลี่ยนนาฬิกาใน OS ใด OS หนึ่งก็ไม่สามารถแก้ปัญหากับ OS อื่นได้ นี่เป็นเพราะความไม่ลงรอยกันเกี่ยวกับวิธีการรักษาเวลาระหว่างระบบปฏิบัติการที่ใช้ Windows และ Unix โชคดีที่มีวิธีแก้ไขที่ค่อนข้างง่ายสำหรับเรื่องนั้น

ทำไมสิ่งนี้ถึงเกิดขึ้น

คอมพิวเตอร์ของคุณจัดเก็บเวลาปัจจุบันเป็นนาฬิกาบนเมนบอร์ดของคุณ ซึ่งช่วยให้คอมพิวเตอร์สามารถติดตามเวลาได้แม้จะปิดอยู่ ในการพิจารณาเขตเวลา ระบบปฏิบัติการที่ต่างกันใช้วิธีการที่แตกต่างกัน Windows จะถือว่าเวลาท้องถิ่นถูกเก็บไว้ในเมนบอร์ด ดังนั้นจึงไม่ใช้การชดเชยโซนเวลาใดๆ ในทางกลับกัน Linux จะตีความเวลาบนเมนบอร์ดเป็น UTC (a.k.a. Greenwich Mean Time) และใช้การชดเชยเขตเวลาเพื่อแสดงเวลาท้องถิ่น

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

มีสองวิธีที่เราสามารถแก้ไขปัญหานี้ได้:เราสามารถเปลี่ยนวิธีที่ Linux ตีความเวลาที่เก็บไว้หรือทำเช่นเดียวกันกับ Windows

ตัวเลือกที่ 1:ทำให้ Linux ใช้เวลาท้องถิ่น

วิธีที่น่าเชื่อถือที่สุดในการทำให้ Linux และ Windows ตกลงเรื่องเวลาคือเปลี่ยนวิธีรักษาเวลาของ Linux แม้ว่าจะไม่ได้รับการสนับสนุนอย่างชัดเจน แต่ก็มีความน่าเชื่อถือมากกว่าการทำแบบเดียวกันใน Windows เล็กน้อย ใช้งานได้กับ Linux ทุกรสชาติโดยใช้ systemd ซึ่งรวมถึง Ubuntu, Fedora, Red Hat, Debian และ Mint การเปลี่ยนเวลาของ Windows มักจะใช้ได้ดีเช่นกัน แต่บางครั้งอาจนำไปสู่ความไม่เสถียรในซอฟต์แวร์ของบริษัทอื่นที่คาดว่าเวลาที่จัดเก็บไว้เป็นเวลาท้องถิ่น

1. เปิด Terminal และเรียกใช้คำสั่งต่อไปนี้:

timedatectl set-local-rtc 1 --adjust-system-clock

แก้ไข Windows และ Linux แสดงเวลาที่ต่างกันเมื่อทำการบูทคู่

การดำเนินการนี้จะบอกให้ระบบแปลเวลาที่เมนบอร์ดของคุณเก็บไว้เป็นเวลาท้องถิ่น Linux จะไม่นำการปรับโซนเวลาไปใช้กับเวลาที่จัดเก็บไว้ในเมนบอร์ดอีกต่อไป ด้วยเหตุนี้ นาฬิกาของคุณจะซิงค์

หากคุณต้องการย้อนกลับคำสั่ง ให้เปลี่ยน 1 เป็น 0:

timedatectl set-local-rtc 0 --adjust-system-clock

ตัวเลือกที่ 2:ทำให้ Windows ใช้ UTC

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

1. ปิดใช้งาน "ตั้งเวลาอัตโนมัติ" ใต้ "เวลาและภาษา" ในแอปพลิเคชันการตั้งค่า ซึ่งจะป้องกันไม่ให้ Windows คืนค่าการเปลี่ยนแปลงที่เรากำลังจะทำ

แก้ไข Windows และ Linux แสดงเวลาที่ต่างกันเมื่อทำการบูทคู่

2. เปิด Registry Editor โดยพิมพ์ regedit ในเมนูเริ่ม

แก้ไข Windows และ Linux แสดงเวลาที่ต่างกันเมื่อทำการบูทคู่

3. ค้นหาคีย์รีจิสทรีต่อไปนี้ในบานหน้าต่างด้านซ้ายของตัวแก้ไขรีจิสทรี หากต้องการไปที่นั่นอย่างรวดเร็ว ให้วางตำแหน่งลงในแถบที่อยู่ของตัวแก้ไขรีจิสทรี:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation

แก้ไข Windows และ Linux แสดงเวลาที่ต่างกันเมื่อทำการบูทคู่

4. คลิกขวาที่คีย์ "TimeZoneInformation" ในบานหน้าต่างด้านซ้ายและเลือก "ใหม่ -> ค่า DWORD (32 บิต)" จากเมนูบริบท

แก้ไข Windows และ Linux แสดงเวลาที่ต่างกันเมื่อทำการบูทคู่

5. ตั้งชื่อค่าใหม่ของคุณว่า “RealTimeIsUniversal”

แก้ไข Windows และ Linux แสดงเวลาที่ต่างกันเมื่อทำการบูทคู่

6. ดับเบิลคลิกที่ค่าที่คุณเพิ่งสร้าง ตั้งค่าเป็น “1” แล้วคลิก “ตกลง”

แก้ไข Windows และ Linux แสดงเวลาที่ต่างกันเมื่อทำการบูทคู่

บทสรุป

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