HELP IBM 528 BYTE CONVERT TO 512

Hello, I have had these disks for 4 years and I am trying to solve this damn problem. Here I will write all the methods I have tried and have been tried by my friends, I hope this damn situation will be solved one day.
4 years ago I bought cheap IBM disks, 3.8, 7.6 and 15.3 TB, but didnt know they were 528 byte. (Footnote: We did not put firmware on the disks because I could never find the right firmware.)

Anyhow All the methods we tried

setblocksize (tried didnt work)

sedutil (tried didnt work)
sudo sg_format --format -v --size=4096 (I tried, it didn’t work)
sg_format -F -F -F (I tried, it didn’t work)

A friend’s comment on my post is very important, please read it.
Oh hey, I have this exact same drive, and exact same issue! I haven’t been able to solve this yet, but maybe putting what I’ve tried to do on the internet might help someone actually solve it? If they do, I really hope they post it in a public place.

This SSD really is a piece of work. It’s a Seagate Nytro 3131 Read Intensive 7.68TB SED SSD that’s been rebranded to an IBM 3.84TB SED SSD. Not only is the firmware modified to show all the fancy IBM stuff, but the drive size has been cleaved in half for whatever reason (my current guess is so they could sell 3.84TB drives when the real ones ran out of stock?) and it being an SED absolutely doesn’t help.

What I tried on Ubuntu 22.04 running on an IBM Slicestor 2448 chassis (intel x86, probably just rebranded SuperMicro?): While sg_format with --size=528 works, or at least doesn’t error, other sizes (like 512, 4096, and even 4224) will fail with the Invalid field in parameter list error I’ve grown to despise. I even ended up going through the SCSI command spec (the SeaGate
one) to figure out if sg_format was sending incorrect commands, but even my manual attempts via sg_raw ran into that error. I’m going to guess that IBM’s custom firmware doesn’t follow the spec when you try to change the block size, and they have custom data fields that must be provided. Or perhaps it’s actually the right format, but IBM is having the drive throw a bogus error because proprietary reasons.

echo -n -e “\x00\x00\x00\x00\x01\x00\x00\x10\x00\x00\x00\x03\x7e\x3e\x92\xb0\x00\x00\x00\x00\x00\x00\x02\x00” | sg_raw --cmdset=1 --send=24 /dev/sg2 55 11 00 00 00 00 00 00 18 00

This was the command I have in my notes, I think this is the correct one? It’s been a bit since I’ve worked on this. I do recall that using \x02\x10 (528) instead of \x02\x00 (512) worked, which aligns with sg_format with --size=528 working but --size=512 not.

I should probably mention that I’m not new to reformatting block sizes. The previous IBM drives I’ve gotten in with non-512 block sizes have all formatted fine to 512 via sg_format, but IBM-branded SSD’s, especially the SED ones, reject being converted. All of the IBM HDD’s I’ve gotten have converted fine, and even some SSD’s (though not SED SSD’s).

sedutil-cli can handle the SED portion of the drive fine. The standard PSID reset works fine, I can take ownership of the drive and the mess with the locking ranges, all that works as standard. Trying to do any of the sg_format stuff while the drive is locked will correctly throw errors that point to the drive being locked. Trying to do the sg_format stuff with the drive freshly PSID-reset or unlocked will result in the Invalid field in parameter list crap, so it doesn’t look like the SED stuff is actually getting in the way. SeaChest, Seagates own utility for this stuff, doesn’t seem to be able to handle the drive either. While SeaChest Format seems to recognize the drive, displaying some information and showing that it should be able to do 512, 520, and 528 sector sizes, all of my attempts to use SeaChest Format to reformat the drive to 512 have failed, seemingly running into the same Invalid field in parameter list error from the sg_* commands.

One of the things I found referenced in the IBM docs that is supposed to be able to change an “Advanced Function” disk into a JBOD disk is iprconfig, the IBM Power RAID Configuration utility. There’s even a github repo
for it that I was able to grab, compile, and install. Unfortunately, likely due to the Slicestor not actually having a RAID card (seems to just be an HBA) let alone an IBM one, while iprconfig will launch fine it wont actually detect any RAID cards or the drive. Most of this you can find online on existing discussions if you look hard enough though, so not much of this is new info, but it is compiled here. Now to what else I’ve done that I haven’t been able to find online at all: Using actual non-rebranded IBM hardware.

