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.

[PLUGIN] Disk Location

Featured Replies

Gotcha, I will try that and let you know if I see the issue come up again!
Thank you for everything!

  • Replies 1.6k
  • Views 249.1k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • olehj is the maintainer and it's his choice to do with the plugin what he sees fit.   It is, however, unusual to release to production a version that requires a beta OS release, instead of r

  • FlamongOle
    FlamongOle

    Update 2025.05.29 Commit #446 - BUG: Fatal error in page_system - causing furious rage in the forums :P Syntax error, misplaced parentheses 😅 @Mr Q I have an idea for you. Why don't you save your o

  • You guys please settle down.  The fact that sqlite support was in php in the first place was an oversight.  We never intended that a plugin would utilize a database application and honestly, I didn't

Posted Images

Hey all, I've got a dashboard that's not loading and I've tried a few things, but I think I'm out of options for self support.
What I've tried:

reset of plugin (wipe)

reinstall of plugin (uninstalled, deleted plugin folder, reinstalled)

force smart+db

I've attached all the docs I hope that you'll need.
If I'm missing anything, please let me know

disklocation.txt disklocation-2026-06-08 (2).log

  • Author
40 minutes ago, nicknick923 said:

Hey all, I've got a dashboard that's not loading and I've tried a few things, but I think I'm out of options for self support.
What I've tried:

reset of plugin (wipe)

reinstall of plugin (uninstalled, deleted plugin folder, reinstalled)

force smart+db

I've attached all the docs I hope that you'll need.
If I'm missing anything, please let me know

disklocation.txt disklocation-2026-06-08 (2).log

I wonder if the SandForce device is causing those issues. Possible to remove it and try again?

I might check for a possible fix later (no ETA), I hope it is what I think it is. The model name contains brackets [] and this will maybe conflict with the actual array. Never expected that to be a part of a device name really. Rather worrying is that the serial number is "1", maybe related to the brackets.

  • Author

Update 2026.06.09 + 2026.06.11

  • Commit #501 - BUG: Devices with square brackets in their SMART name would fail, square brackets are now replaced to underscore instead.

  • .11 improved commit #501 to replace all but expected characters (alphanumeric, dash, dot, underscore).

@nicknick923 please try this release and see if it fixes the issues. You might need to run SMART+DB again, or even wipe the old config if that doesn't work. Not sure how it handles possible old files with wrong filenames

Edited by FlamongOle

  • 2 weeks later...

I just got Disk location Installed. Scanned for the disks, and added the layout.

but when i go to Place the drives in the location, it wont show a tray number.

attached is my debug file and a few screenshots.

Im running unraid 7.3.1

used to use it all the time. Now having Issues.

disk location 1.jpg

disk location 2.jpg

disklocation-2026-06-18 (2).log

  • Author
21 hours ago, chasteencs said:

I just got Disk location Installed. Scanned for the disks, and added the layout.

but when i go to Place the drives in the location, it wont show a tray number.

attached is my debug file and a few screenshots.

Im running unraid 7.3.1

used to use it all the time. Now having Issues.

disk location 1.jpg

disk location 2.jpg

disklocation-2026-06-18 (2).log

I can't replicate the issue, config look fine. Can you check the PHP logs if there's any error messages related to the plugin there?

9 hours ago, FlamongOle said:

I can't replicate the issue, config look fine. Can you check the PHP logs if there's any error messages related to the plugin there?

How do I go By Checking the PHP Logs

2 minutes ago, chasteencs said:

How do I go By Checking the PHP Logs

this is all i found in the php logs:

[18-Jun-2026 16:08:05 America/Chicago] Error evaluating content in plugins/disklocation/disklocation_dashboard.page (severity: N/A): Unknown or bad format (PT2984690786400S)

Stack trace:

#0 /usr/local/emhttp/plugins/disklocation/pages/functions.php(653): DateInterval->__construct('PT2984690786400...')

#1 /usr/local/emhttp/plugins/disklocation/pages/array_devices.php(187): seconds_to_time(2984690786400)

#2 /usr/local/emhttp/plugins/disklocation/pages/devices.php(37): require_once('/usr/local/emht...')

#3 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34) : eval()'d code(25): require_once('/usr/local/emht...')

#4 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34): eval()

#5 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContentTabless.php(28): include('/usr/local/emht...')

#6 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContent.php(150): require_once('/usr/local/emht...')

#7 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout.php(174): include('/usr/local/emht...')

#8 /usr/local/emhttp/plugins/dynamix/template.php(102): require_once('/usr/local/emht...')

#9 {main}

[18-Jun-2026 16:08:36 America/Chicago] Error evaluating content in plugins/disklocation/disklocation_devices.page (severity: N/A): Unknown or bad format (PT2984690786400S)

