Category Archives: Windows

Preparatory Steps for Migrating 32-bit Microsoft Access Application to Microsoft SQL Server 2019 Express Backend

Something I had to do recently, so notes follow.

  1. Install Microsoft SQL Server 2019 Express.
  2. Install 32-bit version of Microsoft Access Database Engine 2016 Redistributable (if you are using older office, use 2010 version of database engine redistributable). If you are getting an error, that Office 16 Click-to-Run Extensibility Component 64-bit Registration prevents 32-bit Office installation – follow these steps.
  3. Install 32-bit version of Microsoft SQL Server Migration Assistant for Access.
  4. Install SQL Server Management Studio.
  5. Create a new database and add users using SQL Server Management Studio.
  6. Run Microsoft SQL Server Migration Assistant for Access, do a migration (do not migrate queries) and relink tables to use a new SQL Server database.
  7. Note the errors in converting tables.
  8. And the hard part: fix your Access frontend.

Prevent hard disk drive from sleeping/spinning down/power saving

Modern hard drives have this annoying power saving feature of spinning down when disk is not in use for a couple of minutes. This often results in a few seconds pause when accessing files, game freezing until disk spins up and so on.

To fix it, first thing you wanna check is a setting Turn off hard disk after in advanced power options (Fig. 1).

Fig. 1 Advanced power settings

Make sure it is set to 0. After saving settings, give it a go – if it helps, then great, problem solved. However usually this is not enough, because modern HDD’s have hardware level power saving features which ignore this Windows setting. My go-to tool to prevent drives from sleeping is CrystalDiskInfo (just get Standard edition). Upon installing it, select Function -> Advanced Feature -> AAM/APM Control from top bar menu, select your hard drive(s) and click on Disable under Automatic Acoustic Management (AAM) and Advanced Power Management (APM) sections (if applicable) (Fig. 2).

Fig. 2 AAM/APM Control

Then check option Function -> Advanced Feature  -> Auto AAM/APM Adapation. Lastly check Function -> Startup to make CrystalDiskInfo run on Windows logon (Fig. 3).

Fig 3. Menu

Raspberry Pi NFS server and Windows client


Microsoft supplied NFS client is available only in the Enterprise and Ultimate Windows editions. In this article I’ll explain how to setup and run NFS server on the Raspberry Pi 3 computer running Raspbian operating system and connect to it from Windows 10 Home client (everything should work with other Windows versions and editions).

Raspberry Pi server


Mounting disc

Connect disc to the Raspberry Pi and run command fdisk -l. Check the name your drive got:


Create mounting point:

sudo mkdir /media/transcend

Connected drive is NTFS formatted, so we make sure that NTFS read – write driver is installed:

sudo apt-get update

sudo apt-get install ntfs-3g

Add this entry to the /etc/fstab file:

Restart Raspberry Pi and create a new folder where you’ll keep your NFS share:

mkdir /media/transcend/NFS

Setting up NFS server


sudo apt-get install nfs-common nfs-server

Add this entry to your /etc/exports file:

exports means that NFS server will accept connections from local IP addresses in range of – Option insecure is added because otherwise Windows clients can’t connect.

Windows client

Download NFS Windows client binaries from here.

Extract them and follow these steps:

  1. Install (if not installed) vcredist*.exe libraries.
  2. Double click nfs41_driver.cer file, select Install Certificate and put it in Trusted Root Certification Authorities store.
  3. Open cmd.exe as administrator.
  4. Run install.bat file.
  5. Copy config files:
    1. mkdir C:\etc
    2. copy etc_netconfig C:\etc\netconfig
    3. copy ms-nfs41-idmap.conf C:\etc\
  6. Allow windows to load test-signed drivers:
    bcdedit /set testsigning on
  7. Restart your PC.
  8. Disable the DFS client:
    1. Run regedit and navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Mup
    2. Add DWORD value named DisableDfs with value 1.
    1. If there is none, add DNS suffix: dns_suffix
    2. Reboot your PC.
  9. Test NFS client by running:
    nfsd_debug.exe --noldap --uid 1000 --gid 1000 -d 3
  10. If client didn’t crash, open other command window and mount NFS share as Z drive:
    nfs_mount.exe Z:\media\transcend\NFS

    where is Raspberry Pi IP address.

It works:


If trying to mount NFS share you are getting similar error:


but NFS server is running and restarting it

sudo /etc/init.d/nfs-kernel-server restart

fixes the problem, it’s possible that nfs-kernel-server is starting earlier than external drive is mounted. To fix this you can delay nfs-kernel-server starting for, say 10 seconds, by editing /etc/init.d/nfs-kernel-server file and adding sleep 10 line after start section:


Running and mounting automatically

If you made sure that everything is running, run command line as administrator, return to extracted NFS client folder and install NFS client as a service:

nfsd.exe -install

Then run services.msc, find pnfs client entry and change its startup type to automatic:


To auto-mount NFS share, run Task Scheduler tool, in the left pane select Task Scheduler Library and create a new task by clicking Create Task in the right pane. Give your task a name, in the Triggers tab create a trigger which will run on system startup with 30 seconds delay, in the Actions tab create Start a program action, which will point to a script with similar command:

C:\Users\User\Desktop\ms-nfs41-client-x64\nfs_mount.exe Z:\media\transcend\NFS

In the Conditions tab remove the check from start the task only if computer is on AC power.


Press OK.

Next time you restart your Windows PC, NFS client will run and mount NFS share automatically.


  1. Raspberry Pi: How to Create an NFS Server
  2. NFSv4.1 Client for Windows
  3. NFSv4.1 Client for Windows (Mailing list)
  4. nfs-kernel-server starts too early