Jul 18, 2024

Windows : DISM Error "0x800f081f"

Fixing the DISM Error "0x800f081f". Depending on what you are trying to achieve, in my case is the failure of installing .NET Framework 3.5 in Windows Server 2012 R2 Std 64-bit.

The error message :


Error: 0x800f081f

The source files could not be found.
Use the "Source" option to specify the location of the files that are required to restore the feature. For more information on specifying a source location, see http://go.microsoft.com/fwlink/?LinkId=243077.

The DISM log file can be found at C:\Windows\Logs\DISM\dism.log



1. Check the Windows Protected files scan.

sfc /scannow

Results with error :


Beginning system scan. This process will take some time.

Beginning verification phase of the system scan.
Verification 100% complete.

Windows Resource Protection found corrupt files but was unable to fix some of them. Details are included in the CBS.Log windir\Logs\CBS\CBS.log. For example C:\Windows\Logs\CBS\CBS.log. Note that logging is currently not supported in offline servicing scenarios.



2. Scan the image with dism.

dism /online /cleanup-image /scanhealth

Results with error :


Deployment Image Servicing and Management tool
Version: 6.3.9600.19408

Image Version: 6.3.9600.19397

[==============================100.0%============================]

Error: 0x800f081f

The source files could not be found. Use the "Source" option to specify the location of the files that are required to restore the feature. For more information on specifying a source location, see http://go.microsoft.com/fwlink/?LinkId=243077.

The DISM log file can be found at C:\Windows\Logs\DISM\dism.log



3. Repairing the files.

dism /online /cleanup-image /restorehealth /source:D:\sources\install.wim /limitaccess


4. Once completed, restart the computer and proceed to install the .NET Framework 3.5

dism /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess


5. Once done, restart the computer again and the new features is already installed.


!!!HAPPY COMPUTING !!!


Windows 11 : Classic Context (Right-Click) Menu

No idea what Microsoft is thinking when they designed the Windows 11 OS, the additional "clicks" required to just access the "Context (Right-Click) Menu" is so inconvenience and troublesome to Users.

To resolve this, a simple registry modification is required :-

1. Open --> regedit.exe

2. Browse --> HKEY_CURRENT_USER\Software\Classes\CLSID

3. Create a new "Key" --> {86ca1aa0-34aa-4e8b-a509-50c905bae2a2}

4. Then create a "Sub" key under the newly created key --> InprocServer32

5. Under the "InprocServer32" key, modify the string value of --> (Default) = [Blank]

Before :-

After :-



6. Once done, close all applications and restart the computer.

The old / classic context menu is now available automatically.


!!! HAPPY COMPUTING !!!

Jul 2, 2024

Proxmox : Delete Existing HDD with Data

Sometimes we just added or swapped a faulty HDD in Proxmox, but the data that resides in that HDD is preventing Proxmox from using it.

This also happens if the HDD was previously used by another Proxmox VE server, as data inside the HDD already marked/flag with that Proxmox server.

To make use of that HDD, we need to first clear the flag.

1. Open --> Shell


2. Run the disk manager.

fdisk /dev/sda

* Assuming the device you wanted to remove the partitions is [sda].


3. It will display a list of available options, press the corresponding number (eg. Delete --> D).


4. To Save and Exit, press --> W


5. Now to remove the flags.

sgdisk --zap-all /dev/sda


6. Reboot the host server.


7. Login back Promox VE WebUI, goto --> Node --> Disk.


8. Select the HDD and click --> Wipe Disk button.


9. Then click --> Initialize GPT button.


10. Now the HDD is ready for use.



!!! HAPPY COMPUTING !!!

Jul 1, 2024

Proxmox : Let's Encrypt SSL Certificate

How to install the FREE Let's Encrypt SSL Certificate for Proxmox VE host.

Pre-requisites.
1. Ensure that your router or firewall have port forwarding to the Proxmox VE server with the following ports :-

        a) 80/tcp
        b) 443/tcp
        c) 8006/tcp

2. You also need a valid or working email account, any free email account will work. The purpose of the email is for Let's Encrypt to send you email notification for the renewal of the SSL certificate after 90 days.


Let's Get Started.

1. Login to your Proxmox server, and select the primary host/node.

2. Browse to --> System --> Certificates.

3. Click --> Add ACME Account.

4. Fill-in the required information :-

        a) Account Name: [Any valid Name will do, such as "demouser"]
        b) E-Mail: [must be a valid email address]

5. Next, click --> Add.

        a) Challenge Type: HTTP
        b) Domain: [a valid Domain name or Dynamic Domain Name]

6. Then, click --> Order Certificates Now.

7. Once all done, close all browsers.

8. Open back the browser but this time use the new domain URL with "HTTPS" protocol, and you should now be able to see the new certificates was installed and active.


!!! HAPPY COMPUTING !!!

Edit : 3-Jul-2024 : I've noticed that after installing the SSL Certificate, any new VM creation will caused the installation to failed. Unsure what is the problems, maybe VLAN issue ?

But after removing the SSL Certificate & restarted the Host server, everything seems to be working back to normal.





Jun 27, 2024

Proxmox : PCIe Passthrough

How to passthrough a PCIe or On-Board device/controller in Proxmox VE v.8.2.4.

At times you might want to passthrough certain devices or controller to a VM Guest for full access and control. This can be a GPU, RAID Controller, NIC etc. This is very useful in scenario such as testing a NAS (TrueNAS).

Pre-requisites :-

1. System CPU must support IOMMU (I/O Memory Management Unit) interrupt remapping. Usually this is called Intel VT-d or AMD-Vi or similar names. Most newer Mainboard and CPU already have such features.

2. This passthrough methods means the entire device or controller is no longer in use by Proxmox VE itself and only manage by the VM Guest. This means you cannot passthrough a controller where the "Boot-Pool" is connected. It must be a separate controller or device.


Scenario :-

My test system or home lab system is a HP Z800 WorkStation series with the following hardware configurations, if your system is newer than mine then most probably it will works too :-

  • Dual Intel Xeon X5660 2.80Ghz, 6-Cores, 12-Threads, 12MB-Cache.
  • 96GB DDR3 1333Mhz ECC RAM.
  • Intel 5520 Chipset.
  • On-board Intel Matrix 6-ports SATA/RAID Controller.
  • On-board LSI 1068E 8-ports SAS/SATA Controller.
  • LSI 9212-4i SAS/SATA 4-ports PCIe Controller.

The "LSI 9212-4i SAS/SATA 4-ports PCIe Controller" is where Proxmox VE is installed, thus I cannot passthrough this controller.


Let's Get Started :-

1. Login to the Proxmox VE's WebUI.


2. Select the Node, in this case I have only a single node.


3. Open --> Shell


4. Verify that your system have IOMMU enabled.

 dmesg | grep -e DMAR -e IOMMU -e AMD-Vi

The results should shows "DMAR: IOMMU enabled" OR "DMAR: Intel(R) Virtualization Technology for Directed I/O". If either of these is missing then you need to check your BIOS/UEFI whether those virtualization technology are enabled.


5. Edit the "Kernel" file.

nano /etc/kernel/cmdline

Add the following line to the file.

root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on

If your CPU is and AMD type, then add "amd_iommu=on" to it.


6. Next is to edit the "Modules" file.

nano /etc/modules

Add the following into the file.

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd


7. Now we also need to edit the "GRUB" file.

nano /etc/default/grub

Look for the following line and append the line as shown.

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

If your CPU is and AMD type, then add "amd_iommu=on" to it.


8. Once all done, we need to refresh the "Proxmox" boot.

proxmox-boot-tool refresh


9. Update the "initfamfs" also.

update-initramfs -u -k all


10. Next is to update "GRUB" also.

update-grub


11. Finally, we need to REBOOT the Proxmox VE host server.


12. After reboot, verify the "IOMMU" configuration.

dmesg | grep -e DMAR -e IOMMU -e AMD-Vi

Results :-
DMAR: IOMMU enabled OR DMAR: Intel(R) Virtualization Technology for Directed I/O


13. Verify "vfio" configuration.

lsmod | grep vfio

Results :-
vfio_pci          49152    0
vfio_virqfd          16384    1 vfio_pci
irqbypass                  16384    2 vfio_pci,kvm
vfio_iommu_type1   32768    0
vfio                           32768    2 vfio_iommu_type1,vfio_pci


14. Verify "Interrupt Remapping" configuration.

dmesg | grep 'remapping'

Results :-
AMD-Vi: Interrupt remapping enabled OR DMAR-IR: Enabled IRQ remapping in 2xapic mode (only for older CPU model)

If you encounter an error message on the remapping interrupts, type the following command and reboot the Proxmox server again.

echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf



15. Now you can create a VM and passthrough a PCIe device to that VM. Take note you need to ensure the "Machine = q35" else it will not work.

Also note that the device must not be in the same IOMMU Group, if the device is in the same group of another device then high chances it will not work or the entire group will also be passthrough to the VM.


For more information :-
!!! HAPPY COMPUTING !!!


Jun 22, 2024

HP Z800 WorkStation : Disabled Option ROM Boot

This method is only required when you have added or upgraded with a SAS/SATA Controller (eg. LSI 9212-4i PCIe).

If this option is not disabled, you will get the following error :-

 110-Out of memory space for option ROMs

This is because the BIOS was not able to decide which Boot Controller it should use thus causing system conflict during boot.

As recommended by HP, to solve this problems is to disable the option ROMs of the integrated Intel Matrix Storage Controller or the LSI 1068E SAS/SATA Controller.

1. During the System Boot, Press --> [F10] key to go into "Setup Mode".

2. Goto --> Advanced menu.

3. Select --> Device Options.


4. Look for either of these and "Disable" accordingly :-

    4.1 SAS Option ROM Download.
    4.2 SATA RAID Option ROM Download.


5. Next is to press --> [F10] key to accept the configuration changes.

6. Proceed to "Save & Exit" the BIOS and the system will reboot.

7. Upon reboot, the error will have been resolved and the newly added LSI 9212-4i PCIe Controller will now be detected along with its connected SSD/HDD.


!!! HAPPY COMPUTING !!!

May 6, 2024

Ubuntu : NFS Server

 How to install Ubuntu NFS Server and basic configuration.

1. Install NFS Apps.

sudo apt install nfs-kernel-server -y


2. Create NFS shared folder.

sudo mkdir /var/nfs/pve -p


3. Grant Ownership to newly created folder.

sudo chown -R nobody:nogroup /var/nfs/pve


4. Grant Permissions to newly created folder too.

sudo chmod 777 /var/nfs/pve


5. Edit NFS configurations.

sudo nano /etc/exports

Add or modify the following lines according to your needs:

/var/nfs/pve [IP Address/CIDR](rw,sync,no_subtree_check,no_root_squash)
example : /var/nfs/pve 192.168.0/24(rw,sync,no_subtree_check,no_root_squash)


6. Restart NFS service to take effects.

sudo systemctl restart nfs-kernel-server


!!! HAPPY COMPUTING !!!