我目前正在开发双系统 PC windows(legacy)和 Pop_!Os(UFEI)。
最近,我遇到了一个时间问题,在 Windows 上不存在,但每当我重新启动设备时,Linux 时间和日期就会变得混乱!笔记Windows 和 Linux 都安装在不同的磁盘上,并且具有不同的 UFEI 分区。
我所做的如下:
- 我创建的命令
date
不需要用户输入密码,然后我按照这个操作邮政。
time
我在目录中编写的可执行脚本if-up.d
包含:
#!/bin/sh
FLAGFILE=/var/run/work-was-already-done
case "$IFACE" in
lo)
# The loopback interface does not count.
# only run when some other interface comes up
exit 0
;;
*)
;;
esac
if [ -e $FLAGFILE ]; then
exit 0
else
touch $FLAGFILE
fi
sudo date -s "$(curl -s --head http://bing.de | grep '^Date:' | cut -d' ' -f 3-)"
echo $(date) >> /home/myPop/Desktop/timeLog.txt
sudo date -s "$(wget -qSO- --max-redirect=0 http://google.com 2>&1 | grep '^ Date:' | cut -d' ' -f 5-)"
echo $(date) >> /home/myPop/Desktop/timeLog.txt
调用命令sudo ifup --all
-v` 后,我得到以下信息:
ifup: reading directory /etc/network/interfaces.d
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/wireless-tools
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
/bin/run-parts --exit-on-error --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/000resolvconf
run-parts: executing /etc/network/if-up.d/avahi-autoipd
run-parts: executing /etc/network/if-up.d/openvpn
run-parts: executing /etc/network/if-up.d/time
run-parts: executing /etc/network/if-up.d/wpasupplicant
执行时,正确的日期和时间将写入桌面上的日志文件中。然而,当我重新启动时,我会看到wget
和 该方法生成的数据curl
将无法纠正时间,并将根据今天的日期生成以下内容:
Thu Oct 15 00:00:00 CEST 2020
Thu Oct 15 00:00:00 CEST 2020
让我困惑的是为什么这两个命令在启动时产生错误的时间,但在显示桌面后执行时给出正确的答案。
我
/etc/adjtime
按照此说明删除了该文件地点但没有任何区别。我怀疑我的BIOS中的时间可能是错误的,但我仔细检查了一下,它是正确的。
我不是专家,所以我也怀疑路由器可能给了我错误的时间信息,但由于我住在学生宿舍,而且我无法访问路由器作为设备,我无法检查这一点,所以我去了到我的
system setting-> date & time-> Automatic date & time
并禁用它,所以现在理论上设备不会从路由器获取时间数据(如果可能的话)。
请建议我该怎么做?目前我愿意接受所有建议:)。
提前致谢。