Crossflash Dell PERC H310 to LSI 9211-8i IT Mode Using Legacy (DOS) and UEFI Method (HBA Firmware + BIOS)

Update 30-Oct-2019: clarified that BIOS flashing is optional, added an error that can be encountered on Step 12 and a warning that can be encountered on Step 15. The Support Files zip file was also updated to include the UEFI Shell Binary file (bootx64.efi).

Update 18-Aug-2019: added mouse initialization error, page parameter, Exit Code error and P20 BIOS and FW zip file. A duplicate file was also removed from the Support Files zip file.

This procedure is a combination of using the Legacy (DOS) + UEFI methods to flash a PERC H310 to an LSI 9211-8i in IT mode.  This method will flash both the firmware and also the BIOS of the card, which many guides omit.

  1. Create a bootable USB flash drive using Rufus.
    1. Choose partition scheme: MBR for BIOS or UEFI
    2. Bootable disk using FreeDOS
  2. Download the latest zip file from LSI/Broadcom that has the BIOS and firmware for the 9211 HBA card.  The two files needed for this guide can be downloaded from here (these are version P20 which are the latest available at this time).  There are two files you need:
    1. Firmware (IT mode) file for 8i model, it will have file extension *.bin (typical file name 2118it.bin)
    2. BIOS file, it will have file extension *.rom (typical file name mptsas2.rom)
  3. Place these two files on the root of the bootable flash drive
  4. Also download and extract some support files to the root of this drive. These files are needed to prepare the card for updating. Download here.
  5. Install the HBA card in the system and boot from the flash drive using Legacy/DOS mode (not UEFI mode). This will get you into FreeDOS.
  6. Determine what the current SAS Address is of the card using the command below. Make a record of it because we will need to re-program this same address later.
    megacli.exe -AdpAllInfo -aAll -page 20

    Notes:

    1. the output of this command is several pages long. Use the parameter -page x where x is the number of lines to print per page
    2. a typical error after running this command is:
      DOS/32A warning (9004): mouse initialization failed
      however it can be safely ignored
    3. If after running the below command you get Exit Code: 0x01 along with no device information, then no H310 adapter was found.
  7. Now wipe the firmware of the card using this command:
    megarec.exe -writesbr 0 sbrempty.bin
  8. Followed by
    megarec.exe -cleanflash 0
  9. Once complete, reboot the system. However this time boot the system to your UEFI Shell (not the flash drive).
  10. At the UEFI command prompt, find out what device number has been assigned to your flash drive using this command
    map -b
  11. Then type the device number followed by a colon symbol to get to the root of your flash drive in UEFI mode. For example, if you determine your flash drive is fs0 then you type:
    fs0:
  12. This gets you to the root of the drive. Now it is time to flash a Dell firmware using this command. Say Yes if it asks if you want to flash.
    sas2flash.efi -o -f 6GBPSAS.FW

    Note:

    1. If you receive the following error, simply try the flash again
      Resetting Adapter … Adapter Reset Failed. Due to the error remaining commands will not be executed. Unable to Process Commands.
  13. Once complete it is time to program the SAS address using the following command. Replace the X with the values you recorded earlier.
    sas2flash_p19.efi -o -sasadd XXXXXXXXXXXXXXXX
  14. After it completes, reboot the system again to UEFI shell and get to the flash drive root as described previously.
  15. Now flash the firmware of the card to the latest 9211-8i firmware:
    sas2flash.efi -o -f 2118it.bin

    Note:

    1. If you receive the message below then choose yes.
      NVDATA Product ID and Vendor ID do not match. Would you like to flash anyway [y/n]?
  16. Once complete, you have the option to flash a new BIOS for the card. This is completely optional for a card running in IT mode since there are no disk management settings, however it may help with troubleshooting since it gives you diagnostic information about what devices are connected to the card during the boot process. If you skip this step then the card will not have a BIOS and your boot times should be reduced.
    sas2flash.efi -o -b mptsas2.rom
  17. Once complete, reboot and you should now have a card running in IT mode.
Posted in Uncategorized | Leave a comment

Unable to log in to Windows because “The Group Policy Client service failed the logon. Access is denied.”

When trying to log in to Windows (in this case Windows 7 using a domain account) you may receive the following error

This particular situation occurred after a reboot following the installation of the latest Windows updates.

There are several suggestions out there to solve this problem, some more drastic than others. The most common root cause seems to be a problem with a corrupt registry. Specifically, several guides have you log in to the system with a separate local administrator account and then check and modify registry settings located at these locations:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\gpsvc
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SVCHOST

In this case there were no problems with these registry settings, so a different solution was needed.

It was discovered that the user account had both a ntuser.man file and a ntuser.dat file, located in the root of the affected users profile folder (C:\Users\username).  Depending on the account type, there should only be one or the other.  It is most common to have a .dat rather than a .man which was true for this specific user account. The ntuser.man file was also very small compared to the ntuser.dat file.

The solution was to log in with a separate local administrator account and then move/rename the ntuser.man file while leaving the ntuser.dat file untouched.

That allowed the user to log in again with no loss of data or Windows settings.

Posted in Uncategorized | Leave a comment

How to Factory Wipe Settings and Data for Asus MeMo Pad

I could not find a reliable procedure for performing a factory reset / restore on these devices, so I have put one together. The official procedure from Asus did not work for me.

This has been tested specifically with the MeMo Pad 8 Model K011 (ME181C), but it should also work for the MeMo Pad 7 (ME176C).

Here are the steps:

  1. Power off the tablet
  2. Press and hold the volume up button. While holding it down, press and hold the power button.
  3. Release both when you see the Asus logo appear.
  4. The tablet should then boot into the Droidboot interface (shown below).
  5. Scroll down and execute Recovery.
  6. The tablet should then reboot into the recovery screen that has the robot tipped over with the message No Command (shown below).
  7. Now press and hold the volume down key. While still holding it, press and release the volume up key.  You can now release the volume down key.
  8. You should then be presented with the Android system recovery options that will allow you to do a factory reset.
  9. It takes a while so be patient. Once done simply choose the option for Reboot system now.
Posted in Uncategorized | Leave a comment

Start Menu Doesn’t Work After Windows 10 Fall Creators Update (Build 1709)

After installing this update you may find that you are no longer ble to launch your Start Menu. When clicking on the Windows logo button, it is animated but the Start Menu doesn’t appear.

Try the following:

  1. Press Control-Alt-Delete
  2. Launch Task Manager
  3. Click File-Run New Task
  4. Type control panel and press enter
  5. Choose User Accounts
  6. Click the option for Make changes to my account in PC settings
  7. If the window comes up but gets stuck with the gear icon, try right clicking on your Start Menu button a few times
  8. When the settings window appears, Choose Sign-in options, located on the left
  9. Find the option for Use my sign-in info to automatically finish setting up my device after an update or restart.  Having this option enabled seems to be the root cause of breaking the Start Menu
  10. Disable this option then reboot.
    Note: an alternative way of safely rebooting without a working Start Menu is to use the command line. Start a new task cmd using Task Manager in similar fashion like steps 1-4 above. When the command window appears, type the command: shutdown -r and press enter.
Posted in Uncategorized | Leave a comment

Upgrade PHP on CentOS (CentOS version 6 or 7)

Update 26-Feb-2020: See the updated version of this guide here: Upgrade to PHP 7 on CentOS 7 (or CentOS 6)

You may find that you need to upgrade PHP on your CentOS install in order to meet dependencies for an application. For example, a WordPress plugin:

Gmail SMTP plugin requires PHP 5.6 or higher. 
Please contact your web host to update your PHP version.

CentOS by nature maintains the same package version throughout the life cycle of its release, so for CentOS 7 you end up with PHP version 5.4 (e.g., 5.4.17).

The good news is that you can upgrade PHP using the IUS Community project repositories without breaking your CentOS install.

Here are the steps, which need to be run with sudo permissions:

  1. yum --enablerepo=extras install epel-release
  2. For CentOS 7: yum install https://centos7.iuscommunity.org/ius-release.rpm
    For CentOS 6: yum install https://centos6.iuscommunity.org/ius-release.rpm
  3. yum install yum-plugin-replace
  4. yum replace --replace-with php56u php

With the last step you may receive the following warning:

WARNING: Unable to resolve all providers ...
This may be normal depending on the package. Continue? [y/N]

For this procedure the warning is typical, so hit Yes

You will then be presented with a transaction summary as follows:

Transaction Summary ========================================
Install x Package(s) ....
Remove x Package(s) ... 
Is this ok [y/N]:

Verify that all of the packages being removed are being replaced with equivalent packages of the newer version. Then hit Yes.

Once complete, restart all services that use PHP or reboot the server.  Typically this is Apache, so to restart it issue the following command:

