Menu="Main:5" Title="Array Operation" Tag="snowflake-o" Nchan="device_list,disk_load,parity_list" --- 0; $poolsOnly = (_var($var,'SYS_ARRAY_SLOTS') == 0 ) ? true : false; /* only one of $present, $missing, or $wrong will be true, or all will be false */ $forced = $present = $wrong = false; foreach ($disks as $disk) { if (strpos(_var($disk,'fsType'),'luks:')!==false || (_var($disk,'fsType')=='auto' && strpos(_var($var,'defaultFsType'),'luks:')!==false)) $forced = true; if (_var($disk,'luksState',0)==1) $present = true; if (_var($disk,'luksState',0)==2) $missing = true; if (_var($disk,'luksState',0)==3) $wrong = true; } $encrypt = $forced || $present || $missing || $wrong; if ($forced && ($present || $missing || $wrong)) $forced = false; function check_encryption() { global $forced, $missing, $wrong; if ($forced) $status = _('Enter new key'); elseif ($missing) $status = _('Missing key'); elseif ($wrong) $status = _('Wrong key'); else return; echo "",_('Encryption status').":$statuspermit reformat"; echo "",_('Encryption input').":"; echo ""; echo "",_('Passphrase'),":"._('show passphrase').""; echo "",_('Retype passphrase'),":"; echo "",_('Keyfile'),":"; } function maintenance_mode() { echo ""; echo ""; echo "",_('Maintenance mode'),""; echo "",_('Maintenance mode')," - ",_('if checked, Start array but do not mount disks'),""; echo ""; } function status_indicator() { global $var; switch (_var($var,'mdColor')) { case 'green-on': $orb = 'circle'; $color = 'green'; $help =_('Started, array protected'); break; case 'green-blink': $orb = 'circle'; $color = 'grey'; $help = _('Stopped'); break; case 'yellow-on': $orb = 'warning'; $color = 'yellow'; $help = _('Started, array unprotected'); break; case 'yellow-blink': $orb = 'warning'; $color = 'grey'; $help = _('Stopped'); break; } echo "$help"; } function missing_cache() { global $disks; $missing = false; foreach (cache_filter($disks) as $disk) $missing |= (strpos(_var($disk,'status'),'_MISSING')!==false); return $missing; } function resync($d) { return in_array($d,['P','Q']) ? 'Parity-Sync' : 'Data-Rebuild'; } function print_error($error) { return sprintf(_('Finding **%s** error'.($error==1?'':'s')),$error?:'0'); } ?>
0):?> 1):?> 1):?> 1):?> 1):?>
**_(Started)_** **_(Stop)_** _(will take the array off-line)_.
**:**
".my_disk(_var($disk,'name'))." • ".my_id(_var($disk,'id'))." ("._var($disk,'device').")
"; if (in_array(_var($disk,'name'),$pools)) $cache[] = $disk['name']; } ?>
**_(Format)_** _(will create a file system in all **Unmountable** disks)_.
_(Yes, I want to do this)_
**** .
**_(Clear)_** _(will start **Disk-Clear** of new data disk(s))_.
_(Parity is valid)_.**_(Check)_** _(will start **Parity-Check**)_.  onclick="$.cookie('one','tab1')">(_(Schedule)_)
_(Write corrections to parity)_
**_(Check)_** _(will start **Read-Check** of all array disks)_.

_(Error code)_:

_(Duration)_:

_(Error code)_:

_(Duration)_:

_(Error code)_:

