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.

Help "restoring" array - or - help undoing a parity drive change

Featured Replies

I've poked around but I can't find the right set of search terms to find me the info I'm looking for.

 

Here's the deal.  I got a new HDD, plan is (was) to replace the parity drive and once that was done add the old parity drive back into the array expanding it.  So I precleared the parity drive, and once that was done, I stopped the array, changed the parity drive to the new drive and told it to start the array.

 

I went off to bed and when I came back to it I found one of the other drives had disappeared for some reason (though it's still there), so now I have a new parity drive configured, but without parity written to it, and another "good" drive flagged as bad (maybe it really is), and an old parity drive that's been untouched and should still be in sync.

 

Problem is I can't figure out how to tell unRAID to use the old parity drive in the array, so I can rebuild the "failed" drive from parity, or convince it that the "failed" drive is really OK because when I choose the drives I want unRAID sees two bad drives and won't let me start the array.

 

I found a thread about doing "mdcmd set invalidslot 99" but that doesn't work with the start button disabled and I'm not sure that's what I'm looking at either.

 

I guess what I'm really looking to do is just go back in time to before I changed the parity drive yesterday.  I have my flash backed up on crashplan, and I tried replacing my super.dat (which looked like it contained the array info) but that doesn't seem to do anything.

 

Thoughts/help?

 

unRAID 5.0-rc15a

 

syslog attached

 

Drives in question

Hitachi HDS5 BJA data drive

 

Hitachi HDS7 32S New parity drive

Hitachi HDS5 89A Old Parity drive

system_log.txt

What version of UnRAID?    v5 has a "Trust Parity" option.  I'm not aware of any way to force v4 to use your parity drive, although there probably is a way using the old backed up contents of the flash drive -- I suspect someone who knows how will chime in if you're using 4.7.

 

If you're on v5, simply restore the flash drive contents; replace the old parity drive; and boot.  It MAY simply recognize that everything is "as it was" and be okay ... but if not, you get ONE time to click the "Trust Parity" option.  Do NOT do this if you're not SURE about parity being good.  i.e. if you've written ANYTHING to ANY disk since you tried the new parity drive, then parity is likely NOT good.

 

  • Author

Right, sorry about that, I meant to put that in, I'm running 5.0-rc15a.

 

Right now the problem is unRAID thinks I've got two bad drives, it thinks the drive that disappeared is bad, and it thinks the parity is bad.

 

I tried the start without the drive assigned then start with it assigned from here, to try and get the data drive to be happy, but it keeps staring as unformatted, so perhaps it really did lose it's brain:

http://lime-technology.com/forum/index.php?topic=25576.0

 

Problem is the new parity drive never got parity synced, but the array has never been successfully started since I unassigned the old parity drive so the old parity should be good, but I can't get unRAID to accept the old parity drive as a valid drive.  Even if I replace my old super.dat with the old drive configuration, when I reboot it still comes up with the new parity drive configured.

 

I've updated the first post with the latest syslog and info about the drives in question.

 

Sorry for the partial information, I'm sort of multitasking today and not thinking too clearly about my posts :o

Take a screen shot of the disk assignments. Or just record the last 4 of the serial numbers of each drive. Select Utils->New Config. Assign the drives as desired and check the "parity is valid" option. Make sure that the parity drive is assigned correctly. The order of the data drives does not matter.

Just be aware that if you aren't absolutely certain that parity is indeed valid, then using that option will results in a "garbage" rebuild of the failed disk.    Before doing that, I'd attach the red-balled disk to a PC and see if you can read the data using Linux Reader ... if so, backup anything you can recover BEFORE you let UnRAID rebuild the disk.

 

  • Author

Ok, while the forum was down (or I lost access), did some more looking, and I think the first (most important) problem is that disk 6 is failing to mount.

 

I'm seeing this in my syslog

Jun 30 09:57:39 unRAID emhttp: shcmd (52): mkdir /mnt/disk6
Jun 30 09:57:39 unRAID emhttp: shcmd (53): set -o pipefail ; mount -t reiserfs -o user_xattr,acl,noatime,nodiratime /dev/md6 /mnt/disk6 |& logger
Jun 30 09:57:39 unRAID logger: mount: wrong fs type, bad option, bad superblock on /dev/md6,
Jun 30 09:57:39 unRAID logger:        missing codepage or helper program, or other error
Jun 30 09:57:39 unRAID logger:        In some cases useful info is found in syslog - try
Jun 30 09:57:39 unRAID logger:        dmesg | tail  or so
Jun 30 09:57:39 unRAID logger: 
Jun 30 09:57:39 unRAID emhttp: _shcmd: shcmd (53): exit status: 32
Jun 30 09:57:39 unRAID emhttp: disk6 mount error: 32
Jun 30 09:57:39 unRAID emhttp: shcmd (54): rmdir /mnt/disk6
Jun 30 09:57:39 unRAID emhttp: shcmd (55): mkdir /mnt/disk7
Jun 30 09:57:39 unRAID kernel: REISERFS warning (device md6): sh-2006 read_super_block: bread failed (dev md6, block 2, size 4096)
Jun 30 09:57:39 unRAID kernel: REISERFS warning (device md6): sh-2006 read_super_block: bread failed (dev md6, block 16, size 4096)
Jun 30 09:57:39 unRAID kernel: REISERFS warning (device md6): sh-2021 reiserfs_fill_super: can not find reiserfs on md6

 

I don't see any smart errors from the drive:

root@unRAID:~# smartctl -t short  /dev/sdj
smartctl 5.40 2010-10-16 r3189 [i486-slackware-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Sun Jun 30 15:49:00 2013

Use smartctl -X to abort test.
root@unRAID:~# smartctl -a -d ata /dev/sdj
smartctl 5.40 2010-10-16 r3189 [i486-slackware-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     Hitachi HDS5C3030ALA630
Serial Number:    MJ1321YNG0LBJA
Firmware Version: MEAOA580
User Capacity:    3,000,592,982,016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Sun Jun 30 15:50:15 2013 CDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x80) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                 (35169) seconds.
Offline data collection
capabilities:                    (0x5b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        ( 255) minutes.
SCT capabilities:              (0x003d) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   016    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   136   136   054    Pre-fail  Offline      -       100
  3 Spin_Up_Time            0x0007   140   140   024    Pre-fail  Always       -       454 (Average 543)
  4 Start_Stop_Count        0x0012   100   100   000    Old_age   Always       -       3203
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   135   135   020    Pre-fail  Offline      -       31
  9 Power_On_Hours          0x0012   098   098   000    Old_age   Always       -       15058
10 Spin_Retry_Count        0x0013   100   100   060    Pre-fail  Always       -       0
12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       16
192 Power-Off_Retract_Count 0x0032   098   098   000    Old_age   Always       -       3215
193 Load_Cycle_Count        0x0012   098   098   000    Old_age   Always       -       3215
194 Temperature_Celsius     0x0002   187   187   000    Old_age   Always       -       32 (Min/Max 21/38)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     15058         -
# 2  Short offline       Completed without error       00%      3308         -
# 3  Short offline       Completed without error       00%        71         -

SMART Selective self-test log data structure revision number 1
SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

root@unRAID:~#

 

Some rummaging around the forums and I found a few things to debug/try.  First was to run reiserfsck on the drive in question, disk 6.  When I try it on the md6 device it fails:

root@unRAID:~# reiserfsck /dev/md6
reiserfsck 3.6.21 (2009 www.namesys.com)

*************************************************************
** If you are using the latest reiserfsprogs and  it fails **
** please  email bug reports to [email protected], **
** providing  as  much  information  as  possible --  your **
** hardware,  kernel,  patches,  settings,  all reiserfsck **
** messages  (including version),  the reiserfsck logfile, **
** check  the  syslog file  for  any  related information. **
** If you would like advice on using this program, support **
** is available  for $25 at  www.namesys.com/support.html. **
*************************************************************

Will read-only check consistency of the filesystem on /dev/md6
Will put log info to 'stdout'

Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes

The problem has occurred looks like a hardware problem. If you have
bad blocks, we advise you to get a new hard drive, because once you
get one bad block  that the disk  drive internals  cannot hide from
your sight,the chances of getting more are generally said to become
much higher  (precise statistics are unknown to us), and  this disk
drive is probably not expensive enough  for you to you to risk your
time and  data on it.  If you don't want to follow that follow that
advice then  if you have just a few bad blocks,  try writing to the
bad blocks  and see if the drive remaps  the bad blocks (that means
it takes a block  it has  in reserve  and allocates  it for use for
of that block number).  If it cannot remap the block,  use badblock
option (-B) with  reiserfs utils to handle this block correctly.

bread: Cannot read the block (2): (Input/output error).

Aborted

 

However when I run it directly on /dev/sdj1 it complete without (apparent to me) error:

 

Will read-only check consistency of the filesystem on /dev/sdjl 
Will put log info to 'stdout' 
Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes 
########### 
reiserfsck --check started at Sat Jun 29 22:34:28 2013 3000I000000 
Replaying journal: Done. 
Reiserfs journal ',dev/sdj1' in blocks [18..8211]: 0 transactions replayed 
Checking internal tree.. finished 
Comparing bitmaps..finished 
Checking Semantic tree: finished 
No corruptions found 
There are on the filesystem: 
Leaves 690984 
Internal nodes 4319 
Directories 6140 
Other files 305615 
Data block pointers 684047983 (1238 of them are zero) 
Safe links 0 
########### 
reiserfsck finished at Sun Jun 30 00:51:59 2013 
###########
root@unBAID,-# 

 

I found this thread which seems to describe the exact problem I am seeing, a drive (/dev/sdj1) which checks out perfectly fine, but is unable to be mounted through /dev/md6.  I can even mount /dev/sdj1 and everything appears fine, there's data on the drive and it appears intact.

 

http://lime-technology.com/forum/index.php?topic=10375.30

 

Reading through that thread now, it sounds like since all my data drives check out, except for the md6 issue, I should try the New Config procedure to tell unRAID to start over with the array, and then assuming all my data drives are happy begin the parity rebuild.

 

Thoughts, concurrence?  I think I'm close to getting this resolved, looking for a sanity check, it doesn't look like I've lost anything yet so I want to make sure I don't make a silly mistake.  unRAID's been so stable for me I've never really had to dig into it's innerworkings.

 

Thanks for the pointers so far.

system_log2.txt

  • Author

OK, once again, my impatience got the better of me (I think that's what started this whole endeavor)...

 

I backed up my flash, took a deep breath, hit the new config button, reassigned my drives (except the two parity drives just in case) and hit start, and all my drives mounted with happy green balls.  Looks like all the data is there.

 

We're now syncing parity to my new parity drive, so it seems crisis concluded.

 

Thanks for all the help everyone.

... my impatience got the better of me (I think that's what started this whole endeavor)...

 

Glad all's working well ... but PATIENCE is a very important attribute when working with computers !!  8)

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.