Ubuntuが時刻を自動的に更新しないようにする


4

一時的に日付を設定するだけです。これを実行します

date 051918002010.00

そして、それはわずか5秒ほど続きます。その後、タイムサーバーと同期します。私が試してみました:

ps aux | grep ntp

しかし、そこには何もありません。

私は今、正しい答えが必要です。もっと詳細な答えは後で:)

編集:回答者がすぐに発見したように、私のUbuntuはVirtualBoxで実行されており、回答の一部のバージョンに関連していることが判明しました。みんなありがとう。


なぜこれをやろうとしているのですか、目的は何ですか?
ジェフリーヴァンデンボーン

1
開発、状況のシミュレーション。
ダンローゼンスターク2009

回答:


7

プログラムが別の日時で実行されていると判断できるように、プログラムを実行する方法を本当に探しているようです。

これについて以前の質問がされました:Linux RunAsDate類似? 以下は、私がそこで答えたものです。オプション3を試みているようです。

ntpdateパッケージはデーモンではなく、すべきではない(それはこれ以上のブート時に一度実行し、必要があります)自動的にシステム時刻を更新します。VirtualBoxについてはあまり詳しくありませんが、ntpdインストールされているか、VirtualBox Guest AdditionsがホストOSから直接時刻を同期していると思われます。その場合は、無効にするか、いずれかを使用する必要がありますオプション2で後述するラッパーライブラリ。

更新:VirtualBox Guest Additionsがインストールされているように見えます。これは/usr/sbin/vboxadd-timesync、ゲストクロックをホストのクロックと同期させる実行可能ファイルだと思います。スタートアップスクリプトがインストールされているかどうかを確認します(おそらく/etc/init.d/vboxadd-timesync)。その場合、との同期を停止できますsudo /etc/init.d/vboxadd-timesync stop。スタートアップスクリプトがない場合は、おそらくkillプロセスだけを実行できます。


RunAsDateは、次のことを行います:

RunAsDateは、現在の日付と時刻(GetSystemTime、GetLocalTime、GetSystemTimeAsFileTime)を返すカーネルAPI呼び出しをインターセプトし、現在の日付/時刻を指定した日付/時刻に置き換えます。

Linuxでは、同じことを達成するためのオプションがいくつかあります。

  1. Windowsバージョンのプログラムを入手できる場合は、Wineの下でRunAsDateを実行できる可能性があります(ただし、最近のバグに注意してください)。

  2. これを行うラッパーライブラリを見つけるか、独自に作成します。以下にいくつかのオプションを示します。

  3. 仮想マシンを使用します。これはやり過ぎですが、ゲストVMのOSは基盤となるホストから完全に分離されているため、システム時間をまったく異なるものに設定できます。他のオプションよりもセットアップが速い場合があります。


オプション2は、実行しようとしているものに応じて、さまざまな方法で実現できます。以下のDaveParilloの回答は、さまざまな方法を説明し、実行可能ファイルのコードを含むDIYアプローチにリンクしいます。その他のオプションには次のものがあります。

  • datefudge、Debian / Ubuntuリポジトリなどで入手できます。

  • Time-Fake perlモジュールlibtime-fake-perl。パッケージとしてDebianリポジトリにもあります。

  • FakeTime Preload Library(別名libfaketimefreshmeat link)、動的にリンクされたバイナリのシステムコールをインターセプトできるライブラリ。SqueezeおよびSidのDebianリポジトリで利用可能。


sudo /etc/init.d/vboxadd-timesync stop working!
どうも

うわー、datefudgeはUbuntuでも完璧に動作します。とても甘い。再度、感謝します!
ダンローゼンスターク09

2
あなたが気にしない場合の私のメモのためだけに:datefudge "Wed Dec 16 15:20:28 EST 2008" ruby​​ script / console
Dan Rosenstark 09

答えの冒頭に欠けている唯一のものは、「この情報を使用するときに悪にならないでください」です。
ラドゥマリス

5

Dan McGへのコメント応答は、UbuntuをVirtualBoxゲストとして実行していることを示しているように見えるため、VirtualBoxゲスト追加機能をインストールした場合、ゲストの時刻がホストの時刻と自動的に同期されます。

ps -ef | grep VBoxService

実行中のVirtualBoxゲスト追加サービスを表示する必要があります。

次に試すことができます:

sudo /etc/init.d/vboxadd-service stop

再起動するまで停止します。


それからゲストのネットワーク接続を切断してみます。
ダンローゼンスターク2009

そこの賢い考え、すべてが今はっきりしている、乾杯!
ジェフリーヴァンデンボーン

@Yar、ゲストの仮想ネットワーク接続を通過するかどうかわかりません。VirtualBoxプロセスを介してホストのシステムクロック値を取得する可能性があります。
ニックマイヤー

@Nick vboxゲストの追加に使用できる構成ファイルまたは構成ダイアログはありませんか?たぶん彼はそこで同期する時間を変えることができます。vmwareから来たので、これに関する経験はあまりありません。
ジェフリーヴァンデン

これは素晴らしいものでしたが、1)VirtualBoxゲストとして実行している間、VBoxServiceがロードされません(拡張機能を実行したことはないでしょう)2)vboxadd-serviceは存在しません3)両方のネットワーク接続を強制終了しても数秒で復元される時間
ダンローゼンスターク09

3

クイックアンサー:ネットワーク接続を切断します:)


VirtualBoxホストから時間を取っているようだから、どうすればいいのかわからない。またはおそらく...確かではありませんが、インターネットを切断しても解決しませんでした。
ダンローゼンスターク2009

有線ネットワークを使用している場合は、トップパネルのネットワークアイコン(デスクトップを微調整していないと思われます)をクリックして、それを選択し、切断を選択します。
ジェフリーヴァンデンボーン

問題は、nntpが継続していることであり、徐々に更新されているようです。いずれにせよ、インターネットに接続していなくても時刻同期は停止しません。
ダンローゼンスターク2009

sudoのにntpdateを削除apt-getの
ジェフリーVandenborne

3

Ubuntu / Debianにパッケージ化されている' libfaketime ' も見ることができます。

システム全体の時間を変更することなく(LD_PRELOADを使用してシステムコールをインターセプトすることなく)プログラムのシステム時間を偽造できます。


2

VBoxManage setextradata <guest-vm-name> "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1ホストOSで実行して、自動時刻同期を無効にすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.