sudo apachectl restart
Posted in Uncategorized | Leave a comment

iOS 10 Device (iPhone iPad) Forgets Hidden Wireless Network

A particularly annoying issue where an iOS device will constantly forget about a hidden wireless network. The problem seem to start after upgrading it to iOS 10. In this case it was an iPhone 5.

Resetting the network settings would seem to work for a while but it would eventually occur again. Most often it would occur after power cycling the wireless access point or if the access point lost connection to the internet.  Unhiding the SSID would resolve it however that does not fix the root problem. Here are the steps to flush out the bad configuration in the device so that it no longer forgets:

  1. Connect to the hidden wireless network as usual
  2. Go to Settings -> Wi-Fi.  Click the info icon next to the name of the hidden network to which you are connected
  3. Choose Forget This Network
  4. Reboot the phone by holding the Home button and on/off button
  5. Navigate to Settings -> General -> Reset -> and choose Reset Network Settings
  6. The phone will automatically reboot
  7. Go to Settings -> Wi-Fi. Disable Ask to Join Networks
  8. Finally, reconnect to the hidden wireless network

Now you should no longer have the issue of the device randomly (or not so randomly) forgetting the hidden network.

Update: Eventually the device forgot the network again. The only thing that has been a permanent solution is to broadcast the SSID, such that the network is no longer hidden.

Posted in Uncategorized | Leave a comment

How to Grow RAID Array in OpenMediaVault After Upgrading All Existing Drives with Larger Drives

Scenario: You have an existing RAID array in OMV and you have replaced each drive one at a time with a larger drive. Now you wish to grow the array into the larger size but it turns out the GUI of OMV does not have that option. When you navigate to “Multiple Device” (RAID Management in older versions) and then click “Grow,” it comes up with an empty list of devices. This is expected since all of your drives are used in the array already. If you navigate to “Filesystem” and try to Grow, nothing appears to happen after you click Yes.

Fortunately there is a solution using the command line. To grow the array into the new larger size after all drives have been upgraded, access the console of OMV (e.g., via SSH) and issue the command:

 mdadm --grow /dev/mdX --size=max

where the letter X represents the number of your md device. The first md device is typically zero (i.e., md0).  If you are unsure, issue the command below to see a list of devices.

cat /proc/mdstat

After issuing the grow command, you should receive a confirmation immediately that the array has been resized. Something like this for an md0 device:

mdadm: component size of /dev/md0 has been set to [the new size in K]

You can confirm the change has taken place by navigating back to Multiple Device (or RAID Management) where you will then see the RAID is in a resync process.

Once the resync is complete, you may need to reboot the system.  Then go back to Multiple Device and click Grow and confirm to proceed.   The process will take some time, but you should slowly see the free space and total size increase on client devices that have mounted shares.

Posted in Uncategorized | Leave a comment

ESXi 6.5 Host Initiator Unable to Connect to OpenMediaVault 2.x Guest iSCSI Target

I ran into a problem when trying to have an OpenMediaVault 2.x Guest machine act as an iSCSI target for an ESXi 6.5 Host iSCSI initiator. The goal was to have OMV share a datastore for the ESXi host using the iSCSI protocol.

To create iSCSI targets on OMV, the easiest way is to install the available plugin (openmediavault-iscsitarget) from the web GUI. However a major limitation with this plugin is that you are not able to create fileio targets using the web GUI. In another post I detail how to get around that limitation but at this point we’ll assume you have successfully created a target (either fileio or blockio) on OMV and are now trying to get an ESXi host to discover and connect to it.

You may find that ESXi successfully discovers the OMV target but then fails to connect to it. I happened to be logged in to the console of the OMV guest at the time and saw several console error messages appear when ESXi was attempting to connect to the OMV target. They were similar to the below. You may need to reboot OMV and then try to rediscover the target in ESXi in order to reproduce them.

Message from syslogd
kernel:[] invalid opcode: 0000 [#1] SMP
Message from syslogd
kernel:[] Stack:
Message from syslogd
kernel:[] Call Trace:

To flush the errors out I ended up having to reboot the OMV guest machine. The root cause appears to be a bugged version of iscsitarget that is installed from the OMV repositories when running the Linux 3.2 kernel. The solution is to install a backports kernel for OMV and then install updated iscsitarget packages that the OMV maintainers have made available.

The steps:

  1. Back up / make note of any iSCSI initiator settings in ESXi
  2. Remove the iSCSI configuration from the ESXi host
  3. Reboot OMV
  4. Back up / make note of any iSCSI target configuration settings you have configured for OMV
  5. Uninstall the iSCSI plugin (openmediavault-iscsitarget) from OMV using the web GUI
  6. Reboot OMV
  7. Log in to the OMV console
  8. Run several commands from the OMV console to fully remove and flush out the iSCSI configuration. One or more of these may not be necessary depending on your configuration:
    apt-get purge openmediavault-iscsitarget
    apt-get purge iscsitarget
    apt-get purge iscsitarget-dkms
    apt-get autoremove
    apt-get autoclean
  9. Install the OMV-Extras.org Plugin. This has to be downloaded and installed manually since it is not available by default within the web GUI. The official guide:
    http://forum.openmediavault.org/index.php/Thread/5549-OMV-Extras-org-Plugin/
  10. Navigate to the plugin configuration page in the web GUI and confirm that the OMV-Extras.org main repository is enabled.
  11. Install the 3.16 backports kernel.  At this point I configured it to be the default for OMV. The official guide:
    http://forum.openmediavault.org/index.php/Thread/8584-Install-Backports-Kernel/
  12. Reboot so that you are running 3.16 kernel
  13. Now reinstall the openmediavault-iscsitarget plugin. With the 3.16 kernel running, the plugin will automatically use the newer packages of iscsitarget available from the OMV-Extras.org repository (noted below for reference only).
    http://omv-extras.org/debian/pool/main/i/iscsitarget/
  14. At this point you should then be able to configure the iSCSI target on OMV and have ESXi successfully connect to it.
Posted in Uncategorized | Leave a comment

How to Utilize iSCSI fileio with OpenMediaVault 2.x

OMV (version 2.x) has an iscsitarget plugin available (openmediavault-iscsitarget), however the web interface only supports BlockIO type of targets and I was looking to implement FileIO.

After installing the plugin, it is possible to manually configure the OMV plugin for a fileio target using the  console by following the steps below. I ran into trouble when trying to access this target with ESXi which I cover in a separate article. If you are trying to access an iSCSI target with Microsoft Windows as an initiator, this method may work for you.

  1. Install openmediavault-iscsitarget plugin
  2. Enable the plugin in the web interface and confirm that it is running
  3. Access the console (locally, via ssh, etc.)
  4. Create an image file to hold your data (LUN). For OMV, Shared Folders are located at
    /media/your-volume-uuid/shared-folder-name
    . For example, to create a 1TB “thin” image using dd and the count parameter:
    dd if=/dev/zero of=/path/to/your/thinvolume.img bs=1M seek=1048576 count=0
  5. Edit the IET config file using the command:
    nano /etc/iet/ietd.conf
  6. In this configuration file you will need to add your target information. Add the following lines to the bottom of this file, modifying it as appropriate for your configuration.
    Target iqn.yyyy-mm.com.example:hostname.Target-1
            IncomingUser username password
            OutgoingUser
            Lun 0 Path=/path/to/your/thinvolume.img,Type=fileio
            Alias LUN1
  7. Restart iscsi-target with this console command
    /etc/init.d/iscsitarget restart
  8. Then use this command to confirm it is running
    /etc/init.d/iscsitarget status
  9. Then try to connect to the ISCSI target running OMV either by IP address or by IQN name.
Posted in Uncategorized | 1 Comment

Bind iSCSI to a Single Network Card on OpenMediaVault

If you have multiple network cards for OMV (such as using one for a dedicated storage network), you may be looking to force OMV to assign all iSCSI traffic to one network card. A word of caution – if you are using the openmediavault-iscsitarget plugin, then following these steps may break the web interface for this plugin when upgrading or removing the plugin, since OMV will complain about this file having been modified.  It is possible to run iscsitarget without the plugin (which is recommended if you are looking to set up a filetypeio configuration), and I cover how to do that in another post.

To bind all iSCSI traffic (IET) to a single network card:

  1. Access the console
  2. Edit the configuration file for iscsitarget:
    nano /etc/default/iscsitarget
  3. Find the options line:
    ISCSITARGET_OPTIONS=””
    and change it to contain your IP address as follows (NOTE: you must use a double dash):
    ISCSITARGET_OPTIONS=”–address x.x.x.x″
    where x.x.x.x is the IP address of the network card in OMV corresponding to your dedicated storage network.
  4. Restart iscsitarget
    /etc/init.d/iscsitarget restart
Posted in Uncategorized | Leave a comment