Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows

แก้ไขปัญหา Windows และ Linux แสดงเวลาต่างกันเมื่อ Dual Boot

แก้ไขปัญหา Windows และ Linux แสดงเวลาต่างกันเมื่อ Dual Boot

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

ทำไมจึงเกิดขึ้น?

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

ทั้งสองระบบทำงานได้ดีเมื่อใช้แยกกัน ปัญหาเกิดเมื่อ Dual Boot บนเมนบอร์ดเดียวกัน เมื่อ OS บังคับให้ใช้ที่เก็บเวลาร่วมกัน นาฬิกาก็ไม่ซิงค์

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

ตัวเลือก 1: ทำให้ Linux ใช้ Local Time

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

1. เปิด Terminal รันคำสั่ง:

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

แก้ไขปัญหา Windows และ Linux แสดงเวลาต่างกันเมื่อ Dual Boot

คำสั่งนี้บอกระบบให้ตีความเวลาที่เก็บในเมนบอร์ดเป็น Local Time Linux จะไม่ปรับ offset เขตเวลาอีกต่อไป นาฬิกาก็จะซิงค์

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

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

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

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

1. ปิด "Set time automatically" ใน "Time & Language" ใน Settings เพื่อป้องกัน Windows กลับค่าที่เราจะเปลี่ยน

แก้ไขปัญหา Windows และ Linux แสดงเวลาต่างกันเมื่อ Dual Boot

2. เปิด Registry Editor พิมพ์ regedit ใน Start Menu

แก้ไขปัญหา Windows และ Linux แสดงเวลาต่างกันเมื่อ Dual Boot

3. หา Registry Key ต่อไปนี้ในแผงซ้าย วางพาธใน Address bar เพื่อไปเร็ว:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation

แก้ไขปัญหา Windows และ Linux แสดงเวลาต่างกันเมื่อ Dual Boot

4. คลิกขวาที่ Key "TimeZoneInformation" ด้านซ้าย เลือก "New -> DWORD (32-bit) Value"

แก้ไขปัญหา Windows และ Linux แสดงเวลาต่างกันเมื่อ Dual Boot

5. ตั้งชื่อ Value ใหม่ว่า "RealTimeIsUniversal"

แก้ไขปัญหา Windows และ Linux แสดงเวลาต่างกันเมื่อ Dual Boot

6. ดับเบิลคลิก Value ที่สร้าง ตั้งค่า Value data เป็น "1" คลิก OK

แก้ไขปัญหา Windows และ Linux แสดงเวลาต่างกันเมื่อ Dual Boot

สรุป

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