Wygląda na to, że naprawdę szukasz sposobu na uruchomienie programu, aby program uznał, że działa on pod inną datą i godziną.
Pytanie o to zostało zadane wcześniej: analog Linux RunAsDate? Poniżej znajduje się odpowiedź, którą tam podałem. Zauważ, że próbujesz wybrać opcję 3.
ntpdate
Pakiet nie jest demonem i powinno nie być aktualizowania czasu systemowego automatycznie (powinien działać od razu na starcie i nie więcej). Nie znam się zbytnio na VirtualBox, ale domyślam się, że masz ntpd
zainstalowany lub Dodatki dla gości VirtualBox synchronizują czas bezpośrednio z systemu operacyjnego hosta, w takim przypadku musisz je wyłączyć lub użyć jednego z biblioteki opakowań wymienione poniżej w Opcji 2.
Aktualizacja : Wygląda na to, że zainstalowano Dodatki dla gości VirtualBox /usr/sbin/vboxadd-timesync
- Domyślam się, że jest to plik wykonywalny, który synchronizuje zegar gościa z zegarem hosta. Sprawdź, czy jest zainstalowany skrypt startowy (ewentualnie /etc/init.d/vboxadd-timesync
); jeśli tak, możesz zatrzymać synchronizację z sudo /etc/init.d/vboxadd-timesync stop
. Jeśli nie ma skryptu uruchamiania, prawdopodobnie możesz po prostu kill
sam proces.
Co RunAsDate robi jest następujący:
RunAsDate przechwytuje wywołania interfejsu API jądra, które zwracają bieżącą datę i godzinę (GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime) i zastępuje bieżącą datę / godzinę podaną datą / godziną.
Pod Linuksem masz kilka opcji, aby osiągnąć to samo:
Jeśli możesz uzyskać wersję programu dla systemu Windows, możesz być w stanie uruchomić RunAsDate w Wine (ale uważaj na najnowszy błąd ).
Znajdź bibliotekę opakowań, aby to zrobić, lub napisz własną. Niektóre opcje podano poniżej.
Użyj maszyny wirtualnej. Jest to przesada, ale ponieważ system operacyjny w maszynie wirtualnej gościa jest całkowicie oddzielony od hosta bazowego, możesz ustawić czas systemowy na coś zupełnie innego. Konfiguracja może być szybsza niż w przypadku innych opcji.
Opcję 2 można osiągnąć różnymi metodami, w zależności od tego, co próbujesz uruchomić. Odpowiedź DaveParillo poniżej prowadzi do metody DIY, która wyjaśnia różne metody i zawiera kod pliku wykonywalnego. Niektóre inne opcje obejmują:
datefudge
, dostępne w repozytoriach Debian / Ubuntu i innych miejscach.
Moduł Perla Time-Fake , także w repozytoriach Debiana jako pakiet libtime-fake-perl
.
FakeTime Preload Library (alias libfaketime
, freshmeat link ), biblioteka, która może przechwytywać wywołania systemowe w dynamicznie połączonych plikach binarnych. Dostępne w repozytoriach Debiana dla Squeeze i Sid.