No, that isn't normal - it only takes about 45mins on mine.
Stop the program and open a Command Prompt (Admin) or Powershell (Admin) and enter these cmds -
chkdisk
That is a read only version but should report if there are any bad sectors on the HDD.
If that completes then enter these -
dism /online /cleanup-image /startcomponentcleanup
dism /online /cleanup-image /restorehealth
sfc /scannow
Enter exit to close the cmd window.
These will all take a little while to complete with the first two reporting completed successfully.
The sfc /scannow can either report no integrity violations or that it has repaired all corruption.
Try Windows Repair again after they complete.
If the chkdsk reports kbs in bad sectors then you will need to immediately create a system image in preparation for full failure.
Performing a chkdsk /r may buy you some time so the system will still work, but once sectors start to go bad, they can escalate quite quickly.
Let me know how you get on.