Jump to content

[Guide] Changing block size on SAS and SCSI drives


Recommended Posts

Just wanted to throw a quick post together based on my research trying to get some cheap drives I got on eBay visible in Unraid. I bought 4 ST3000NXCLAR3000 drives for $12 a piece https://www.ebay.com/itm/374713184250 (out of stock but the vendor has other drives, shipping was great and all drives were in working order)

 

For those that don't know, when you buy these drives from some manufacturers they come with a block size of 520, this means that they are unusable in Unraid and only show up in the device list with a "-" for the storage capacity:

 

[6:0:0:0]	disk    SEAGATE  ST3000NXCLAR3000 GS18  /dev/sdb   -
[8:0:0:0]	disk    SEAGATE  ST33000650SS     0004  /dev/sde   3.00TB
[8:0:1:0]	disk    SEAGATE  ST33000650SS     0003  /dev/sdf   3.00TB

 

Now there are several guides on here that point to using sg3-utils to format the drives to the useable 512 block size and this has worked for me in the past, but not with these drives. The process of formatting would complete as expected, but when the server came back up they'd report connection errors as though they were bad drives.

 

However, after some Googling I found a guide that used a different tool which happens to work on these EMC drives called setblocksize. There is a full guide here on how to do it: https://spun.io/2019/12/06/changing-block-size-to-512-bytes-on-sas-and-scsi-disks-under-ubuntu-linux/

 

Use setblocksize on Unraid

Unraid lacks the ability to use make so in order to use this tool we'll need to install the Ubuntu Playground container from Community Applications. You can leave everything on it's default (including privileged access) except add sg3-utils to APT-Packages.

 

Once installed, open the console for the container and follow the rest of the guide here:

 

wget https://github.com/ahouston/setblocksize/archive/master.zip
unzip master.zip
cd setblocksize-master
make

Now, we need to find the generic SCSI device that corresponds to the drive. First, we will install sg3-utils:
sudo apt install sg3-utils

Next, we will run sudo sg_map which will return the list of block devices and their corresponding SCSI generic devices:
sudo sg_map | grep sdm
/dev/sg14 /dev/sdm

Now we know that /dev/sg14 is what corresponds to our disk sdm. Now, all that’s left to do is to reformat it with the correct block size by running sudo ./setblocksize -t1800 /dev/sg14

 

It'll take what seems like forever to finish but after this process the drive is seen and useable in Unraid:

 

[6:0:0:0]	disk    SEAGATE  ST3000NXCLAR3000 GS18  /dev/sdb   3.00TB
[8:0:0:0]	disk    SEAGATE  ST33000650SS     0004  /dev/sde   3.00TB
[8:0:1:0]	disk    SEAGATE  ST33000650SS     0003  /dev/sdf   3.00TB

 

Hopefully this helps someone in the future.
 

  • Thanks 1
Link to comment
  • 7 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...