Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

How can I resolve my parity errors?

Featured Replies

  • Author

Ooops. I missed that.

I am changing it back now and rebooting

I will post a syslog once done.

 

  • Replies 114
  • Views 26.5k
  • Created
  • Last Reply
  • Author

I changed back and rebooted and the array started with no issue.

 

Let me know what step to take next. :)

 

Here are the results of your script:

 

root@Tower:/boot/scripts# unraid_partition_disk.sh /dev/sdh

BLKRRPART: Device or resource busy

########################################################################

Device Model:     WDC WD10EADS-00M2B0

Serial Number:    WD-WMAV50195436

Firmware Version: 01.00A01

User Capacity:    1,000,204,886,016 bytes

 

Disk /dev/sdh: 1000.2 GB, 1000204886016 bytes

1 heads, 63 sectors/track, 31008336 cylinders, total 1953525168 sectors

Units = sectors of 1 * 512 = 512 bytes

Disk identifier: 0x00000000

 

  Device Boot      Start         End      Blocks   Id  System

/dev/sdh1              63  1953525167   976762552+  83  Linux

Partition 1 does not end on cylinder boundary.

########################################################################

============================================================================

==

== DISK /dev/sdh IS partitioned for unRAID properly

== expected start = 63, actual start = 63

== expected size = 1953525105, actual size = 1953525105

==

============================================================================

root@Tower:/boot/scripts#

 

 

root@Tower:/boot/scripts# unraid_partition_disk.sh /dev/hdc

BLKRRPART: Device or resource busy

########################################################################

Device Model:     ST3500410AS

Serial Number:    5VM09ACH

Firmware Version: CC31

User Capacity:    500,107,862,016 bytes

 

Disk /dev/hdc: 500.1 GB, 500107862016 bytes

1 heads, 63 sectors/track, 15504336 cylinders, total 976773168 sectors

Units = sectors of 1 * 512 = 512 bytes

Disk identifier: 0x00000000

 

  Device Boot      Start         End      Blocks   Id  System

/dev/hdc1              63   976773167   488386552+  83  Linux

Partition 1 does not end on cylinder boundary.

########################################################################

============================================================================

==

== DISK /dev/hdc IS partitioned for unRAID properly

== expected start = 63, actual start = 63

== expected size = 976773105, actual size = 976773105

==

============================================================================

root@Tower:/boot/scripts#

 

I changed back and rebooted and the array started with no issue.

 

Let me know what step to take next. :)

 

Here are the results of your script:

 

root@Tower:/boot/scripts# unraid_partition_disk.sh /dev/sdh

BLKRRPART: Device or resource busy

########################################################################

Device Model:     WDC WD10EADS-00M2B0

Serial Number:    WD-WMAV50195436

Firmware Version: 01.00A01

User Capacity:    1,000,204,886,016 bytes

 

Disk /dev/sdh: 1000.2 GB, 1000204886016 bytes

1 heads, 63 sectors/track, 31008336 cylinders, total 1953525168 sectors

Units = sectors of 1 * 512 = 512 bytes

Disk identifier: 0x00000000

 

  Device Boot      Start         End      Blocks   Id  System

/dev/sdh1              63  1953525167   976762552+  83  Linux

Partition 1 does not end on cylinder boundary.

########################################################################

============================================================================

==

== DISK /dev/sdh IS partitioned for unRAID properly

== expected start = 63, actual start = 63

== expected size = 1953525105, actual size = 1953525105

==

============================================================================

root@Tower:/boot/scripts#

 

 

root@Tower:/boot/scripts# unraid_partition_disk.sh /dev/hdc

BLKRRPART: Device or resource busy

########################################################################

Device Model:     ST3500410AS

Serial Number:    5VM09ACH

Firmware Version: CC31

User Capacity:    500,107,862,016 bytes

 

Disk /dev/hdc: 500.1 GB, 500107862016 bytes

1 heads, 63 sectors/track, 15504336 cylinders, total 976773168 sectors

Units = sectors of 1 * 512 = 512 bytes

Disk identifier: 0x00000000

 

  Device Boot      Start         End      Blocks   Id  System

/dev/hdc1              63   976773167   488386552+  83  Linux

Partition 1 does not end on cylinder boundary.

########################################################################

============================================================================

==

== DISK /dev/hdc IS partitioned for unRAID properly

== expected start = 63, actual start = 63

== expected size = 976773105, actual size = 976773105

==

============================================================================

root@Tower:/boot/scripts#

 

The partitions are both sized to expect the full size of the disks, not the artificially shortened size.

 

Now, how about the output of

hdparm -N /dev/hdc

and

hdparm -N /dev/sdh

 

 

  • Author

I get this error when running the command

 

root@Tower:~# hdparm -N /dev/hdc

 

/dev/hdc:

The running kernel lacks CONFIG_IDE_TASK_IOCTL support for this device.

READ_NATIVE_MAX_ADDRESS_EXT failed: Invalid argument

root@Tower:~#

 

  • Author

The /dev/sdh drive worked:

sdh is disk1 which is the one it complained about when I made the change to the syslinux.cfg file

 

root@Tower:/boot# hdparm -N /dev/sdh

 

/dev/sdh:

max sectors   = 1953525168/1953525168, HPA is disabled

root@Tower:/boot#

 

  • Author

On some drives I get this:

 

root@Tower:~# hdparm -N /dev/sdb

 

/dev/sdb:

max sectors  = 18446744072344861488/2930277168, HPA setting seems invalid

 

  • Author

OK I tried to go back to 4.5 beta 6 which is what I was using when I had no parity issues, but when it booted up with 4.5 beta6 I got the same error that the disk was too small and the array would not start.

So I put 4.5.1 on and rebooted and the array is started again. The hpa switch in the syslinux.cfg file seems to do nothing in the 4.5 beta6 build of unraid.

 

This HPA is really starting to get on my nerves. Disk1 (/dev/sdh) is the only one that seems to give an issue. There is an HPA on sdc as well because I used it from another windows machine that obviously had a HPA on it.

 

I would really like to get rid of the HPA on both drives once and for all but I have absolutely no idea how to do this. The data on all of my drives is VERY important and I do not want to mess anything up just poking around.

 

I will be out tonight but I would appreciate any next steps I should take.

I really appreciate the help :)

 

  • Author

lionelhutz mentions a way to do it but I would need huge guidance on it because I am not great at OS stuff and definitely do not want to mess up the 11 data disks I have in the array.

Is there a step by step guide to do what lionelhutz is talking about?

There has got to be a way to remove the HPA on the 2 drives without hurting the data.

 

I am out for the night now with the wife but I appreciate any help I can get on this to get parity working with 4.5.1

Thx again for all the help.

It is my understanding you can only set the HPA once per power cycle on a hard disk.  (A limitation of the hard disk firmware)

 

So, since the HPA has already been reset once, when the linux reset it when if found the partition table used the entire disk, you will probably not be able to change it again until you power off and back on... But you can try...

 

Type:

hdparm -N p1953525168 /dev/sdh

(the "1953525168" is the native size as reported in your syslog for that disk. Preceding the size with a "p" is the syntax for the hdparm command to make the change permanent. )

 

followed by

hdparm -N /dev/sdh

to see if it worked.

 

For your smaller /dev/hdc disk, the hdparm command to reset the HPA would be (if it works on an IDE drive):

hdparm -N p976773168 /dev/hdc

 

followed by

hdparm -N /dev/hdc

 

