* [PATCH v2] base: setup correct system time and time zone in initrd
@ 2013-06-06 9:56 WANG Chao
[not found] ` <20130606095611.GA29287-UAAZkH0G2Ts1naxU1pY8ZxcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: WANG Chao @ 2013-06-06 9:56 UTC (permalink / raw)
To: Harald Hoyer, Dave Young, Baoquan He; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA
Currently in initrd, hardware clock is always considered to use UTC time
format and system time zone is also UTC. Thus system time isn't correct
if hw clock is localtime or we're using other time zone in real root.
To fix this, install /etc/adjtime and /etc/localtime to initrd. If not
using systemd, install /usr/sbin/hwclock for dracut init to setup system
time.
Signed-off-by: WANG Chao <chaowang-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Harald Hoyer <harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
modules.d/99base/init.sh | 9 +++++++++
modules.d/99base/module-setup.sh | 11 +++++++++++
2 files changed, 20 insertions(+)
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
index 880a2c0..c72129b 100755
--- a/modules.d/99base/init.sh
+++ b/modules.d/99base/init.sh
@@ -55,6 +55,15 @@ if ! ismounted /dev; then
exit 1
fi
+# setup system time
+if [ -f /etc/adjtime ]; then
+ if strstr "$(cat /etc/adjtime)" LOCAL; then
+ hwclock --hctosys --localtime
+ else
+ hwclock --hctosys --utc
+ fi
+fi
+
# prepare the /dev directory
[ ! -h /dev/fd ] && ln -s /proc/self/fd /dev/fd >/dev/null 2>&1
[ ! -h /dev/stdin ] && ln -s /proc/self/fd/0 /dev/stdin >/dev/null 2>&1
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
index 4955b7b..77ba79c 100755
--- a/modules.d/99base/module-setup.sh
+++ b/modules.d/99base/module-setup.sh
@@ -28,6 +28,17 @@ install() {
egrep '^root:' "$initdir/etc/passwd" 2>/dev/null || echo 'root:x:0:0::/root:/bin/sh' >> "$initdir/etc/passwd"
egrep '^nobody:' /etc/passwd >> "$initdir/etc/passwd"
+ # install /etc/adjtime and time zone data
+ if [[ $hostonly ]]; then
+ dracut_install -o /etc/adjtime \
+ /etc/localtime
+ fi
+
+ # Our init.sh script needs hwclock to set system time
+ if [[ $hostonly ]] && ! dracut_module_included "systemd"; then
+ dracut_install -o hwclock
+ fi
+
# install our scripts and hooks
inst_script "$moddir/init.sh" "/init"
inst_script "$moddir/initqueue.sh" "/sbin/initqueue"
--
1.8.2.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2] base: setup correct system time and time zone in initrd
[not found] ` <20130606095611.GA29287-UAAZkH0G2Ts1naxU1pY8ZxcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
@ 2013-06-06 11:40 ` Harald Hoyer
2013-07-29 7:08 ` Harald Hoyer
1 sibling, 0 replies; 4+ messages in thread
From: Harald Hoyer @ 2013-06-06 11:40 UTC (permalink / raw)
To: WANG Chao; +Cc: Dave Young, Baoquan He, initramfs-u79uwXL29TY76Z2rM5mHXA
On 06/06/2013 11:56 AM, WANG Chao wrote:
> Currently in initrd, hardware clock is always considered to use UTC time
> format and system time zone is also UTC. Thus system time isn't correct
> if hw clock is localtime or we're using other time zone in real root.
>
> To fix this, install /etc/adjtime and /etc/localtime to initrd. If not
> using systemd, install /usr/sbin/hwclock for dracut init to setup system
> time.
>
> Signed-off-by: WANG Chao <chaowang-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> Signed-off-by: Harald Hoyer <harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>
Thanks! Pushed
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] base: setup correct system time and time zone in initrd
[not found] ` <20130606095611.GA29287-UAAZkH0G2Ts1naxU1pY8ZxcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
2013-06-06 11:40 ` Harald Hoyer
@ 2013-07-29 7:08 ` Harald Hoyer
[not found] ` <51F614EF.3090306-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
1 sibling, 1 reply; 4+ messages in thread
From: Harald Hoyer @ 2013-07-29 7:08 UTC (permalink / raw)
To: WANG Chao; +Cc: Dave Young, Baoquan He, initramfs-u79uwXL29TY76Z2rM5mHXA
On 06/06/2013 11:56 AM, WANG Chao wrote:
> Currently in initrd, hardware clock is always considered to use UTC time
> format and system time zone is also UTC. Thus system time isn't correct
> if hw clock is localtime or we're using other time zone in real root.
>
> To fix this, install /etc/adjtime and /etc/localtime to initrd. If not
> using systemd, install /usr/sbin/hwclock for dracut init to setup system
> time.
>
> Signed-off-by: WANG Chao <chaowang-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> Signed-off-by: Harald Hoyer <harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> ---
> modules.d/99base/init.sh | 9 +++++++++
> modules.d/99base/module-setup.sh | 11 +++++++++++
> 2 files changed, 20 insertions(+)
>
> diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
> index 880a2c0..c72129b 100755
> --- a/modules.d/99base/init.sh
> +++ b/modules.d/99base/init.sh
> @@ -55,6 +55,15 @@ if ! ismounted /dev; then
> exit 1
> fi
>
> +# setup system time
> +if [ -f /etc/adjtime ]; then
> + if strstr "$(cat /etc/adjtime)" LOCAL; then
> + hwclock --hctosys --localtime
> + else
> + hwclock --hctosys --utc
> + fi
> +fi
> +
> # prepare the /dev directory
> [ ! -h /dev/fd ] && ln -s /proc/self/fd /dev/fd >/dev/null 2>&1
> [ ! -h /dev/stdin ] && ln -s /proc/self/fd/0 /dev/stdin >/dev/null 2>&1
> diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
> index 4955b7b..77ba79c 100755
> --- a/modules.d/99base/module-setup.sh
> +++ b/modules.d/99base/module-setup.sh
> @@ -28,6 +28,17 @@ install() {
> egrep '^root:' "$initdir/etc/passwd" 2>/dev/null || echo 'root:x:0:0::/root:/bin/sh' >> "$initdir/etc/passwd"
> egrep '^nobody:' /etc/passwd >> "$initdir/etc/passwd"
>
> + # install /etc/adjtime and time zone data
> + if [[ $hostonly ]]; then
> + dracut_install -o /etc/adjtime \
> + /etc/localtime
> + fi
> +
> + # Our init.sh script needs hwclock to set system time
> + if [[ $hostonly ]] && ! dracut_module_included "systemd"; then
> + dracut_install -o hwclock
> + fi
> +
> # install our scripts and hooks
> inst_script "$moddir/init.sh" "/init"
> inst_script "$moddir/initqueue.sh" "/sbin/initqueue"
>
Hmm, people do not like it :-/
Bug 981617 - please take /etc/adjtime out of the initramfs so it doesn't
override the existing file system version
https://bugzilla.redhat.com/show_bug.cgi?id=981617
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] base: setup correct system time and time zone in initrd
[not found] ` <51F614EF.3090306-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2013-07-29 8:06 ` WANG Chao
0 siblings, 0 replies; 4+ messages in thread
From: WANG Chao @ 2013-07-29 8:06 UTC (permalink / raw)
To: Harald Hoyer; +Cc: Dave Young, Baoquan He, initramfs-u79uwXL29TY76Z2rM5mHXA
On 07/29/13 at 09:08am, Harald Hoyer wrote:
> On 06/06/2013 11:56 AM, WANG Chao wrote:
> > Currently in initrd, hardware clock is always considered to use UTC time
> > format and system time zone is also UTC. Thus system time isn't correct
> > if hw clock is localtime or we're using other time zone in real root.
> >
> > To fix this, install /etc/adjtime and /etc/localtime to initrd. If not
> > using systemd, install /usr/sbin/hwclock for dracut init to setup system
> > time.
> >
> > Signed-off-by: WANG Chao <chaowang-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> > Signed-off-by: Harald Hoyer <harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> > ---
> > modules.d/99base/init.sh | 9 +++++++++
> > modules.d/99base/module-setup.sh | 11 +++++++++++
> > 2 files changed, 20 insertions(+)
> >
> > diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
> > index 880a2c0..c72129b 100755
> > --- a/modules.d/99base/init.sh
> > +++ b/modules.d/99base/init.sh
> > @@ -55,6 +55,15 @@ if ! ismounted /dev; then
> > exit 1
> > fi
> >
> > +# setup system time
> > +if [ -f /etc/adjtime ]; then
> > + if strstr "$(cat /etc/adjtime)" LOCAL; then
> > + hwclock --hctosys --localtime
> > + else
> > + hwclock --hctosys --utc
> > + fi
> > +fi
> > +
> > # prepare the /dev directory
> > [ ! -h /dev/fd ] && ln -s /proc/self/fd /dev/fd >/dev/null 2>&1
> > [ ! -h /dev/stdin ] && ln -s /proc/self/fd/0 /dev/stdin >/dev/null 2>&1
> > diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
> > index 4955b7b..77ba79c 100755
> > --- a/modules.d/99base/module-setup.sh
> > +++ b/modules.d/99base/module-setup.sh
> > @@ -28,6 +28,17 @@ install() {
> > egrep '^root:' "$initdir/etc/passwd" 2>/dev/null || echo 'root:x:0:0::/root:/bin/sh' >> "$initdir/etc/passwd"
> > egrep '^nobody:' /etc/passwd >> "$initdir/etc/passwd"
> >
> > + # install /etc/adjtime and time zone data
> > + if [[ $hostonly ]]; then
> > + dracut_install -o /etc/adjtime \
> > + /etc/localtime
> > + fi
> > +
> > + # Our init.sh script needs hwclock to set system time
> > + if [[ $hostonly ]] && ! dracut_module_included "systemd"; then
> > + dracut_install -o hwclock
> > + fi
> > +
> > # install our scripts and hooks
> > inst_script "$moddir/init.sh" "/init"
> > inst_script "$moddir/initqueue.sh" "/sbin/initqueue"
> >
>
> Hmm, people do not like it :-/
>
> Bug 981617 - please take /etc/adjtime out of the initramfs so it doesn't
> override the existing file system version
>
> https://bugzilla.redhat.com/show_bug.cgi?id=981617
I read through the whole bz. It's not a good idea to rebuild normal boot
initrd every time when time zone changed.
Please revert it as you like. I can apply this feature in our kdump case
only.
Thanks,
WANG Chao
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-07-29 8:06 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-06 9:56 [PATCH v2] base: setup correct system time and time zone in initrd WANG Chao
[not found] ` <20130606095611.GA29287-UAAZkH0G2Ts1naxU1pY8ZxcY2uh10dtjAL8bYrjMMd8@public.gmane.org>
2013-06-06 11:40 ` Harald Hoyer
2013-07-29 7:08 ` Harald Hoyer
[not found] ` <51F614EF.3090306-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-07-29 8:06 ` WANG Chao
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox