お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2008-11-23 15:09:54

moz
メンバ
登録日: 2007-01-25

「 Ubuntu 8.10 on USB Memory 」の時刻設定

すでに多くの方がお気付きのように、「 Ubuntu-8.10 」 のLive-CDでは時刻がグリニッジ標準時で示されています。
従って、それをUSBメモリにC&Pしただけの 「 Ubuntu 8.10 on USB Memory 」 では、当然時刻が9時間遅れる
ことになります。

一方、従来のようにHDDにLive-CDの内容を解凍してインストールする場合は、インストーラの求めに従って時刻を
設定することができるため、この問題は起こりません。

以前のversionsでは起こらなかった不具合が 「 Ubuntu-8.10 」 では何故出現したのでしょうか。

それは、initramdisk (initrd.gz) の中の local-time ( timezone ) の設定に関わる複数のファイルがかなり変更
されたからです。 長くなりますが、以下に 「 Ubuntu-8.04.1 」 から 「 Ubuntu-8.10 」 への変更点を列挙します。


  <<  local-time 設定に関わる主な変更点  >>

1.  ファイル init

for x in $(cat /proc/cmdline); do
    case $x in
    init=*)
        init=${x#init=}
        ;;
    ・・・・・・・・・・・・・・・・・・・・
    ・・・・・・・・・・・・・・・・・・・・
    break=*)
        break=${x#break=}
        ;;
    break)
        break=premount
        ;;
    tz=*)
        TZ=${x#tz=}
        ;;
    utc=*)
        utc=${x#utc=}
        ;;
    utc)
        utc=y
        ;;

    esac
done

                     ↓↓↓

for x in $(cat /proc/cmdline); do
    case $x in
    init=*)
        init=${x#init=}
        ;;
    ・・・・・・・・・・・・・・・・・・・・
    ・・・・・・・・・・・・・・・・・・・・
    break=*)
        break=${x#break=}
        ;;
    break)
        break=premount
        ;;
    blacklist=*)
        blacklist=${x#blacklist=}
        ;;
    esac
done

ここでは、tz=*) から utc) までの紫色の kernelオプション(起動オプション)が削除されています。
つまり、起動オプションに 「 tz=Asia/Tokyo utc=no 」 と付け加えても全く無意味です。


2.  ファイル /scripts/casper-bottom/02timezone

case $1 in
# get pre-requisites
prereqs)
       prereqs
       exit 0
       ;;
esac

log_begin_msg "$DESCRIPTION"

tzfile=/root/etc/timezone
ltfile=/root/etc/localtime
    ・・・・・・・・・・・・・・・・・・・・
          ( この間 25行省略 )
    ・・・・・・・・・・・・・・・・・・・・
  chroot /root debconf-communicate -fnoninteractive ubiquity > /dev/null <<EOF
    set clock-setup/utc true
    fset clock-setup/utc seen true
EOF
fi


                              ↓↓↓

case $1 in
# get pre-requisites
prereqs)
       prereqs
       exit 0
       ;;
esac

cp -f /root/usr/share/zoneinfo/UTC /root/etc/localtime

ここでは、紫色の35行が削除され、新たな青色の1行になってしまいました。
この青色の1行がLive-CDの時刻を一律グリニッジ標準時に固定している元凶です。


  <<  変更の意味と対策  >>

これまでのversionsでは起動オプションに 「 tz=[area]/[city]  utc=no 」 と付け加えればlocal-timeを指定
できたのですが、「 Ubuntu-8.10 」 ではそれらのオプションが削除されたので、一律グリニッジ標準時に固定
されているのです。

HDDにLive-CDの内容を解凍してインストールする場合に問題がなければ、残りはできるだけ簡略化しようとする
意図が働いているかもしれません。 実際、動きの遅いLive-CDでUbuntuを体験するというより、USBメモリを含め
てインストール用に使うのが主流であるとすれば、それも1つの見識と考えられます。

上述のようにLive-CDでは無理ですが、「 Ubuntu 8.10 on USB Memory 」 では簡単にlocal-timeを設定
できます。 geditでファイル /etc/init.d/rc.local を開き、最下段に下の1行を書き加えて保存します。
こうすれば、再起動時から日本標準時になります。

    $ sudo gedit /etc/init.d/rc.local

         cp -f /usr/share/zoneinfo/Japan /etc/localtime

この対策の意味は、ファイル /scripts/casper-bottom/02timezone によって起動の度に上書きされるファイル
/etc/localtime を起動の最後の段階でさらにファイル Japan で上書きし直すことです。
initramdisk (initrd.gz) そのものを編集するのでは手間が掛かり過ぎます。


  お詫び :
          日本標準時に設定するコマンドを
              $ sudo echo "cp -f /usr/share/zoneinfo/Japan /etc/localtime" >> /etc/init.d/rc.local
          と記載しておりましたが、これでは Permission denied と断られます。
          上のようにgeditで編集する必要があります。 お詫びして訂正させて頂きます。 ( 11月24日記 )

.

最後の編集者: moz (2008-11-25 09:29:28)

オフライン

 

#2 2008-11-23 22:07:37

hide
メンバ
From: Tokyo
登録日: 2007-05-24

Re: 「 Ubuntu 8.10 on USB Memory 」の時刻設定

素晴らしい記事なので、「Make USB Startup Disk」 の使用法と「ブートCD」
http://forum.ubuntulinux.jp/viewtopic.php?id=3203
と合わせてスティッキーにしては如何でしょうか?=)

最後の編集者: hide (2008-11-23 22:10:56)

オフライン

 

#3 2008-11-28 23:46:12

sd
ゲスト

Re: 「 Ubuntu 8.10 on USB Memory 」の時刻設定

試してみたところ、Windows側の時間がずれるようになってしまいました。
時間だけなので大した問題ではないのですが、
何か解決策があるようでしたら教えていただけませんでしょうか。

 

#4 2008-11-29 23:53:56

moz
メンバ
登録日: 2007-01-25

Re: 「 Ubuntu 8.10 on USB Memory 」の時刻設定

sdさん、この方法はHDDにLiveCDの内容を解凍してインストールした場合に適用できません。

その場合は、initramdisk (initrd.gz) の中のファイル /scripts/casper-bottom/02timezone などが存在せず、local-time
( timezone ) の設定法が全く異なります。

やはり、 Ubuntu 8.10 の時刻表示が+9時間になる に相談されるのが良いでしょう。

当方はそのような経験がないのですが、なお検討してみます。
.

最後の編集者: moz (2008-11-30 01:32:50)

オフライン

 

#5 2008-11-30 11:07:31

sd
ゲスト

Re: 「 Ubuntu 8.10 on USB Memory 」の時刻設定

mozさん

自己解決しました。
時刻を手動で合わせてから/etc/init.d/rc.localの編集をしてしまった為、
今度は9時間進むようになってしまい、さらに、
/etc/default/rcSでUTC=noにしたりと
色々いじっていたせいでおかしくなってしまったようです。

/etc/default/rcSを元に戻し、
時間が9時間遅れている状態(インストール直後の状態)に戻してから
/etc/init.d/rc.localを編集したところ
正しい時間が表示され、Windows側にも影響は出ませんでした。

お手数おかけしてすみませんでした。

 

Board footer

Powered by FluxBB