VMWare 8 + real HDD disk
При попытке подключить физический диск к виртуалке VMWare 8 (VMWare 8.0.0 build-471780), выдавались ошибки вида:
vmx| W110: DISKLIB-FLAT : Open: Failed to dismount physical drive 2. Perhaps its volumes have open files on them?
vmx| I120: DISKLIB-FLAT : "\\.\PhysicalDrive2" : failed to open (73): .
vmx| I120: DISKLIB-LINK : "D:\VM\backup-FreeBSD72\FreeBSD72.vmdk" : failed to open (The physical disk is already in use).
Лечится довольно просто: на файл *.vmdk (в моем случае – FreeBSD72.vmdk) добавил пользователя __vmware__ с полным доступом (Full Control, Modify, Read & Execute, Read, Write). По умолчанию там были только Users, SYSTEM и Administrators.
Теги: access, file, FreeBSD, HDD, rights, virtualisation, vmdk, vmware, Windows
FreeBSD под VMWare: Теперь часы работают как часы
Снова добрался до виртуальной FreeBSD, а там.. ужос! Часы отстали на 4 часа.. В предыдущем посте о часах я выбирал разные таймеры. Ни один не работает как нужно. Что делать?
TSC
Я остановился на таймере TSC. Он должен работать на частоте процессора. dmesg рапортует о частоте:
Timecounter "TSC" frequency 3302974606 Hz quality 800
Этот параметр можно посмотреть через sysctl
~> sysctl -a | grep tsc_<br /> machdep.tsc_freq: 3302974606
При таком значении часы отстают, значит оно должно быть меньше.
Fix
Открываем файл vmware.log и ищем строку, содержащую TimeTracker
Sep 14 11:11:05: vmx| TimeTracker host to guest rate conversion 46219175637833 @ 2999990000Hz -> 46219175637833 @ 2999990000Hz<br /> Sep 14 11:11:05: vmx| TimeTracker host to guest rate conversion ((x * 2147483648) >> 31) + 0
Копируем магическое
2999990000 и записываем его в sysctl:
~> sysctl machdep.tsc_freq=2999940000<br /> machdep.tsc_freq: 3302974606 -> 2999940000<br /> ~> echo “sysctl machdep.tsc_freq=2999940000” >> /etc/sysctl.conf<br /> # one more trick:<br /> ~> echo "kern.hz=100" >> /boot/loader.conf
И синхронизируем часы с сервером времени, например:
ntpdate -bs 132.236.56.250
Все, теперь часы работают как часы
За тестовый час они не отстали и не обогнали контрольный сервер ни на секунду.
Теги: FreeBSD, Hz, machdep, ntpdate, sysctl, time, Timecounter, TimeTracker, TSC, tsc_freq, vmware, vmx, время, часы
time is ticking out
Возвращаясь к вопросу отставания часов в FreeBSD (в частности под VMWare). Хэндбук дает подсказку по поводу почему часы могут показывать неправильное время. Дело в том, что в системе несколько таймеров, а выбранный таймер ведет себя на вашей системе не так, как вы ожидаете. Выход – попробовать другой таймер и проследить за результатом.
Посмотрите какие таймеры присутствуют на вашей системе:
<br /> ~> dmesg | grep Timecounter<br /> Timecounter "i8254" frequency 1193182 Hz quality 0<br /> Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000<br /> Timecounter "TSC" frequency 3035844535 Hz quality 800<br /> Timecounters tick every 1.000 msec<br />
Проверьте, какой таймер используется:
<br /> ~> sysctl kern.timecounter.hardware<br /> kern.timecounter.hardware: ACPI-fast<br />
Установите другой таймер:
<br /> ~> sysctl -w kern.timecounter.hardware=i8254<br /> kern.timecounter.hardware: ACPI-fast –> i8254<br />
Добавьте настройки в файл /etc/sysctl.conf, чтобы таймер использовался при загрузке системы:
<br /> kern.timecounter.hardware=i8254<br />
Синхронизируйте время на машине:
<br /> ntpdate -bs 132.236.56.250<br />
Тепеть подождите несколько дней и проверьте, будут ли отставать ваши часы.
Теги: ACPI-fast, date, FreeBSD, i8254, ntpdate, sysctl, time, Timecounter, TSC, vmware, время, отставание, таймер, часы



