Tiny Core Linuxで時間がずれる場合の対処(特にVirtualBoxの場合) / How to localise your timezone in Tiny Core Linux

  • 投稿日:
  • 更新日:2015/02/28
  • by
  • カテゴリ:

(English below)

私は日本語版にローカライズされたTiny Core(Microcoreでもいいですが)は使わないのでそちらの事情は知りませんが、Tiny Core Linuxをfrugal installで普通にインストールすると、timezoneはUTCのままになっています。 そのため、通常はdateコマンド等では日本では9時間遅く表示されます。

Ubuntu等のリッチなLinux distributionの場合、タイムゾーンを設定する場合には/etc/localtimeに必要なファイルを/usr/share/zoneinfoあたりから持ってくればいいのですが、デフォルトのTiny Coreにはそのファイル自身がありません。 そのため、ブート時にextlinux.conf(たとえば/mnt/sda1/tce/boot/extlinux/extlinux.conf)で指定します。

指定する場所はsyslog出力の指定と同様にAPPENDの行です。 以下のようになっていると仮定します。

DEFAULT core
LABEL core
KERNEL /tce/boot/vmlinuz
APPEND initrd=/tce/boot/core.gz quiet \
 waitusb=5:UUID="123456678-1234-1234-1234-123456789012" \
 tce=UUID="123456678-1234-1234-1234-123456789012"

このAPPENDの最後に"noutc"および"tz=JST-9"(日本標準時の場合)を必要に応じて付け加えます。

noutcを付けると、システムのクロックをローカルタイムと認識します。 つけなければ、システムのクロックはUTCと認識します。 普通はシステムのクロックをローカルタイム(たとえば日本の時間)でつけている場合が多いと思うのですが、Virtualboxを使っている場合多少事情が異なるようです。

Virtualboxを使う場合、VMホストのクロックがローカルタイム(e.g. JST)に設定されていても、Virtualbox環境ではUTCがゲストに渡されるようで、JSTの補正のみをかければいいようです。

たとえば、Virtualboxを走らせているマシンの時間がJSTに設定されていて、その時間が2014/12/26 9:00だったとしましょう。 そのとき、extlinux.confのAPPEND行に指定する内容によってdateコマンドで取得できる時刻は以下のように変化します。

何もなし
    Fri Dec 26 00:00:00 UTC 2014
noutc tz=JST-9
    Fri Dec 26 00:00:00 JST 2014
tz=JST-9
    Fri Dec 26 09:00:00 JST 2014

結局、Virtualbox環境では、APPEND行には、

APPEND (途中省略) tz=JST-9

と指定すればいいことになります。

(最後に飛ぶ)

I'm not familiar with readily pre-localised Tiny Core or Microcore, but if you install Tiny Core as the frugal install, timezone is UTC as default. So you may see a differnt time from your local time in applications such as date command.

In "rich" Linux distributions such as Ubuntu, you can set timezone by GUI or just copying a file from /usr/share/zoneinfo to /etc/localtime, but Tiny Core does'nt have zoneinfo in the first place. So you need to specify timezone in extlinux.conf (e.g. /mnt/sda1/tce/boot/extlinux/exlinux.conf).

Where to describe is APPEND line, the same as syslog case. Let's say we have the following:

DEFAULT core
LABEL core
KERNEL /tce/boot/vmlinuz
APPEND initrd=/tce/boot/core.gz quiet \
 waitusb=5:UUID="123456678-1234-1234-1234-123456789012" \
 tce=UUID="123456678-1234-1234-1234-123456789012"

You can add timezone-related options such as "noutc" and "tz=JST-9" (in Japan Standard Time case).

With "noutc" option, Tiny Core recognises the system clock as localtime. Without this, Tiny Core recognised the system clock as UTC. In many cases we specify the system clock as localtime, but things are a bit different in the VirtualBox environment.

When you are using VirtualBox, even if you specify VM host clock as localtime (such as JST), VirtualBox seems to give UTC to the guest OS, so you can assume the system clock as UTC regardless the host clock setting.

For example, you have a VM host environemnt with timezone JST and the time is 9:00, 26 Dec 2014. The result of date command for each APPEND description is as follows.

nothing
    Fri Dec 26 00:00:00 UTC 2014
noutc tz=JST-9
    Fri Dec 26 00:00:00 JST 2014
tz=JST-9
    Fri Dec 26 09:00:00 JST 2014

Eventually what you should specify APPEND (in the VirtualBox environemnt) is as follows:

APPEND (omit) tz=JST-9

こちらもよく読まれています