E_FAIL (0x80004005) මේ Code එක Fix කරන්නේ මෙහෙමයි.
අද අපි කතා කරන්න යන්නේ E_FAIL (0x80004005) code එක ගැන. Oracle VM VirtualBox එකේ වැඩ කරන්කොට තමයි ඔයාට මේ වගේ erro එන්නේ . මේකෙදී වෙන්නේ Virtual Machine session එක start කරන්න අවස්තාව ඔයාට නැති වෙන එක.
E_FAIL (0x80004005) මේ erro එක ආවම ඔයා මුලින්ම කරන්න ඕනි ඔයාගේ PC එක restart කරන එක. ඊට පස්සේ ආයෙත් VM එකට log වෙලා බලන්න. තවම මේ error එක එනවා නම්, ඔයාට ඇයි එහෙම වෙන්නේ කියලා deeply බලන්න වෙනවා.
දැන් අපි බලමු E_FAIL (0x80004005) වගේ erro වලට හේතු මොනවද?
- Missing Virtual Machine file.
- Hypervisor interfering with VirtualBox.
- Duplicate config values in the vbox file.
- Bugs in VirtualBox builds.
- Incompatibility with Operating System.
- Missing VirtualBox driver.
- Interference by third-party applications.
- Bad DLL due to Graphics Driver.
- Improper Network Adapter configuration
මේ errors නැති කර ගන්න විදිය ගැන දැන් අපි කතා කරමු.Missing Virtual Machine file.
Missing Virtual Machine file.
E_FAIL (0x80004005) මේ erro එකට බලපාන ලොකු හේතුවක් තමයි virtual machine files miss වෙන එක. අපි VirtualBox එකේ වැඩ කරලා ඉවර වෙලා එකෙන් exit වෙන්න යන්කොට වෙන අව්ලක් තමයි මේක. අපි VirtualBox එකේ වැඩ කරනකොට ඒවා සේරම store වෙන්නේ temporary files විදියට. මේ temporary file එක අපි normal shutdown කරන්කොට VM file එකක් විදියට rename වෙනවා. එතකොට මේක අපේ activity file එකක් කියලා VirtualBox එකට identify කර ගන්න අමාරු වෙනවා.
මේ error එක නැති කර ගන්න නම්, අපට අපේ activity files manually renaming කර ගන්න වෙනවා. ඒක කරන විදිය ගැන දැන් අපි බලමු.
- මුලින්ම ඔයා කරන්න ඕනි, Virtual Machine file location එකට යන එක.
- Windows වලදී නම් ඔයාට file location එක මේ විදියට බලා ගන්න පුලුවන් වෙනවා.
C:\Users\<username>\.VirtualBox\Machines\<virtualmachine>
. - දැන් ඔයාට කරන්න තියෙන්නේ <username> එක ඔයාගේ user profile name එක විදියට replace කරන එක.
- ඊලගට ඔයාට බලන්න තියෙන්නේ <virtualmachine> එක ගැන.
<virtualmachine>.vbox
format එකෙන් නැත්නම්, ඔයාට කරන්න තියෙන්නේ, <virtualmachine>.vbox-tmp කියන extension එක copy කරලා <virtualmachine>.vbox විදියට rename කරන එක.
හැබයි old versions එකේ නම් .vbox වෙනුවට file extension එක තියෙනේ, .xml විදියට.
Hypervisor interfering with VirtualBox.
ඊලගට බලන්න තියෙන්නේ Hypervisor එකට සම්බන්ද error එකක් ගැන. ඔයාට එන error message එකේ VT-x / Hyper-V කියලා තියෙනවා නම් ඒ කියන්නේ Hypervisor එක සම්බන්ද error එකක් කියලා. මේකෙදී වෙන්නේ Hypervisor එක සහ VirtualBox’s usage එක ඔයාගේ system එකේ resources එක්ක තරග කරන එක. දැන් අපි බලමු මේ අව්ල නැති කර ගන්න අපට කරන්න පුලුවන් දේවල් මොනවද කියලා.
- Enable Virtualization in BIOS/UEFI
ඔයාට ඒක ගැන වැඩි විස්තර මේ article එකෙන් බලා ගන්න පුලුවන්. (BIOS/UEFI එක්ක Virtualization වැඩ කරන්නේ කොහොමද?)
- Update VirtualBox
VirtualBox එකේ old version එකේදී Hypervision (Hyper-V) active වෙලාවට VirtualBox VM run වෙන්නේ නෑ. ඒක නිසා Docker වගේ Hyper-V එක්ක VirtualBox එකේ වැඩ කරන එක අපහසු උනා. ඉතිං ඒකට solution එකක් විදියට, Hyper-V වලට support කරන විදියට VirtualBox 6 එක update උනා. ඔයා තවම old version එක use කරනවා නම් new version එකට update වෙන්න.
- Restart Hypervisor
ඔයා දැනටමත් VirtualBox v6+ use කරන කෙනෙක් නම් ඊලගට ඔයාට කරන්න තියෙන්නේ Hypervisor එක Restart කරන එක. දැන් අපි බලමු කොහොමද ඒක කරන්නේ කියලා.
1. Run dialog box එක open කරන්න.
2. ඊලගට CMD කියලා type කරලා Ctrl + Shift + Enter press කරන්න. ඊට පස්සේ ඔයාට Command Prompt එක බලා ගන්න පුලුවන් වෙයි.
3. දැන් bcdedit /set hypervisorlaunchtype off මේ command එක type කරලා Enter press කරන්න.
4. ඔයාගේ device එකේ එක OS එකකට වඩා use කරනවා නම් ඔයා type කරන්න ඕනි මේ command එක,
bcdedit /set {current} hypervisorlaunchtype off
5. දැන් ඔයාගේ device එක Restart කරන්න.
6. දැන් ආයෙත් Command Prompt එක Open කරලා bcdedit /set hypervisorlaunchtype auto කියලා type කරන්න. ඊලගට ආයෙත් ඔයාගේ device එක Restart කරන්න.
- Disable Hypervisor Processes
හරි අපි කලින් කිව්වනේ VirtualBox 6 ට කලින් ආපු versions Hypervision එක්ක support කරන්නේ නෑ කියලා. මොකද Hyper-V එක virtualization resources වලින් ලොකු කොටසක් ගන්න නිසා. ඉතිං ඒකට කරන්න පුලුවන් එක solution එකක් තමයි Hypervisor Processes එක disable කරන එක. දැන් අපි බලමු ඒක කරන්නේ කොහොමද කියලා.
1. Run dialog box open කරලා optionalfeatures කියලා enter click කරන්න.
2. මේවා Search කරලා untick කරන්න.
- Hyper-V
- Containers
- Windows Hypervision Platform
- Windows Subsystem for Linux
3. ඊලග wizard එක Close කරලා Command Prompt එක open කරලා bcdedit /set hypervisorlaunchtype off කියලා command කරන්න.
4. දැන් ඔයාගේ PC එක Restart කරලා බලන්න.
- Disable Device Guard or Credential Guard
Device Guard එකයි Credential Guard එකයි තියෙන්නේ අපේ system එකට damage එකක් වෙන්න ආවොත්, ඒක වලක්වා ගන්න. මේ feature එක නිසාත් සමහර වෙලාවට ඔයාගේ system එකේ වැඩ කරගෙන යන්න අපහසු වෙනවා.
ඔයාට මුලින්ම කරන්න තියෙන්නේ Command Prompt එක open කරලා මේ විදියට command කරන එක.
mountvol X: /s
copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d “DebugTool” /application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path “\EFI\Microsoft\Boot\SecConfig.efi”
bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
mountvol X: /d
(Note: Replace X with an unused drive.)
දැන් බලමු Device Guard එකයි Credential Guard hardware readiness tool එකයි එක්ක ඔයාට මොනවද කරන්න තියෙන්නේ කියලා.
1. මුලින්ම ඔයාට කරන්න තියෙන්නේ Device Guard and Credential Guard hardware readiness tool එක download කරන එක.
2. ඊලගට PowerShell එක administrator විදියට open කරලා download කරපු file එකේ location එක navigate කරන්න ඕනි.
3. දැන් readiness tool එකේ version එක v3.6 විදියට replace කරන්න මේ command එක enter කරන්න.
DG_Readiness_Tool_v3.6.ps1 -Disable -AutoReboot
- Disable Memory Integrity
අපි කලින් කතා කරපු case එක වගේම Memory Integrity කියන්නේ E_FAIL (0x80004005) මේ error එකට බලපාන්න පුලුවන් තවත් හේතුවක් කිව්වොත් හරියටම හරි. දැන් අපි බලමු මේ අව්ල නැති කර ගන්නේ කොහොමද කියලා.
1. මුලින්ම ඔයා කරන්න ඕනි Win + I click කරලා Settings වලට යන එක.
2. ඊලගට ඔයාට කරන්න තියෙන්නේ Update & Security > Windows Security > Device security වලට යන එක.
3. දැන් Core isolation details වලට ගිහින්, Memory integrity off කරන්න.
4. ඊලගට Run command එකේ gpedit.msc කියලා enter කරන්න.
5. ඊට පස්සේ මේ විදියට navigate කරන්න.
Computer Configuration > Administrative Templates > System > Device Guard
6. දැන් Turn on Virtualization Based Security search කරලා double-click කරන්න.
7. දැන් Disabled කරලා Ok කරන්න.
ඔයා use කරන්නේ Windows වල Home Edition එක නම්, GPEDIT enable කරන්න මේ command එක command prompt window එකේ type කරන්න.
- FOR %F IN (“%SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~.mum”) DO ( DISM /Online /NoRestart /Add-Package:”%F”)
- FOR %F IN (“%SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~.mum”) DO (DISM /Online /NoRestart /Add-Package:”%F”)
Duplicate config values in the vbox file
ඔයාට “Duplicate config values’/CPUM/CMPXCHG16B’ and ‘/CPUM/IsaExts/CMPXCHG16B’ – please remove the former! “ මේ වගේ message එකක් බලා ගන්න හම්බුඋනොත් ඒකෙන් කියන්නේ Duplicate config error එකක් තියෙනවා කියලා. මේ අව්ල නැති කර ගන්න නම් මේ දේවල් ඔයා කරන්න් ඕනි.
1. මුලින්ම ඔයා කරන්න ඕනි Command Prompt එක Open කරන එක.
2. ඊලගට මේ commands enter කරන්න.
cd “%systemdrive%\Program Files\Oracle\VirtualBox”
VBoxManage.exe list vms
3. දැන් ඔයා බලන්න ඔයාට E_FAIL (0x80004005) error එක එන්නේ මොන VBOX machine එකෙන්ද කියලා.
4. ඊලගට මේ command එක enter කරන්න.
VBoxManage.exe setextradata “VBOX Machine” VBoxInternal/CPUM/CMPXCHG16B
මතක ඇතුව මේකේ “VBOX Machine” එකට කලින් step එකේදී ගත්ත VBOX machine එකේ name එක දාන්න.
5. දැන් ආයෙත් VirtualBox open කරලා E_FAIL (0x80004005) error එක එනවද කියලා බලන්න.
6. ආයෙත් ඒ error එක එනවා නම්, VirtualBox එක close කරලා Command Prompt එකේ මේ Command එක enter කරන්න.
VBoxManage.exe setextradata global VBoxInternal/CPUM/CMPXCHG16B
දැන් අපි බලමු මේ errors වලට කරන්න පුලුවන් දේවල් මොනවද කියලා.
(Bugs in VirtualBox builds, Incompatibility with Operating System, Missing VirtualBox driver, Interference by third-party applications, Bad DLL due to Graphics Driver, Improper Network Adapter configuration. )
Manually Run the Process
VM එකෙන් හරි VirtualBox එක iso file එකක් through run කරනකොට error එකක් එනවා නම් ඊලගට ඔයාට කරන්න තියෙන්නේ manually process එක run කරන එක.
Manually process එක run කරන්න නම් ඔයාට කරන්න තියෙන්නේ, file explorer එකෙන් VM folder එකට යන එක. VirtualBox එක iso file එකක් through run කරනවා වෙනුවට මේ process එකේදී ඔයාට කරන්න තියෙන්නේ ඔයාගේ OS තියෙන mount feature එක use කරලා virtual disk එකට mount කරන එක.
Discard the Session or Snapshot
VirtualBox එකේ updates හෝ improper shutdowns නිසා VM save states එකට සහ snapshots වලට හානි වෙන්න පුලුවන්. ඉතිං ඒකට solution එකක් විදියට ඔයාට save state එක හරි snapshot tree branch එක හරි discard කරන්න පුලුවන්.
Disable/Uninstall Interfering Parties
VirtualBox එකේ processes interfering එකට බදා කරන තවත් දේවල් ගොඩක් තියෙනවා. VirtualBox hardening logs නිසා මේ අව්ල එනවා කියලා සමහර අය කියනවා. ඉතිං ඒකට solution එකක් විදියට ඔයාට logs check කරන්න පුලුවන්. එහෙම නැත්නම් VirtualBox technical support කෙනෙක්ගේ help එක ගන්න පුලුවන්.
ඒ වගේම තමයි සමහර වෙලාවට IBM Security Trusteer Rapport & Cyclance Protect වගේ third-party antivirus programs නිසාත් මේ වගේ අව්ල් එන්න පුලුවන්.ඉතිං ඒ වගේ වෙලාවට third-party antivirus programs disable කරන්න හරි uninstall කරන්න හරි ඕනි.
හැබැයි සමහර users ලා කියනවා Driver Verifier run කරාම මේ error එක එනවා කියනවා. ඉතිං එහෙම වෙලාවට ඔයාට Command Prompt එකේ verifier /reset කියලා enter කරලා program එක disable කර ගන්න පුලුවන් වෙනවා.
Reinstall to Latest Version
VirtualBox එකේ old versions වල නම් ගොඩක් bugs තියෙනවා. ඉතිං ඒකට solution එකක් විදියට ඔයාට ඉක්මනට latest edition එකට update වෙන්න වෙනවා. හොදම වැඩේ තමයි old version එක uninstall කරලා අලුත් version එක install කරන එක. දැන් අපි බලමු ඒක කරන්නේ කොහොමද කියලා.
On Windows:
1. ExtPack එක එක්ක VirtualBox එකේ latest version download කරන්න.
2. System එකේ කලින් install කරලා තියෙන third-party antivirus uninstall කරන්න.
3. Control Panel > Programs and Features > Uninstall a program වලට ගිහින් virtual box application uninstall කරන්න.
4. දැන් step one එකේදී download කරපු file එකට යන්න.
5. Right-click කරලා Run as administrator select කරන්න.
6. දැන් Installation process එක පටන් ගනී.
7. Installation process එක එවර උනාම Start Oracle VM VirtualBox select කරලා finish කරන්න.
8. ඊලගට VirtualBox එකේ File > Preferences > Extensions select කරන්න.
9. දැන් orange arrow එකක් තියෙන icon එක click කරලා ExtPack select කරන්න.
On Linux:
1. ඔයා මුලින්ම කරන්න ඕනි terminal එක open කරලා මේ commands type කරන්න.
sudo apt-get update
sudo apt-get purge virtualbox
sudo apt-get purge virtualbox-ext-pack
sudo apt-get install virtualbox
sudo apt-get install virtualbox-ext-pack
දැන් VirtualBox එක Restart කරලා බලන්න 0x80004005 error එක එනවද කියලා.
Roll-back to Old Version
VirtualBox එකේ latest versions එක Windows 7 වගේ පරන OS වලට support කරන්නේ නෑ. ඒ වගේ වෙලාවට ඔයාලට VirtualBox එකේ earlier version වලට යන්න වෙනවා. VirtualBox download කරන්න කලින් ඒ version එකට එයාලා expect කරන system requirements ගැන අනිවාර්යෙන්ම හොයලා බලන්න.
Reset Network Adapters
ඊලගට අපට කතා කරන්න තියෙන්නේ Network Adapter එක සම්භන්ද ගටලු. Update එකකින් පස්සේ මේ වගේ ගටලු එන්න පුලුවන්. ඉතිං ඒකට solution එකක් විදියට ඔයාට Network Adapter එක reset කරන්න පුලුවන්. දැන් අපි බලමු ඒක කරන්නේ කොහොමද කියලා.
1. මුලින්ම VM එකට ගිහින් Settings click කරන්න.
2. ඊලගට Network වලට ගිහින් Enable Network Adapter untick කරන්න.
3. Network Adapter එක disabled කරලා තියෙනකොට VM එක start කරන්න.
4. VM එක හරියට close කරලා Network Adapter එක ආයෙත් enable කරන්න.
5. දැන් ආයෙත් VM එක open කරලා error එනවද බලන්න.
Network Adapter එක reset කරන process එක ඔයාට PowerShell එකේ මේ විදියට ලේසියෙන්ම කරන්න පුලුවන්.
- disable-netadapter -InterfaceDescription “VirtualBox*” -confirm:$false
- enable-netadapter -InterfaceDescription “VirtualBox*” -confirm:$false
Install VirtualBox Driver
VBoxDrv.inf කියන්නේ VirtualBox එකේ Driver එක. අපි VirtualBox එක install කරන්කොට මේ driver එකත් automatically අපේ system එකේ install වෙනවා. බැරි වෙලාවත් ඒ installation process එකේ අව්ලක් ආවොත් ඒක recover කර ගන්න විදිය දැන් අපි බලමු.
(මේකෙදී ඔයාට manually driver installer කරන්න වෙනවා.)
1. මුලින්ම ඔයා driver installer folder එකට යන්න.
2. Windows වල default installation එක ඔයාට මේ විදියට බලා ගන්න පුලුවන් වෙනවා.
C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv
3. දැන් VBocDrv.inf එක right click install කරන්න.
Update Graphics Drivers
VM එක invalid memory address එකකට access කරන්න හදනකොට තමයි Graphics Drivers වල අව්ල එන්නේ. මේක ගොඩක් වෙලාවට වෙන්නේ graphics-related DLL එක නිසා. ඉතිං මේකට solution එකක් විදියට ඔයාට graphics card driver update කරන්න වෙනවා. දැන් අපි බලමු ඒක කරන්නේ කොහොමද කියලා.
1. මුලින්ම ඔයා කරන්න ඕනි Run command එකේ devmgmt.msc කියලා enter කරන එක.
2. ඊලගට Display Adapters expand කරලා graphics device වල right-click කරන්න.
3. දැන් Update Driver select කරන්න.
4. ඊලගට Search automatically for drivers click කරන්න.
5. දැන් ඔයාගේ PC එක Restart කරන්න.
Repair System Corruption
DLL files Missing උනාම නැත්න්ම corrupted උනාමත් ඔයාට E_FAIL (0x80004005) error එක එන්න පුලුවන්. ඒක ගැන ඔයාට මේ Link එකෙන් දැන ගන්න පුලුවන්. (Corrupt වෙච්ච Windows Files Repair කරන්නේ කොහොමද?)
ඉතිං දැන් ඔයාලට E_FAIL (0x80004005) Code එක Fix කරන විදිය ගැන හොද idea එකක් එන්න ඇති. ඊලග article එකෙන් තවත් අලුත් දෙයක් එක්ක හම්බුවෙමු.