I managed to get my hands on an IBM Power8 8247-21L/S812L server and got it to boot AIX Diag 7.2 to try to have the AIX Diagnostics reformat it to JBOD/512. Unfortunately, the drive never showed up in AIX. I took the 2 HDD’s that were in it, put them in a RAID 0, and installed the PowerPC version of SUSE Linux Enterprise 15 via the power of the free trial and got iprconfig running on there. This time, on the actual IBM hardware, iprconfig DID recognize the RAID card and was able to see the 2 drives I put in the RAID 0 for SUSE, but still wasn’t able to see the SED SSD. After some more testing, it seems like it can’t see any SSD’s? Not sure if it’s my setup or if the RAID card is just wack.

I proceeded to get my hands on an IBM Power9 9008-22L/L922 server, which actually came with 2 U.2 SAS 4224 block sized SSD’s (not SED though), and popped the 2 RAID 0 SUSE HDD’s and the SED SSD in there. Got SUSE up and running, ran iprconfig, and though the SSD was labeled “R/W Protected”, it was able to see it! Unfortunately, I wasn’t able to reformat it to 512. Based on the logs, it seems iprconfig was also running into the same issues as sg_format. iprconfig also wasn’t able to make a single-drive RAID 0 from the drive, and just errored (TODO: Try again from SUSE and put error in here). Putting the drive back into my Ubuntu box and using sedutil-cli to take ownership, make a locking range that spans the entire drive, and having the locking range unlocked by default, and putting the drive back into the Power9 box made it stop showing up as “R/W Protected” and allowed me to create the RAID 0.

Putting the drive into my Ubuntu box, PSID-resetting the drive, putting it back into the Power9 box, and booting into AIX 7.2 it showed the drive but errored when trying to format it for JBOD/512. The drive was listed as “R/W Protected”, but doing a general reformat (keeps the block size) that AIX offers not only worked, but changed the state of it to “zeroed”. Booting into SUSE, I was able to use iprconfig to make it into a RAID 0, so that was neat.

In SUSE, the various /dev/sg*'s will point to the actual drives even if they are in a RAID. For me right now, /dev/sg1 and sg2 are pointing to the two 283 GB drives that are in the RAID 0 housing SUSE, and sg3 is the SSD SED. Very interestingly, smartctl in SUSE will show the SSD as having a logical block size of 512, though it wont mention the physical block size. Running sudo smartctl --test=short /dev/sg3 wont error, but doesn’t seem to actually work. I ran a single short test a while ago, and I can see that in the SMART Self-test log on SUSE, but no new tests I try to run are added to that log. Starting a long test then cancelling it via sudo smartctl --test=long /dev/sg3 and sudo smartctl -X /dev/sg3 still wont error, but no cancelled test shows up in the log. Running sudo sg_readcap /dev/sg3 will show a logical block size of 512, Logical blocks per physical block exponent=0, and both lbpme=0 and lbprz=0, despite Ubuntu saying otherwise (both are set to 1). Running

udo sg_format --format --size=512 /dev/sg3

yields a different error, “MODE SELECT command: Transport Error”. I’m going to guess that the IBM RAID card is not providing direct communication to the drive, and shows a false version of the drive.
Weirdly, after running the smartctl stuff just now, it allowed me to do the sg_format with --size=512. Unfortunately, removing it and checking in Ubuntu shows that it’s still 528/4224 block size. It also doesn’t show any of the (cancelled) SMART tests I ran on SUSE but I can run a test from Ubuntu and it does show up in the SMART log. The IBM RAID card doesn’t seem to actually relay any of the test requests to the drive.


I have an expensive drive sitting on my desk too,I dont think there is an easy fix for it, there might be a way to take it apart and flash the controller or something but thats way beyond my skill

If there ever is a fix those drive will be worth some money

1 Like

My wife started to hate me because of these disks, I spend 3-4 hours every weekend repairing these disks and it drove her crazy.
If I had 2-3 of these discs, I would have thrown them away already, but there are approximately 150 available and I spent a lot of money buying them 4 years ago. If anyone tells me with evidence that these discs are garbage, I will smash them with a sledgehammer. :grin: :grin:

I tried to flash the OEM firmware on the drive but it didnt work. Took awhile to find it but it still didnt work.

A few friends reached me via PM and said it could be done by using JTAG. im on vacation right now to clear my head, but as you can see, im still posting here (because im an idiot). Anyway, when I get home, I will ship the disks to a few friends and if they come up with a solution, I will mention it here.

3 Likes

Yeah I think JTAG is just flashing the controller manually. Which would be a ton of work for all those drives

1 Like

time to build a jtag jig lol
if you have 150 of these you could send me like 12 to keep assuming I can find a fix, which increases the chances they can be salvaged lol

3 Likes

same here
Need a self addressed prepaid box?

I have prom programmers, but would honestly look at flashing through Winders first.

Would make interesting content for sure

1 Like

