VirtualBoxでシステム時間を手動で設定するにはどうすればよいですか?


30

VirtualBoxでコンピューターの時刻を手動で設定しようとしていますが、変更前の状態に常にリセットされます。ntpを無効にして、システムに希望する時間を通知するにはどうすればよいですか?


問題に関する詳細を教えてください。あなたはそれを何時にしたいのか、そして何時にあなたのコンピューターを設定しますか?
-qbi

5
コンピューターに任意の間違った時刻を設定したい。
ジェレミービチャ

回答:


30

私は解決策を見つけました。次の資料をお読みください:リンク

基本的に、WindowsホストとUbuntuゲストがある場合は、次を実行します。

  1. VM(仮想マシン)の名前を見つける-VB(VirtualBox)を実行し、VMを選択し、設定を開き、「全般」タブで名前を確認します。 Ubuntu 12.04 32bit
  2. Windowsでは、コマンドラインインタープリターを起動し、C:\Program Files\Oracleフォルダーに移動してクリックVirtualBoxして選択し、左シフトキーを押しながらマウスの右ボタンをクリックし、[ここでコマンドウィンドウを開く]メニューを選択します。
  3. 次のコマンドを貼り付けます(VM名を自分の名前に変更してください!):

    VBoxManage setextradata "Ubuntu 12.04 32bit" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1

  4. 最後に、Ubuntuゲストを起動し、手動で日時を設定します。


6
これは間違いなく受け入れられた答えであるべきです!共有フォルダーがubuntuサーバーにマウントされているため、ゲストの追加を無効にしたくありませんでした14ゲスト
ジョンB

残念ながら、ゲストシステムの時間を「凍結」しません。ただし、一部のシナリオでは、すべての時間を完全にフリーズする必要があります(再現可能なビルドを行う場合など)。
VasyaNovikov

これにより、時間を大幅に節約できました
-elsadek

あなたのホストOSがUbuntuの場合、コマンドは次のとおりです。vboxmanage setextradata "your_VM_name_here" "VBoxInternal /デバイス/ VMMDev / 0 /コンフィグ/ GetHostTimeDisabled" 1
ラドゥ・マリス

:私はそれをしようとしたとき、それは働いていた、この質問を参照してくださいstackoverflow.com/a/45724822/18149vboxadd-service主に、ゲストに余分な引数を必要--disable-timesync
leeand00

23

別の回答で述べたように、VirtualBoxでゲストとしてUbuntuを実行している場合、システム時間は自動的にGuest Additionsによって同期されます(つまり、マザーボード設定のオプションを使用しない)。

その場合の解決策は、ゲストの追加を無効にすることです。

sudo service vboxadd-service stop

または

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

その後、必要に応じて時間を設定できます(コマンドラインからdate --set、またはシステム設定アプレットを使用して)

VirtualBoxサービスは、次回の再起動時に再起動されますが、手動で実行することもできます。


3
オフトピックしかし、Guest Additionsのは、あなたが同様のWindowsゲストOS上のシステムクロックを設定することができますアンインストール/無効
speckledcarp

3
Ubuntuの私のバージョンでは、コマンドはでしたsudo service virtualbox-guest-utils stop。パッケージの名前が変更されたと思いますか?
-Crashthatch

@Crashthatchソリューションが唯一の機能します。ありがとう。
ビバー

11

唯一の方法は、コマンドラインを使用してVirtualboxマザーボードで時間を設定することです。

VBoxManage modifyvm <name> --biossystemtimeoffset <msec>

たとえば、日付を1年戻すには:

VBoxManage modifyvm <name> --biossystemtimeoffset -31536000000

4

さて、任意の日付を設定したい場合は、まずntpを無効化または削除する必要があります。

  • 無効にするには、ターミナルを開いて実行します sudo update-rc.d -f ntp remove
  • 削除するには、お気に入りのソフトウェア管理ソフトウェアを使用します

その後、dateコマンドを使用してシステム時間を設定できます。

date -s "17 April 2011 12:34:56"
date --set="17 April 2011 12:34:56"

両方のコマンドは同等です。使用できる時間のみを設定するには:

