65366


VirtualBox に ubuntu18を入れて使ってるんですが時計がずれます

調べると ntp systemd-timesyncd timedatectl の３つぐらい方法が出てくるんですがどの方法がいいんでしょうか

ntp は入ってすらないようです

[code]

    systemctl status ntp
    Unit ntp.service could not be found.
    
[/code]

systemd-timesyncd ははいってるようなんですが有効になりません  
/usr/sbin/VBoxService was not met  
ってでてるので vitrtualbox 上のゲストだと使えないんでしょうか

[code]

    systemctl status systemd-timesyncd
    ● systemd-timesyncd.service - Network Time Synchronization
       Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
      Drop-In: /usr/lib/systemd/system/systemd-timesyncd.service.d
               └─disable-with-time-daemon.conf
       Active: inactive (dead)
    Condition: start condition failed at Sun 2020-04-05 03:11:11 JST; 10s ago
               └─ ConditionFileIsExecutable=!/usr/sbin/VBoxService was not met
         Docs: man:systemd-timesyncd.service(8)
    
     4月 05 03:05:52 moon systemd[1]: Condition check resulted in Network Time Synchronization being ski
     4月 05 03:11:11 moon systemd[1]: Condition check resulted in Network Time Synchronization being sk
    
[/code]

timedatectl は実行すると RTC time というところに正常な時間が１つ表示されてるので  
System clock synchronized をONにできれば解決しそうなんですがやり方がわかりません  
NTP service: inactive  
ってなってるので ntp をインストールして連携するものなんでしょうか

[code]

                   Local time: 日 2020-04-05 03:06:30 JST
               Universal time: 土 2020-04-04 18:06:30 UTC
                     RTC time: 土 2020-04-04 17:51:36
                    Time zone: Asia/Tokyo (JST, +0900)
    System clock synchronized: no
                  NTP service: inactive
              RTC in local TZ: no
    
[/code]

# 環境

ホスト: WIndows10 pro 64bit  
Virtualbox 6.0  
ゲスト: ubuntu 18? 確認の仕方が不明ですが uname 結果はこれです  
`Linux 5.3.0-40-generic #32-Ubuntu SMP Fri Jan 31 20:24:34 UTC 2020 x86_64
x86_64 x86_64 GNU/Linux`


CC BY-SA 4.0
2020-04-04T18:05:56.020
65357
2020-04-05T16:19:42.230
2020-04-05T16:19:42.230
question
linux ubuntu virtualbox
ubuntu で時刻がずれる


NTPがネットワーク内に準備されている場合、NTPを使って時刻同期するのが普通でしょうが、仮想コンピュータの場合、ホストOSの時刻にゲストOSの時刻を同期させる方法があります。（NTPに同期させたい場合もあるので、任意にON/OFF可能）  
Virtual Boxの場合マニュアルを参考に、有効化すればいいのではないかと思います。

<https://www.virtualbox.org/manual/ch09.html>

もうちょっと直接的な抜粋としては

<https://digitalbox.jp/virtualbox-guest-sync-time-host/>

そういうことじゃねーという話であれば申し訳ない。。  
（内部で時刻同期の仕掛けを使っていることも考えられるので、systemd-
timesyncd.serviceがfailっているのが直接の原因かもしれませんが。）


CC BY-SA 4.0
2020-04-04T19:31:36.727
65358
2020-04-04T20:07:09.443
2020-04-04T20:07:09.443
10174
10174
65357
answer


(VirtualBox6.1.4とUbuntu18.04.4で試してみたところ全く同じ事象にはならなかったのでバージョンも明記するとよいかと思います)

Guest
Additionsをインストールした場合Ubuntu標準の時刻同期の仕組みを止めて、VirtualBoxのやり方で(ホストOSから取得して)時刻同期する、というのは意図された挙動のようです。