If none of these work you might need to reboot without the ignore_hpa directive in the syslinux.cfg file, (the array won't start, but don't even try to start it, just type the hdparm command to set the HPA to the full size of the drive (effectively removing it).

 

The, put the ignore_hpa parameter back in syslinux.cfg, reboot, and if you are lucky, the HPA will be gone.

I am out for the night now with the wife but I appreciate any help I can get on this to get parity working with 4.5.1

Thx again for all the help.

Good to spend time with your wife...  remember  Valentine's day is approaching.... a card can't hurt.

(Assuming it is a holiday you recognize.)

 

Joe L.

It appears the newer version of unRAID is ignoring the HPA, due to that HPA command you added, and has reset the drive data to the full size of the drive. That's why the drive appears to be the too small when you roll back to the older version or remove that HPA part from the cfg file. So, remove that part again and reboot and then use the "restore" button and see what happens. Once the HPA is recognized by unRAID and the disks are put back to being the size that is available the array should be OK again. The parity appears trashed anyways.

 

I downloaded the http://www.ultimatebootcd.com/  iso and created a disk. I then used the HDAT2 utility to remove the HPA. I can't remember the steps but it wasn't hard to do.

 

I recall trying the commands Joe posted but it wouldn't work.

 

Yes, you can only set the HPA once per power cycle. If the motherboard is still accessing it then you won't be able to get rid of it. My unRAID board is not a Gigabyte but I tried connecting the drive back to my Gigabyte HTPC that it came from and the board kept accessing it on boot. I finally connected a optical drive to the server board and did it there first try.

 

Peter

 

 

It appears the newer version of unRAID is ignoring the HPA, due to that HPA command you added, and has reset the drive data to the full size of the drive. That's why the drive appears to be the too small when you roll back to the older version or remove that HPA part from the cfg file. So, remove that part again and reboot and then use the "restore" button and see what happens. Once the HPA is recognized by unRAID and the disks are put back to being the size that is available the array should be OK again. The parity appears trashed anyways.

 

I downloaded the http://www.ultimatebootcd.com/  iso and created a disk. I then used the HDAT2 utility to remove the HPA. I can't remember the steps but it wasn't hard to do.

 

I recall trying the commands Joe posted but it wouldn't work.

 

Yes, you can only set the HPA once per power cycle. If the motherboard is still accessing it then you won't be able to get rid of it. My unRAID board is not a Gigabyte but I tried connecting the drive back to my Gigabyte HTPC that it came from and the board kept accessing it on boot. I finally connected a optical drive to the server board and did it there first try.

 

Peter

His partition tables on the disks are sized for the full size of the actual disk.  I would NOT use the "restore" button.  It immediately invalidates parity.  From what I've heard so far, the parity errors are probably the 1 megabyte used by the HPA where no data exists from files anyway.  I'd not use the "restore" button at this time...  not yet.  If you do use it, at least use the "trust-parity" procedure as described in the wiki.  You'll at least keep some possibility of parity protection.

 

We've already discovered the partition table in the MBR is looking for the full size of the disks with NO HPA.    Since he can disable the new creation of an HPA, he is in better shape to remove it using the hdparm command.

 

Joe L.

  • Author

OK I ran the hdparm commands and here is the output. I want you to have a look before I do anything else.

What next step should I take?

Thx

 

root@Tower:~# hdparm -N p1953525168 /dev/sdh

 

/dev/sdh:

setting max visible sectors to 1953525168 (permanent)

max sectors   = 1953525168/1953525168, HPA is disabled

root@Tower:~# hdparm -N /dev/sdh

 

/dev/sdh:

max sectors   = 1953525168/1953525168, HPA is disabled

root@Tower:~#

 

The hdparm command fails when run on the hdc IDE drive.

 

  • Author

One other thing... I do not have any IDE drives in my tower. They are all SATA connections. Why does it say they are IDE?

 

One other thing... I do not have any IDE drives in my tower. They are all SATA connections. Why does it say they are IDE?

 

Easy: You've set the disk controller to emulate IDE drives in your BIOS.  (Yes, it is an option, usually for older OS that do not know how to use SATA drives)

The hdparm command fails when run on the hdc IDE drive.

Either switch the drive temporally with one on the other SATA controller so you can give it the the hdparm command, or go into the bios and switch the drive controller out of legacy IDE mode.  If you do this you will need to re-assign the drives on the devices page to their correct slots in the array, since it will think you put the disks on a new disk controller.

 

Power down when you switch the cables, of course...

 

It looks as if you successfully removed the HPA on the one drive.  Score one for the good-guys... 

One other thing... I do not have any IDE drives in my tower. They are all SATA connections. Why does it say they are IDE?

 

Easy: You've set the disk controller to emulate IDE drives in your BIOS.  (Yes, it is an option, usually for older OS that do not know how to use SATA drives)

From your MB manual:

OnChip SATA Type (SATA2_0~SATA2_3 connectors) Configures the operating mode of the integrated SATA2_0~SATA2_3 controller.

    Native IDE Allows the SATA controller to operate in Native IDE mode. (Default) Enable Native IDE mode if you wish to install operating systems that support Native mode.

    RAID Enables RAID for the SATA controller.

    AHCI Configures the SATA controllers to AHCI mode. Advanced Host Controller Interface (AHCI) is an interface specification that allows the storage driver to enable advanced Serial ATA features such as Native Command Queuing and hot plug.

 

You want to change the SATA type from "Native IDE" to "AHCI"    The disks will then show as "sdX" devices.  You will need to re-assign the disks on the devices page, as to Linux it is as if they are on a new disk controller.

  • Author

Joe, you read my mind. I was just going to ask that :)

 

I have another option in the bios called OnChip SATA port4/5 type

The options are:

As SATA Type

IDE

 

IDE is selected right now.

 

 

Joe, you read my mind. I was just going to ask that :)

 

I have another option in the bios called OnChip SATA port4/5 type

The options are:

As SATA Type

IDE

 

IDE is selected right now.

Now you know why the disks are showing as IDE...  ;D ;D ;D
  • Author

Ok all changes made but now the PC sits at the "Verifying DMI Pool Data....." message

 

I guess then you need to put it back to IDE emulation.  Now is not the time to be messing with boot codes to get you past that error.

 

Just swap the cable between the disk you fixed with the  hdparm command and the one reporting as IDE.  Then you can fix it (remember, it will report as the other device) then switch the cables back if you don't want to re-assign the drives on the devices page.

  • Author

It was my bad. I unplugged the USB drive when doing it and it changed my first boot device even tho I plugged it back in before booting

Unraid is loading now.

I will re-assign the disks.

Once re-assigned is there anything special I need to do to start the array? Do I use start or restore?

Thx

 

  • Author

Rebooted fine.

I had to re-assign 2 disks only. The rest were fine. Array started fine.

I am doing a reboot again and will post a syslog shortly.

 

  • Author

Here is the syslog

syslog.zip

Isn't it nice when the BIOS helps you by changing the boot device when you are not looking....  (I'm certain it made sense to somebody)  Glad you figured it out.

 

I don't see any mention of the HPA any more in the latest syslog.

 

Did you remove the one on the smaller disk by running the hdparm command on it?

 

In any case, it looks encouraging.

 

I'd give another parity check a try.

 

Joe L.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.