Windows Note PCにDual Boot環境を構築して,Linux側のシステムクロックをUTCではなくLocal Timeに設定しようとして,いろいろ調べた.
- 今時は
/etc/init.d/hwclock.sh(/etc/default/rcS)で設定するのではなくsystemdのtimedatectlを使うらしい - 今時はWindowsでもUTCがシステムクロックとして利用できるらしい
ということで,WindowsもUTCにするのが素直なので,そうすることに.
設定はhttps://wiki.archlinux.org/index.php/time#UTC_in_WindowsのとおりHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformationにRealTimeIsUniversalとしてDWORD 1を追加するのみ.
ちなみに,Debian GNU/Linux sidでは/etc/init.d/hwclock.shが存在するが,sudo /etc/init.d/hwclock.sh start等とすると途中でexitされてしまう.ということで,systemdとsysv-rcの関係を理解する目的も含めて少し流れを追ってみた.以下のような感じ.
/etc/init.d/hwclock.shの. /lib/lsb/init-functionsの箇所でexitしているらしい/lib/lsb/init-functionsの最後の箇所でrun-parts --lsbsysinit --list /lib/lsb/init-functions.dでリストされるファイルをsource (.)している.以下./lib/lsb/init-functions.d/20-left-info-blocks/lib/lsb/init-functions.d/40-systemd
/lib/lsb/init-functions.d/40-systemdでsystemctl -p LoadState --value show $serviceがmaskedを返す場合,そこでexitする($serviceはこの場合hwclock.service)- package
systemdの/lib/systemd/system/hwclock.serviceが/dev/nullへの symlink になっていて,default で mask されているsystemctl mask|unmask <NAME>でmask/unmaskするunitは,fileが/etc/systemd/system/以下に置かれる