date +%T -s "12:34:56" 

date-manpageは、いくつかのより多くのフォーマットのコントロールを持っています。それらをすべて使用して日付を変更できます


さて、私はそれをやったが、sudo date -sは元に戻す前に数秒間だけ日付を保持する。つまり、日付を再度実行すると、正常に動作するように設定された時間が表示されますが、パネルの時間インジケーターは表示されません。インジケーターと日付時刻のクロックを変更することもできません。バグをオープンする必要があると思います。
ジェレミービチャ

ntpを削除/無効にしましたか?他の自動時間管理ソフトウェア(つまり、chrony)がインストールされていますか?
QBI

これはVirtualBoxの新しいNattyインストールであり、ntpをすべて削除し、他の時間管理ソフトウェアはインストールしませんでした。
ジェレミービチャ

2
Virtualboxは、ホストからクライアントに時間を「転送」します。ここでいくつかのオプションを変更する必要があります。おそらくvirtualbox.org/manual/ch03.html#settings-motherboardが役立つでしょう。
qbi

3

パネルの時刻と日付のセクションをクリックすると、カレンダーが表示され、その下に時刻と日付の設定があるので、それをクリックします。

南京錠アイコンをクリックしてパスワードを入力し、[手動で時刻を設定]を選択します。


先に進み、これをほとんどのユーザーにとって最良の回答としてマークします。私の特定の問題はVirtualBoxにありました。
ジェレミービチャ

1

ソフトウェアセンターでntpdateを検索して削除するか、ターミナルで:sudo apt-get remove ntpdate

(ntpを完全に無効にするには再起動が必要な場合があります)

次に、日付を設定します。


OK、ntpdateを削除して再起動しましたが、まだシステムクロックを設定してそれを保持することができません。
ジェレミービチャ

0

「.ps1」(Windows PowerShellスクリプト)の例に基づいて

https://superuser.com/questions/539880/using-virtual-box-is-it-possible-to-set-your-virtual-machine-time-to-be-differen

VirtualBoxの仮想マシンが起動する時刻を変更するために、通常の「.bat」スクリプトファイルを作成しました。

希望の開始時刻は、エポック形式で変数「TEMPO_START_TIMESTAMP」に設定されます。「http://www.timestampconvert.com/」で、希望する開始時刻のepohを取得できます。

開始するVirtualBoxの仮想マシンの名前は、変数「NOME」で必要です(上記の「.ps1」スクリプトで使用される同じ命名法)。

echo off
echo %time%

set NOME="Windows_7_x64"

set TEMPO_CS_2_MS=0
set TEMPO_S_2_MS=000

rem # Starts the VM always on the date 07/11/2014 - 11h58
rem http://www.timestampconvert.com/

set   TEMPO_START_TIMESTAMP=1415361480

for /f "delims=" %%x in ('cscript /nologo toEpoch.vbs') do set epoch=%%x
rem %epoch%

set TEMPO_CURRENT_TIMESTAMP=%epoch%
rem set TEMPO_CURRENT_TIMESTAMP=1544518714

set /A TEMPO_TEMP=(%TEMPO_START_TIMESTAMP%-%TEMPO_CURRENT_TIMESTAMP%)

call set TEMPO=%TEMPO_TEMP%%TEMPO_S_2_MS%
rem %TEMPO_TEMP%
rem %TEMPO%

c:\Progra~1\Oracle\VirtualBox\VBoxManage setextradata %NOME% "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
c:\Progra~1\Oracle\VirtualBox\VBoxManage modifyvm %NOME% --biossystemtimeoffset %TEMPO%
c:\Progra~1\Oracle\VirtualBox\VBoxManage startvm %NOME%

また、epoh形式の現在時刻も必要になります。これには、次のスクリプトを使用します(「toEpoch.vbs」として保存、この視覚的な基本スクリプトは上記の「.bat」スクリプトから呼び出されます)。

WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now())

仮想マシンを実行するには、上記の「.bat」スクリプトファイルを実行するだけです。「Oracle VM VirtualBox Administration」インターフェースを開く必要はありません。

これがお役に立てば幸いです。

よろしく

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