[9.11.3. Tuning the Guest Additions Time Synchronization
Parameters](https://www.virtualbox.org/manual/ch09.html#changetimesync)(他):

> By default, Oracle VM VirtualBox keeps all sources of time visible to the
> guest synchronized to a single time source, the monotonic host time.



> The Oracle VM VirtualBox Guest Additions ensure that the guest's system time
> is synchronized with the host time.

同様の事象が再現できませんでしたので確認できていませんが、解決策として次のコマンドの実行がいくつかのサイトで提示されていました([参考](https://unix.stackexchange.com/a/313067/186949)):

[code]

    sudo /usr/sbin/VBoxService --timesync-set-start
    
[/code]

(また、Guest Additionsの再インストールで直りそうな気がしないでもないですが特に根拠はありません。)

* * *

時刻同期サービスを動作させる、という方策を採る場合は、  
`/usr/lib/systemd/system/systemd-timesyncd.service.d/disable-with-time-
daemon.conf` ファイルに

[code]

    ConditionFileIsExecutable=!/usr/sbin/VBoxService
    
[/code]

という行があろうかと思いますので、これをコメントアウトするなりして実行しない条件から除外することになります。

* * *

参考として、冒頭の環境でのGuest Additionsインストール前後の実行結果を添付します:

Guest Additionsインストール前:

[code]

    $ systemctl status systemd-timesyncd.service
    ● systemd-timesyncd.service - Network Time Synchronization
       Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
       Active: active (running) since Sun 2020-04-05 18:57:34 JST; 2min 21s ago
         Docs: man:systemd-timesyncd.service(8)
     Main PID: 335 (systemd-timesyn)
       Status: "Synchronized to time server 91.189.89.198:123 (ntp.ubuntu.com)."
        Tasks: 2 (limit: 1120)
       CGroup: /system.slice/systemd-timesyncd.service
               └─335 /lib/systemd/systemd-timesyncd
    
     4月 05 18:57:34 yuki-VirtualBox systemd[1]: Starting Network Time Synchronization...
     4月 05 18:57:34 yuki-VirtualBox systemd[1]: Started Network Time Synchronization.
     4月 05 18:58:06 yuki-VirtualBox systemd-timesyncd[335]: Synchronized to time server 91.189.89.198:123 (ntp.ubuntu.com).
    
    
    $ timedatectl 
                          Local time: 日 2020-04-05 19:05:10 JST
                      Universal time: 日 2020-04-05 10:05:10 UTC
                            RTC time: 日 2020-04-05 10:05:10
                           Time zone: Asia/Tokyo (JST, +0900)
           System clock synchronized: yes
    systemd-timesyncd.service active: yes
                     RTC in local TZ: no
    
[/code]

Guest Additionsインストール後:

[code]

    $ systemctl status systemd-timesyncd.service
    ● systemd-timesyncd.service - Network Time Synchronization
       Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enab
       Active: inactive (dead)
         Docs: man:systemd-timesyncd.service(8)
    
    
    $ timedatectl 
                          Local time: 日 2020-04-05 19:58:51 JST
                      Universal time: 日 2020-04-05 10:58:51 UTC
                            RTC time: 日 2020-04-05 10:58:52
                           Time zone: Asia/Tokyo (JST, +0900)
           System clock synchronized: no
    systemd-timesyncd.service active: yes
                     RTC in local TZ: no
    
[/code]


CC BY-SA 4.0
2020-04-05T11:26:42.727
65366
2020-04-05T11:43:31.627
2020-04-05T11:43:31.627
2808
2808
65357
answer


`timedatectl` の結果で "RTC Time"
が正しい時刻を指しているなら、[hwclock](http://manpages.ubuntu.com/manpages/bionic/ja/man8/hwclock.8.html)
コマンドでシステムの時刻と同期を行ってみてください。

[code]

    $ sudo hwclock             ## ハードウェア・クロックの確認
    $ sudo hwclock --hctosys   ## ハードウェア・クロックをシステム・クロックに反映
    
[/code]


CC BY-SA 4.0
2020-04-05T12:05:58.550
65367
2020-04-05T12:05:58.550
3060
65357
answer