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
最後の行を削除することで問題は解決しますが、インストールプロセス中に質問が発生し(タイムゾーンが推定され、「はい」を押して確認する必要があります)、自動化が破壊されます。
Guest Additionsがインストールされていると仮定して... VirtualBoxマニュアルから:「VirtualBox Guest Additionsは、ゲストのシステム時刻がホスト時刻と確実に同期するようにします。」さらに:「調整可能なパラメーターがいくつかあります。」
ゲスト追加の時刻同期を無効にします。
インストールして起動すると、VirtualBox Guest Additionsはゲスト時間とホスト時間の同期を試みます。これは、ゲストサービスによるホストクロックの読み取りを禁止することで防止できます。
VBoxManage setextradata "VM name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
これで、「奇妙な動作」と呼ばれるものの根本原因がわかり、ゲスト時間とホスト時間を自動的に同期するデフォルト設定をオフにすると、ゲストシステム内でタイムゾーンを永続的に設定できるようになります。