Vista runs many different tests in Startup Repair - so it's difficult to tell where it's hung up at.
You can locate the logfile in C:\Windows\System32\LogFiles\Srt\SrtTrail.txt
Here's a log I ran when my system wouldn't boot not long ago (note that the 0x0 error code means success):
Quote
Startup Repair diagnosis and repair log
---------------------------
Last successful boot time: 8/9/2008 4:34:15 PM (GMT)
Number of repair attempts: 1
Session details
---------------------------
System Disk = \Device\Harddisk0
Windows directory = E:\Windows
AutoChk Run = 0
Number of root causes = 1
Test Performed:
---------------------------
Name: Check for updates
Result: Completed successfully. Error code = 0x0
Time taken = 0 ms
Test Performed:
---------------------------
Name: System disk test
Result: Completed successfully. Error code = 0x0
Time taken = 0 ms
Test Performed:
---------------------------
Name: Disk failure diagnosis
Result: Completed successfully. Error code = 0x0
Time taken = 266 ms
Test Performed:
---------------------------
Name: Disk metadata test
Result: Completed successfully. Error code = 0x0
Time taken = 31 ms
Test Performed:
---------------------------
Name: Target OS test
Result: Completed successfully. Error code = 0x0
Time taken = 78 ms
Test Performed:
---------------------------
Name: Volume content check
Result: Completed successfully. Error code = 0x0
Time taken = 110 ms
Test Performed:
---------------------------
Name: Boot manager diagnosis
Result: Completed successfully. Error code = 0x0
Time taken = 31 ms
Test Performed:
---------------------------
Name: System boot log diagnosis
Result: Completed successfully. Error code = 0x0
Time taken = 0 ms
Test Performed:
---------------------------
Name: Event log diagnosis
Result: Completed successfully. Error code = 0x0
Time taken = 62 ms
Test Performed:
---------------------------
Name: Internal state check
Result: Completed successfully. Error code = 0x0
Time taken = 0 ms
Test Performed:
---------------------------
Name: Boot status test
Result: Completed successfully. Error code = 0x0
Time taken = 0 ms
Test Performed:
---------------------------
Name: Setup state check
Result: Completed successfully. Error code = 0x0
Time taken = 532 ms
Test Performed:
---------------------------
Name: Registry hives test
Result: Completed successfully. Error code = 0x0
Time taken = 2406 ms
Test Performed:
---------------------------
Name: Windows boot log diagnosis
Result: Completed successfully. Error code = 0x0
Time taken = 0 ms
Test Performed:
---------------------------
Name: Bugcheck analysis
Result: Completed successfully. Error code = 0x0
Time taken = 625 ms
Test Performed:
---------------------------
Name: Access control test
Result: Completed successfully. Error code = 0x0
Time taken = 8797 ms
Test Performed:
---------------------------
Name: File system test (chkdsk)
Result: Completed successfully. Error code = 0x0
Time taken = 0 ms
Test Performed:
---------------------------
Name: Software installation log diagnosis
Result: Completed successfully. Error code = 0x0
Time taken = 0 ms
Test Performed:
---------------------------
Name: Fallback diagnosis
Result: Completed successfully. Error code = 0x0
Time taken = 0 ms
Root cause found:
---------------------------
Unspecified changes to system configuration might have caused the problem.
Repair action: System files integrity check and repair
Result: Failed. Error code = 0x2
Time taken = 456172 ms
I'd suspect that it's doing chkdsk /r - and that it's having difficulties with it. Chkdsk /r can take a long time on a drive that's operating correctly - but not 24 hours. I'd suggest terminating the test and running a bootable hard drive diagnostic. These are usually available for free from the manufacturer of your hard drive.
I prefer the test from the manufacturer of the hard drive as it's been designed for that hard drive (and manufacturer's often insert extra diagnostic routines that only apply to their drives). In the event that you cannot locate the diagnostics for your drive, I'd suggest the Hitachi Drive Fitness Test (free) and, on the rare occasions when it won't work, the SeaGate SeaTools diagnostics.
Also, just FYI, I had a corrupted SD card connected to my system via a USB adapter (and USB booting was enabled). The corruption would lock the system up during the boot process. After getting frustrated over this, I removed all USB devices and the system was able to boot. I ran SFC.EXE /SCANNOW immediately afterwards and have been running OK for a week or two.