Sorry I’m late and sorry for the @'s, but I believe that I may have some stuff that could be relevant to this. I’ve got a lot of seagate odds and ends and can provide some resources. I’ve also been looking at this issue from other forum posts, wondering if I should dive in.

@wendell @mutation666 @freudkid
I have a wide range of non-oem and oem seagate nytro ssds, many xeon ibm servers, an IBM power9 server with a raid card (raid card specific to ibm), and one of those jtag things board for these ssds made by seagate. It seems to be some kind of internal tool, and has a cable that plugs into that wide port on the rear of the ssds. Not sure how to do programming stuff or debugging for something like this, but perhaps that could prove useful. I don’t have any of the ibm ssds in particular sorry. Let me know if you need help with anything or have any questions. I’m perfectly fine with lending things to the project. I was intending on using this stuff for it anyways, but couldn’t find any of those IBM ssds for a decent price anywhere lol. Maybe its for the best, but we won’t know til’ we try, I guess.

Here’s some pictures of the stuff
Jtag thing & some random nytros:


(its usb type b to the board btw)

IBM power s924 and 57b4 raid card:

Hope I can be of some help here. I know that feeling of putting a lot of money and time into a project and it simply not working or being useless.

3 Likes

If @wendell wants to give it a run, he has dibs.

Else, I am game to make something happen.

I’ll try to document and not brick too many drives.

1 Like

probably the best thing for firmware flashing

Is what I would tackle first
Then go after enumeration as 512 block size

There is a chance that the firmware from the 7.68tb nytros can be copied over to swap these back to 7.68tb. Not sure exactly which models I have, but I will take a look around. The vast majority of the 7.68tb ones were dell badged, so its hard to tell which one is a good match.

Forgot to mention, I also have some dead-seeming drives that I could throw at it as test dummies. They don’t show up at all. Not sure if that is some special kind of security feature, though, so they appear to be dead. Is now a good time to ask if theres something that may prevent them from showing up in /dev/sd*? lol

2 Likes

hey @Rat sorry for late reply, since these discs disrupted my psychology, I had to isolate myself from technological devices a little, so I did not touch any technological devices for 10-15 days lol, just saw your message,

You may want to look at this topic : Help to reformat hard disk sector size 528 to 512 · Issue #84 · hreinecke/sg3_utils · GitHub

All good haha. I had something like that too, where I was on a rather interesting binge attempting to get some 30 or so interesting engineering sample 6.4tb nvme gen4 ssds to work when they refused to show up or work. It was about a week of fighting server, backplane, drive, and software. It was a perfect cocktail to keep me going and had me feeling so incredibly awful. I had the week free and spent I think around 8-16 hours a day attempting to figure the stupid things out and never had anything come of it. Before I had to get back to the real world I think I spent about 20 hours in bed in a mixture of sleep and groggy tiredness. I was pretty frustrated and felt awful the whole week, but after that it just kind of vanished in the fog of tiredness and I got over it with a speed I didn’t think possible.
And so, I’ll drink a toast to your tenacity, since even then I burnt out and gave up in a matter of a month about them. It would have been amazing to use them, if my work had been realized, but I suppose they were a bit too engineering-y of samples lol. I think there is far more potential here, however. It might take contacting people internal to seagate to do it, but I believe that there is enough of a chance of getting these to work compared to my issue that I follow this. There’s far more people here working at the problem, too, in case a roadblock is reached. Somewhere, somehow, sometime, a solution could be reached.

Wow, I didn’t see this one. This seems to be the best yet in terms of amt of people converting on testing them and actual hard tests and owners rather than third parties. Ill keep an eye on it and see if I can help out in some way.

I believe it was you in there saying you would toss those disks - Please don’t toss them. Even for the lack of ability to convert them, you could pass them on to people who are willing to continue the pursuit for the solution. You and I may be able to help provide the hardware for the people who are looking to take a crack at it. I have a few of the ibm servers mentioned and some of the original tools that seagate used to program and flash the ssds, as well as some of their testing hardware. Tossing them would only make the issue harder for everyone else. I am not asking you to keep trying, as I feel your pain in getting no solution out of a hard worked long term problem, but it helps to just stop working on it and graduate to the sidelines. I think everyone would be grateful if you did as much as stick around and give your opinion, ideas, or advice. If you want to get rid of them to get them out of your sight and mind then, if you’re willing, I would love to pay to have them sent my way and offer them up to other users who want to take a crack at it. I suppose I am one of the number, since I still haven’t gotten my hands on any of the ibm ssds for me and my friend to give a shot, and I would love to give the flashing commands a try on different hardware to rule it out. And who knows, it might just work. :wink:

Feel free to send me a msg if you’re willing to do it. My list of projects is long and only grows, but that just creates more room to learn.