[RESOLVED] Illegal OpCode required post

  • Be sure to checkout “Tips & Tricks”
    Dear Guest Visitor → Once you register and log-in please checkout the “Tips & Tricks” page for some very handy tips!

    /Steve.
  • BootAble – FreeDOS boot testing freeware

    To obtain direct, low-level access to a system's mass storage drives, SpinRite runs under a GRC-customized version of FreeDOS which has been modified to add compatibility with all file systems. In order to run SpinRite it must first be possible to boot FreeDOS.

    GRC's “BootAble” freeware allows anyone to easily create BIOS-bootable media in order to workout and confirm the details of getting a machine to boot FreeDOS through a BIOS. Once the means of doing that has been determined, the media created by SpinRite can be booted and run in the same way.

    The participants here, who have taken the time to share their knowledge and experience, their successes and some frustrations with booting their computers into FreeDOS, have created a valuable knowledgebase which will benefit everyone who follows.

    You may click on the image to the right to obtain your own copy of BootAble. Then use the knowledge and experience documented here to boot your computer(s) into FreeDOS. And please do not hesitate to ask questions – nowhere else can better answers be found.

    (You may permanently close this reminder with the 'X' in the upper right.)

Criteria9446

New member
Apr 18, 2024
3
0
Running SpinRite on a "broken" Windows OS. It is connected to a computer via external USB drive cradle. My OS is Linux. The damaged drive's LEDs flash and flash. Linux cannot mount the drive.
Running SR it finds the BIOS only of a 4T drive. Running SR on the BIOS returns a screen about illegal opcode and report this.

Please tell me what to do.
 
Are you using SpinRite 6.1?
Also, I recommend connecting the drive via SATA if at all possible.
 
Using 6.1. I’m new here I was under the impression that with SR 6+ that usb was working. Please inform. I can use sata but how does that correct “illegal opcode”
 
The damaged drive's LEDs flash and flash
You mean when you would otherwise consider the drive idle it's showing some activity? If so, the drive is probably beyond recovery by any means other than replacing the board on it (and maybe even that.)

As for the illegal opcode, you neglected to mention the specific specs of your PC. If it's really old it may not meet the specs of SpinRite 6.1. If you're not running SpinRite 6.1, it may be a known issue and you should upgrade.
 
Using 6.1. I’m new here I was under the impression that with SR 6+ that usb was working. Please inform. I can use sata but how does that correct “illegal opcode”
SR 6.1 has native drivers for AHCI/SATA and IDE that bypass the BIOS. USB access is through the system BIOS, and many systems have somewhat crappy BIOS support of USB drives. Some systems work fine, some have problems with drives over 2.2 TB, some have problems over 4 TB.

Access via the native drivers generally works better.
 
Running SpinRite on a "broken" Windows OS. It is connected to a computer via external USB drive cradle. My OS is Linux. The damaged drive's LEDs flash and flash. Linux cannot mount the drive.
Running SR it finds the BIOS only of a 4T drive. Running SR on the BIOS returns a screen about illegal opcode and report this.

Please tell me what to do.
As you're a Linux user, dd_rescue and ddrescue can recover data from a defective drive. I've used both at different times on my FreeBSD systems -- no Windows or MSDOS here.

An illegal instruction in this case could be due to various reasons,

1. Your "broken" Windows may have failed to load the spinrite binary correctly resulting in the error, OR
2. The drive's PCB or firmware may be damaged resulting in data structures returned by the drive being interpreted by spinrite incorrectly, resulting in a sequence of events that end up with an illegal instruction, i.e. branch to never-never-land, OR
4. Your copy of spinrite may be corrupted.

But, the above aside, I'm not convinced you have a bad drive. You haven't given us enough information to make that determination.

Under Linux can you try,

dd if=/dev/THE_BORKED_DISK of=/dev/null count=100

You should see something like a count of 512 bytes records in and out. If you see it print 100 records in and out, the drive is ok but the filesystem is likely corrupted.

If dd can read the disk, you can try fsck to fix any filesystem errors. If that fails to fix them you may need to bite the bullet and reinitialize the disk at the cost of losing all the data on it. And no, there is no way around this.

Tell us more. I'm not convinced of anything yet. What have you tried? How does it fail? Are there any messages about the disk in /var/log/messages? Does dmesg show any relevant kernel messages? There's not enough information in your post to suggest or not suggest a hardware, software, or filesystem problem.
 
Last edited:
To take the least amount of your time, please stop any further additions to this post. The drive cradle I used was likely 10 years old and would not mount a 4T drive. Installing the 4T onto the SATA motherboard, SpinRite ran, found the device and noted that it would take 410 hours for recovery. I'm declaring the drive dead.

This Forum's support has been outstanding. THANK YOU ALL. And thanks, Steve, for SR, Shields Up!. I purchased my first SR in 1989.
 
... Running SpinRite on a "broken" Windows OS. It is connected to a computer via external USB drive cradle. My OS is Linux. The damaged drive's LEDs flash and flash. Linux cannot mount the drive. Running SR it finds the BIOS only of a 4T drive. Running SR on the BIOS returns a screen about illegal opcode and report this. Please tell me what to do ... The drive cradle I used was likely 10 years old and would not mount a 4T drive. Installing the 4T onto the SATA motherboard, SpinRite ran, found the device and noted that it would take 410 hours for recovery ...

Please share a screen grab, cell phone image, digital camera, cropped and resized to an attachment smaller than 512 KB or provide a link to an image share site to see an uploaded image, or even hand-transcription, at least the MAJOR error code - because the error should NEVER HAPPEN. Can you duplicate it?

- - - - -

Even when attached SATA, DynaStat default takes 5 minutes per sector to try to recover.

If there's no need for data recovery, then to test a drive and NOT care about the contents, try:

SPINRITE LEVEL 2 DYNASTAT 0 NOVERIFY​
or
SPINRITE LEVEL 3 DYNASTAT 0 NOVERIFY​

I run:

SPINRITE LEVEL 5 DYNASTAT 0 NOVERIFY​

... all the time.

If the hard-to-read spots get reallocated, and quickly by not trying to recover their data, then the drive may settle down and behave normally afterwards.

Let us know.

.
 
Last edited:
To take the least amount of your time, please stop any further additions to this post. The drive cradle I used was likely 10 years old and would not mount a 4T drive. Installing the 4T onto the SATA motherboard, SpinRite ran, found the device and noted that it would take 410 hours for recovery. I'm declaring the drive dead.

This Forum's support has been outstanding. THANK YOU ALL. And thanks, Steve, for SR, Shields Up!. I purchased my first SR in 1989.
Could be weak read/write head. I've had that a few times. With 18 spinning drives and SSDs here I replace a drive or two on average every one to two years. Bad sectors that move around are likely caused by a bad read/write head. I use FreeBSD's geom_mirror and ZFS mirrors so, data loss, except for single drive (or SSD) laptops, is rare.