Stack trace:

#0 /usr/local/emhttp/plugins/disklocation/pages/functions.php(653): DateInterval->__construct('PT2984690786400...')

#1 /usr/local/emhttp/plugins/disklocation/pages/array_devices.php(187): seconds_to_time(2984690786400)

#2 /usr/local/emhttp/plugins/disklocation/pages/devices.php(37): require_once('/usr/local/emht...')

#3 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34) : eval()'d code(16): require_once('/usr/local/emht...')

#4 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34): eval()

#5 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContentTabbed.php(78): include('/usr/local/emht...')

#6 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContent.php(150): require_once('/usr/local/emht...')

#7 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout.php(174): include('/usr/local/emht...')

#8 /usr/local/emhttp/plugins/dynamix/template.php(102): require_once('/usr/local/emht...')

#9 {main}

[18-Jun-2026 16:08:36 America/Chicago] Error evaluating content in plugins/disklocation/disklocation_smart.page (severity: N/A): Array sizes are inconsistent

Stack trace:

#0 /usr/local/emhttp/plugins/disklocation/pages/page_smart.php(69): array_multisort(Array, 3, Array)

#1 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34) : eval()'d code(4): require_once('/usr/local/emht...')

#2 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34): eval()

#3 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContentTabbed.php(78): include('/usr/local/emht...')

#4 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContent.php(150): require_once('/usr/local/emht...')

#5 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout.php(174): include('/usr/local/emht...')

#6 /usr/local/emhttp/plugins/dynamix/template.php(102): require_once('/usr/local/emht...')

#7 {main}

  • Author
17 hours ago, chasteencs said:

this is all i found in the php logs:

[18-Jun-2026 16:08:05 America/Chicago] Error evaluating content in plugins/disklocation/disklocation_dashboard.page (severity: N/A): Unknown or bad format (PT2984690786400S)

Stack trace:

#0 /usr/local/emhttp/plugins/disklocation/pages/functions.php(653): DateInterval->__construct('PT2984690786400...')

#1 /usr/local/emhttp/plugins/disklocation/pages/array_devices.php(187): seconds_to_time(2984690786400)

#2 /usr/local/emhttp/plugins/disklocation/pages/devices.php(37): require_once('/usr/local/emht...')

#3 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34) : eval()'d code(25): require_once('/usr/local/emht...')

#4 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34): eval()

#5 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContentTabless.php(28): include('/usr/local/emht...')

#6 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContent.php(150): require_once('/usr/local/emht...')

#7 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout.php(174): include('/usr/local/emht...')

#8 /usr/local/emhttp/plugins/dynamix/template.php(102): require_once('/usr/local/emht...')

#9 {main}

[18-Jun-2026 16:08:36 America/Chicago] Error evaluating content in plugins/disklocation/disklocation_devices.page (severity: N/A): Unknown or bad format (PT2984690786400S)

Stack trace:

#0 /usr/local/emhttp/plugins/disklocation/pages/functions.php(653): DateInterval->__construct('PT2984690786400...')

#1 /usr/local/emhttp/plugins/disklocation/pages/array_devices.php(187): seconds_to_time(2984690786400)

#2 /usr/local/emhttp/plugins/disklocation/pages/devices.php(37): require_once('/usr/local/emht...')

#3 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34) : eval()'d code(16): require_once('/usr/local/emht...')

#4 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34): eval()

#5 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContentTabbed.php(78): include('/usr/local/emht...')

#6 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContent.php(150): require_once('/usr/local/emht...')

#7 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout.php(174): include('/usr/local/emht...')

#8 /usr/local/emhttp/plugins/dynamix/template.php(102): require_once('/usr/local/emht...')

#9 {main}

[18-Jun-2026 16:08:36 America/Chicago] Error evaluating content in plugins/disklocation/disklocation_smart.page (severity: N/A): Array sizes are inconsistent

Stack trace:

#0 /usr/local/emhttp/plugins/disklocation/pages/page_smart.php(69): array_multisort(Array, 3, Array)

#1 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34) : eval()'d code(4): require_once('/usr/local/emht...')

#2 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/evalContent.php(34): eval()

#3 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContentTabbed.php(78): include('/usr/local/emht...')

#4 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/MainContent.php(150): require_once('/usr/local/emht...')

#5 /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout.php(174): include('/usr/local/emht...')

#6 /usr/local/emhttp/plugins/dynamix/template.php(102): require_once('/usr/local/emht...')

#7 {main}

There's something wrong with the SMART "power on hours" on device "sds", "ST8000NC0002-1XX112", SN: ZA1091VX

[powerontime] => 829080771

This means "26 years, 3 months, 7 days" power on time. I don't think any 8TB drives existed 26 years ago :P

Can you please give me the output of:

smartctl -a /dev/sds | grep Power_On_Hours

I need to check if your HDD outputs wrong values, or if something happens with the plugin. Thanks.

3 hours ago, FlamongOle said:

There's something wrong with the SMART "power on hours" on device "sds", "ST8000NC0002-1XX112", SN: ZA1091VX

[powerontime] => 829080771

This means "26 years, 3 months, 7 days" power on time. I don't think any 8TB drives existed 26 years ago :P

Can you please give me the output of:

smartctl -a /dev/sds | grep Power_On_Hours

I need to check if your HDD outputs wrong values, or if something happens with the plugin. Thanks.

smartctl -a /dev/sds | grep Power_On_Hours

9 Power_On_Hours 0x0032 066 066 000 Old_age Always - 29807 (4 175 0)

  • Author
5 hours ago, chasteencs said:

smartctl -a /dev/sds | grep Power_On_Hours

9 Power_On_Hours 0x0032 066 066 000 Old_age Always - 29807 (4 175 0)

Thanks, can you also give me the output (file) of this:

smartctl -x --json /dev/sds &> /tmp/smart_sds.json

I'm trying to figure out what's going on here, because the 29807 power on hour looks fine. I just wanna see if the json outputs something else or multiple values or something. Thanks.

3 minutes ago, chasteencs said:

No output with the command

30 minutes ago, FlamongOle said:

Thanks, can you also give me the output (file) of this:

smartctl -x --json /dev/sds &> /tmp/smart_sds.json

I'm trying to figure out what's going on here, because the 29807 power on hour looks fine. I just wanna see if the json outputs something else or multiple values or something. Thanks.

here it is

smart_sds.json

  • Author

There's something odd with this drive, the raw[value] and power_on_time[hours] are both far off, while the raw[string] contains probably the actual hours (29807) with some extra numbers behind. I'll see if I can make a workaround for this one day when I have time. Only workaround for Disk Location now is to pull out the drive :P

"id": 9,

"name": "Power_On_Hours",

...

},

"raw": {

"value": 175874615833711,

"string": "29807 (159 245 0)"

// - value 2:

"power_on_time": {

"hours": 829080826

},

  • Author

Update 2026.06.22

  • Commit #504 - BUG: Power_On_Hours from SMART fails when too high numbers are entered. Added and parses an extra "string" value if the two others default fails, otherwise leave empty.

@chasteencs Please try this update (you might have to do a Force SMART+DB as well, but I don't think it should be necessary).

6 hours ago, FlamongOle said:

Update 2026.06.22

  • Commit #504 - BUG: Power_On_Hours from SMART fails when too high numbers are entered. Added and parses an extra "string" value if the two others default fails, otherwise leave empty.

@chasteencs Please try this update (you might have to do a Force SMART+DB as well, but I don't think it should be necessary).

Its Working Beautifully. Thank you.

  • 2 weeks later...
  • Author

New function and feature in the making: assigning physical slots to device path. This will automatically replace drives in the assigned positions.

This function will be experimental, and not all devices are supported. There's no ETA on completion and just a vague idea is made in the development version. It will also be optional to use this per device (see attached picture).

Current help text:

Some devices can be assigned to be attached to a physical address, using this will auto-replace devices added to that slot in the future. Device PATH are assigned to tray slots instead of device name and serial number.
WARNING! If a SAS card, SAS-SATA breakout cables, motherboard has changed or HBA PCI position swap has been done, the physical locations must be reconfigured in the plugin! This function will always be experimental due to endless possible configurations out there. Using HBA cards in a fixed PCI location should keep the same addresses.

physical.png

On 6/7/2026 at 3:19 PM, FlamongOle said:

Then changing the "SMART controller type" to "SCSI" under device settings in Unraid should fix your issue. Is that set, or is it "default/auto"?

Hello! I've been busy lately so forgive me for getting back to you so late.
I just wanted to let you know I am still seeing this issue after manually setting the controller type in unraid.

Additionally I am getting them on both SAS and SATA disks so we can rule that out. I'm not sure if one of the earlier debug files above this quoted message would still have what you need, or if u need a new one from me because of the recent updates. I can try and catch one next time I see the flashing disks on failed smart if that's the case.

Edited by Lean_

Hi thanks for this!

Looks like there is a bug when one of the discs being tracked is a part of internal boot. Even though I already acknowledged the CRC error count on the drive, the display on the main page keeps flashingimage.png

  • Author
53 minutes ago, andyd said:

Hi thanks for this!

Looks like there is a bug when one of the discs being tracked is a part of internal boot. Even though I already acknowledged the CRC error count on the drive, the display on the main page keeps flashingimage.png

Can you post me the output of:

cat /var/local/emhttp/monitor.ini | grep .ack

I would also like to know what's the name of the other pool if you're using it combined with "flash"/internal boot.

Thanks

Edited by FlamongOle

  • Author
7 hours ago, Lean_ said:

Hello! I've been busy lately so forgive me for getting back to you so late.
I just wanted to let you know I am still seeing this issue after manually setting the controller type in unraid.

Additionally I am getting them on both SAS and SATA disks so we can rule that out. I'm not sure if one of the earlier debug files above this quoted message would still have what you need, or if u need a new one from me because of the recent updates. I can try and catch one next time I see the flashing disks on failed smart if that's the case.

Do you have any power settings that forces the disks to turn off, like backplate or HBA configuration of some sort? Any deep sleep functions or whatever they might be called? I'm not sure if some controllers that do these things can temporary store the SMART data while the drives are off, so it can always be pulled regardless of disk state while others do not. Just guessing here.

If that SMART data cannot be collected from specific devices, then it will be known as "failed" as that is more likely cause if that data would suddenly be gone. As long as it works initially when doing like "SMART+DB", then it will force wake all drives before pulling the SMART data and it stores them. Later it will run SMART collecting on IDLE/ACTIVE drives.

What might be interesting to see, is what state the "failed" drives are in (if it reports, active, idle, standby, off, anything else). You can try to pull that information running (change the sdX to whatever drive that shows failed SMART):

smartctl -n standby /dev/sdX | grep -i Device

Rerun the command above after SMART+DB update, it will wake up all the drives if they are sleeping.

Typically you should see something like:

Device is in IDLE_A mode
5 hours ago, FlamongOle said:

Do you have any power settings that forces the disks to turn off, like backplate or HBA configuration of some sort? Any deep sleep functions or whatever they might be called? I'm not sure if some controllers that do these things can temporary store the SMART data while the drives are off, so it can always be pulled regardless of disk state while others do not. Just guessing here.

If that SMART data cannot be collected from specific devices, then it will be known as "failed" as that is more likely cause if that data would suddenly be gone. As long as it works initially when doing like "SMART+DB", then it will force wake all drives before pulling the SMART data and it stores them. Later it will run SMART collecting on IDLE/ACTIVE drives.

What might be interesting to see, is what state the "failed" drives are in (if it reports, active, idle, standby, off, anything else). You can try to pull that information running (change the sdX to whatever drive that shows failed SMART):

smartctl -n standby /dev/sdX | grep -i Device

Rerun the command above after SMART+DB update, it will wake up all the drives if they are sleeping.

Typically you should see something like:

Device is in IDLE_A mode
  1. Yes, the HDD's are purposely being spun-down to save power after no activity for 45min to save on power. (24 drives power adds up)
    24bay backplane -> 9300 8i HBA. I have deep system sleep states (package/system c10) disabled in bios.

  2. The "Failed" drives are ALWAYS in standby (spun-down) when this happens, hence why I assume it just happens to be that smart polling happens right as a disk is spinning down

  3. The next time smart is polled on the disk, the critical flashing disappears and returns to normal.

I don't currently have any flashing to run that command on , but from experience as long as the drives are active in unraid they will clear on their own.

I have a feeling that if there was somehow a way to:

on poll, if smart fail -> check if spun down after returning data -> if yes (ignore) -> else (flash critical fail).

This would probably alleviate the false "failures" and critical flashing.

  • Author
9 minutes ago, Lean_ said:
  1. Yes, the HDD's are purposely being spun-down to save power after no activity for 45min to save on power. (24 drives power adds up)
    24bay backplane -> 9300 8i HBA. I have deep system sleep states (package/system c10) disabled in bios.

  2. The "Failed" drives are ALWAYS in standby (spun-down) when this happens, hence why I assume it just happens to be that smart polling happens right as a disk is spinning down

  3. The next time smart is polled on the disk, the critical flashing disappears and returns to normal.

I don't currently have any flashing to run that command on , but from experience as long as the drives are active in unraid they will clear on their own.

I have a feeling that if there was somehow a way to:

on poll, if smart fail -> check if spun down after returning data -> if yes (ignore) -> else (flash critical fail).

This would probably alleviate the false "failures" and critical flashing.

The reason I want the output of the commands is that I need to see if there's something strange coming out of it.

Disk Location is not supposed to pull any SMART data from sleeping devices, and does normally just use the formerly saved data. It literally checks the state of a drive before pulling the data in auto-mode.

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...

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.