_(Duration)_:
. value="_(Pause)_" onclick="pauseParity(this.form)" value="_(Resume)_" onclick="resumeParity(this.form)" disabled> **** .**** .
**** .
_(WARNING: canceling may leave the array unprotected)_!
_(Disk-Clear in progress)_. value="_(Pause)_" onclick="pauseParity(this.form)" value="_(Resume)_" onclick="resumeParity(this.form)" disabled> **_(Pause)_** _(will pause Disk-Clear)_.**_(Resume)_** _(will resume Disk-Clear)_.
**_(Cancel)_** _(will stop Disk-Clear)_.
_(Parity-Check in progress)_. value="_(Pause)_" onclick="pauseParity(this.form)" value="_(Resume)_" onclick="resumeParity(this.form)" disabled> **_(Pause)_** _(will pause Parity-Check)_.**_(Resume)_** _(will resume Parity-Check)_.
**_(Cancel)_** _(will stop Parity-Check)_.
_(Read-Check in progress)_. value="_(Pause)_" onclick="pauseParity(this.form)" value="_(Resume)_" onclick="resumeParity(this.form)" disabled> **_(Pause)_** _(will pause Read-Check)_.**_(Resume)_** _(will resume Read-Check)_.
**_(Cancel)_** _(will stop Read-Check)_.
_(Total size)_:
_(Elapsed time)_:
_(Current position)_:
_(Estimated speed)_:
_(Estimated finish)_:
:
:
**_(Starting)_...**
**_(Started, formatting)_...**
**_(Starting, copying)_... **
**_(Started, clearing)_... **
**_(Stopping)_...**
**_(Stopped)_.** _(Invalid, missing or expired)_ _(registration key)_.
**_(Stopped)_.** _(Too many attached devices. Please consider upgrading your)_ _(registration key)_.
**_(Stopped)_.** _(Ineligible to run this version of Unraid OS. Please consider extending your)_ _(registration key)_.
**_(Stopped)_.** _(Cannot contact key-server. Please check your)_ _(network settings)_.
**_(Stopped)_.** _(This Unraid OS release has been withdrawn and may no longer be used. Please)_ _(update)_ _(your server)_.
**_(Stopped)_**. _(Configuration valid)_. **_(Start)_** _(will bring the array on-line)_.
**_(Stopped)_**. _(Configuration valid)_. **** .
**_(Stopped)_**. _(New data disk(s) detected)_. **_(Start)_** _(will bring the array on-line and start **Disk-Clear** of new data disk(s))_.
**_(Stopped)_**. _(Unclean shutdown detected)_. **_(Start)_** _(will bring the array on-line and start **Parity-Check**)_.
_(Write corrections to parity)_
**_(Stopped)_**. _(Unclean shutdown detected)_. **_(Start)_** _(will bring the array on-line)_.
**_(Stopped)_**. _(Missing pool disk)_. **_(Start)_** _(will remove the missing pool disk and then bring the array on-line)_.
_(Yes, I want to do this)_
**_(Stopped)_**. _(Configuration valid)_. **_(Start)_** _(will bring the array on-line)_.
**_(Stopped)_**. _(Configuration valid)_. **_(Start)_** _(will record all disk information and bring the array on-line)_.
_(The array will be immediately available, but **unprotected** since *parity* has not been assigned)_.
**_(Stopped)_**. _(Configuration valid)_. **_(Start)_** _(will record all disk information, bring the array on-line, and start Parity-Sync)_.
_(The array will be immediately available, but **unprotected** until Parity-Sync completes)_.
_(Parity is already valid)_.
**_(Stopped)_**. _(Missing disk)_. **_(Start)_** _(will disable the missing disk and then bring the array on-line. Install a replacement disk as soon as possible)_.
_(Yes, I want to do this)_
**_(Stopped)_**. _(Replacement disk installed)_. **_(Start)_** _(will start **Parity-Sync** and/or **Data-Rebuild**)_.
**_(Stopped)_**. _(Upgrading disk/swapping parity)_. **_(Start)_** _(will expand the file system of the data disk (if possible); then bring the array on-line and start Data-Rebuild)_.
**_(Stopped)_**. _(Upgrading disk/swapping parity)_. **_(Copy)_** _(will copy the parity information to the new *parity* disk)_.
_(Once copy completes, the array may be Started, to initiate Data-Rebuild of the disabled disk)_.
_(Yes, I want to do this)_
**_(Stopped)_**. _(Invalid expansion)_. _(You may not add new disk(s) and also remove existing disk(s))_.
**_(Stopped)_**. _(Replacement disk is too small)_. _(The replacement disk must be as big or bigger than the original)_.
**_(Stopped)_**. _(Disk in parity slot is not biggest)_. _(If this is a new array, move the largest disk into the *parity* slot)_.
_(If you are adding a new disk or replacing a disabled disk, try Parity-Swap)_.
**_(Stopped)_**. _(Invalid configuration)_. _(Too many wrong and/or missing disks)_!
**_(Stopped)_**. _(No data disks)_. _(No array data disks have been assigned)_!
**_(Stopped)_**. _(No devices)_. _(No array devices have been assigned)_!
**_(Delete)_** _(will delete the encryption keyfile)_.
_(Yes, I want to do this)_
**_(Spin Up)_** _(will immediately spin up all disks)_.
**_(Spin Down)_** _(will immediately spin down all disks)_.
**_(Delete)_** _(will delete the encryption keyfile)_.
**_(Reboot)_** _(will activate a *clean* system reset)_.
**_(Shutdown)_** _(will activate a *clean* system power down)_.
_(Reboot in safe mode)_

'.parse_file($display['sleep']))?> :array_status_help: :array_devices_help:
:encryption_help: