web-dev-qa-db-ja.com

VirtualBox-UbuntuゲストOS-timedatectl set-timezoneでアクセスが拒否されました

Ubuntu 16.04.1 LTSをVirtualBoxにインストールし、rootユーザーとしてtimedatectl set-timezone Europe/Berlinを介してタイムゾーンを変更しようとしました。残念ながら、これは機能せず、出力が得られました

Failed to set time zone: Access denied

/etc/localtimeリンクを手動で削除し、/usr/share/zoneinfo/Europe/Berlinへの新しいリンクを作成するオプションについては知っていますが、これはあまり実用的ではなく、timedatectlが機能しない理由がわかりません。

役立つ可能性のあるその他のシステム情報:

$ ls -la /etc | grep localtime
lrwxrwxrwx 1 root    root       27 Feb 14 07:48 localtime -> /usr/share/zoneinfo/Etc/UTC
$ ls -la /usr/share/zoneinfo/Europe/ | grep Berlin
-rw-r--r-- 1 root root 2335 Dec  7 10:59 Berlin

EDIT:追加の奇妙な動作に気づきました。 Access deniedエラーがスローされますが、タイムゾーンは変更されます。そしてしばらくすると、UTCに戻ります:/

root@ces:/home/vagrant# timedatectl
      Local time: Tue 2017-02-14 11:27:31 CET
  Universal time: Tue 2017-02-14 10:27:31 UTC
        RTC time: Tue 2017-02-14 08:17:50
       Time zone: Europe/Belgrade (CET, +0100)
 Network time on: yes
NTP synchronized: no
 RTC in local TZ: no
root@ces:/home/vagrant# timedatectl set-timezone Europe/Berlin
Failed to set time zone: Access denied
root@ces:/home/vagrant# timedatectl
      Local time: Tue 2017-02-14 11:27:40 CET
  Universal time: Tue 2017-02-14 10:27:40 UTC
        RTC time: Tue 2017-02-14 08:17:59
       Time zone: Europe/Berlin (CET, +0100)
 Network time on: yes
NTP synchronized: no
 RTC in local TZ: no
root@ces:/home/vagrant# timedatectl
      Local time: Tue 2017-02-14 10:28:32 UTC
  Universal time: Tue 2017-02-14 10:28:32 UTC
        RTC time: Tue 2017-02-14 08:18:50
       Time zone: Etc/UTC (UTC, +0000)
 Network time on: yes
NTP synchronized: no
 RTC in local TZ: no

EDIT:packer を使用してシステムを自動的にインストールしています。これには、次の行を含むpreseedファイルの使用が含まれます。

d-i clock-setup/utc boolean true
d-i clock-setup/utc-auto boolean true
d-i time/zone string UTC

最後の行を削除することで問題は解決しますが、インストールプロセス中に質問が発生し(タイムゾーンが推定され、「はい」を押して確認する必要があります)、自動化が破壊されます。

3
Robert

Guest Additionsがインストールされていると仮定して... VirtualBoxマニュアルから:「VirtualBox Guest Additionsは、ゲストのシステム時刻がホスト時刻と確実に同期するようにします。」さらに:「調整可能なパラメーターがいくつかあります。」

ゲスト追加の時刻同期を無効にします。
インストールして起動すると、VirtualBox Guest Additionsはゲスト時間とホスト時間の同期を試みます。これは、ゲストサービスによるホストクロックの読み取りを禁止することで防止できます。

VBoxManage setextradata "VM name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1  

これで、「奇妙な動作」と呼ばれるものの根本原因がわかり、ゲスト時間とホスト時間を自動的に同期するデフォルト設定をオフにすると、ゲストシステム内でタイムゾーンを永続的に設定できるようになります。

参照: 公式VirtualBoxマニュアル第9.14章->タイマーと時刻同期の微調整

1
cl-netbox