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 Viewer

Featured Replies

@Lazaros Chalkidis The unassigned drive is now working, thank you! I also really appreciate the font size changer. This plug-in is very, very nice!

@Lazaros Chalkidis The widget is showing all disks defined in /var/local/emhttp/disks.ini. My disks.ini has 24 disks defined while my array only has 8 disks in it. All of the "empty" entries in the disks.ini file have status="DISK_NP". Would it be possible for you to have a toggle to automatically filter status="DISK_NP" entries in the disks.ini file?

Here's an example entry:

["disk8"]
idx="8"
name="disk8"
device=""
id=""
size="0"
sectors="0"
sector_size="0"
transport=""
rotational=""
discard=""
removable=""
spundown="0"
status="DISK_NP"
format="-"
temp="*"
numReads="0"
numWrites="0"
numErrors="0"
type="Data"
color="grey-off"
spindownDelay="-1"
spinupGroup=""
idSb=""
sizeSb="0"
deviceSb=""
luksState="0"
fsType="auto"
fsStatus="-"
autotrim=""
compression=""
warning=""
critical=""
exportable="no"
comment=""
fsColor="grey-off"
fsEmpty="no"
fsSize="0"
fsFree="0"
fsUsed="0"
  • Author

Hi @mrvnsk9 you're right, those empty array slots (no disk assigned, size 0, DISK_NP) shouldn't be showing at all.

I already hide empty parity slots and just missed the data ones, so the next update will filter them out automatically, no toggle needed.

  • Author

v2026.06.16 is out

Fixed

A pool scrub scheduled in Unraid is now detected, so the Tool page shows the next scrub time instead of always reading "no schedule". This covers both ZFS and BTRFS pool scrubs.

Empty array slots are no longer shown as phantom rows. Unraid keeps a placeholder entry for every configured array position and the unused ones were appearing as blank rows. A disk that is assigned but currently missing still appears, since that is a real warning worth seeing.

A configured array or pool disk whose drive is missing (disconnected or removed) is now shown as "NOT INSTALLED or MISSING": the name is dimmed with a label beside it, spaced clearly from the name, and every column is blank instead of an empty 0 percent row, and its spin control shows no tooltip since there is no drive to spin. This covers missing parity, data and pool disks, and can be turned off separately for the widget and the Tool page under Settings, Display.

New Features

The Unraid boot (flash) drive is now shown as its own Boot Device section after the unassigned devices, on both the widget and the Tool page. It cannot be spun up or down from the bolt, and a new Boot device Display setting (separate for each, on by default) controls whether it appears.

Hovering a disk name now shows a tooltip with the drive's identification (model, serial and device node), like the Main page Identification column. It works on both the widget and the Tool page, for array, pool and unassigned disks, and can be turned on or off separately for each under Settings, Display.

NVMe drives now show their wear level, the percentage of rated life used, next to the health icon in the Tool page Health column, coloured green, amber or red as it rises. Drives that do not report it stay blank.

Improvements

The Reallocated, Pending and CRC columns on the Tool page are now colour-coded green, amber or red, so a healthy zero stands out from a count worth watching.

The Age column now shows the drive's age in years next to its total power-on hours, on a single line.

Pool and array totals rows are cleaner: columns that apply only to a single disk are left blank instead of showing "n/a", and pool-level values such as scrub and fragmentation show once on the summary row instead of on every member.

On the Tool page, array disks and multi-disk pool members now carry the same subtle row highlight as on the widget, making them easy to tell apart from the totals row.

The spin tooltip on the bolt now starts at the bolt and extends to the right, on both the widget and the Tool page, instead of being centred over the bolt.

The header icon's tooltip is now sized to its contents with aligned columns, and grows as needed so a disk's error count is never cut off.

* Full compatibility with Unraid Themes (Black - White - Azure - Gray)

Hello, it seems that its for now not working 100% correct with internal boot - or at least for me.

It shows show FLASH2 of my internal boot pool.

image.png
image.png
image.png

  • Author

Hi @izzymoren0, I see what the problem is. I hadn't accounted for 7.3 letting you boot the OS from internal disks.

I'll fix the issue you ran into in the next release.

Thanks for the report!

  • Author

v2026.06.19 is out

Fixed

The settings gear has been removed from the summary rows (Array, Cache, Pool and Boot). Those rows are totals, not a single disk, so the gear only opened a blank settings page. The gear stays on the real disk rows.

New Features

NVMe drives now show their power draw in watts next to the temperature, on both the widget and the Tool page, the same as Unraid's own display. It follows Unraid's "Enable NVME power monitoring" setting under Settings, Disk Settings, and drives that report no draw stay blank.

The Boot Device section now also covers a dedicated internal boot pool, whether a single drive or a RAID pool, not just the USB flash drive. The Boot device Display setting still controls whether it appears, separately for the widget and the Tool page.

Improvements

On the widget, the disk columns now match the Tool page: cells that do not apply to a row stay blank instead of showing a dash (for example free and used space on parity and pool member rows), and a disk with no activity reads "idle" or "sleep" in the Speed and Temperature columns instead of a dash.

The Used column title on the widget is now centred over its column, like the Tool page.

Hovering a disk name, or the temperature, error and health icons, no longer shows a question-mark cursor, and the divider line inside those tooltips has been removed.

Note: Since I don't have a way to reproduce this setup with a boot OS on an internal drive, or with internal drives configured as RAID, I based these changes on the way the official plugin implements the same functionality. If you notice any issues, please report them and I'll take a look.

Do you think you could add a disk activity percentage like this plugin did? Or add a way to use the other plugin's data?

  • Author
On 6/20/2026 at 5:40 AM, Thorman said:

Do you think you could add a disk activity percentage like this plugin did? Or add a way to use the other plugin's data?

I'll add it in the next release as a show/hide option in the settings (off by default), so you can turn it on if you find it useful.

image.png

Hello,

I think this still doesn't look quite right. I would have expected it to look similar to the cache implementation. It would be also cool if it shows the file system like on cache, in my case its an zfs boot pool.

Maybe also a nice thing to have is if we are able to hide some of the devices, especially for the unassigned part.

image.png

as example, to hide here the MASSSTORAGECLASS.

Edited by izzymoren0

  • Author

Hi, @izzymoren0, could you post your disks.ini so I can see exactly how 7.3 lists your internal boot pool?

You'll find it at /var/local/emhttp/disks.ini (open a terminal and run cat /var/local/emhttp/disks.ini, or grab it with the file manager).

That is the file Disk Viewer reads, so it will show me why the boot pool is being split into a separate POOL row and a 1 MB boot entry.

Feel free to strip any serial numbers before posting.

["parity"]
idx="0"
name="parity"
device="sdd"
id="TOSHIBA_MG10ACA20TE"
size="19531825100"
sectors="39063650304"
sector_size="512"
transport="ata"
rotational="1"
discard="0"
removable="0"
spundown="0"
status="DISK_OK"
format="GPT: 4KiB-aligned"
temp="30"
numReads="1605"
numWrites="2147"
numErrors="0"
type="Parity"
color="green-on"
spindownDelay="-1"
spinupGroup=""
idSb="TOSHIBA_MG10ACA20TE"
sizeSb="19531825100"

["disk1"]
idx="1"
name="disk1"
device="sde"
id="TOSHIBA_MG09ACA18TE"
size="17578327020"
sectors="35156656128"
sector_size="512"
transport="ata"
rotational="1"
discard="0"
removable="0"
spundown="0"
status="DISK_OK"
format="GPT: 1MiB-aligned"
temp="29"
numReads="73814"
numWrites="546"
numErrors="0"
type="Data"
color="green-on"
spindownDelay="-1"
spinupGroup=""
idSb="TOSHIBA_MG09ACA18TE"
sizeSb="17578327020"
deviceSb="md1p1"
luksState="0"
fsType="xfs"
fsStatus="Mounted"
fsMountpoint="/mnt/disk1"
autotrim="off"
compression="off"
comment=""
fsProfile=""
fsWidth="1"
fsGroups="1"
state="7"
slots="1"
devices="1"
devicesSb="1"
fsColor="green-on"
fsEmpty="no"
fsSize="17576240108"
fsFree="8843980924"
fsUsed="8732259184"

["disk2"]
idx="2"
name="disk2"
device="sdf"
id="TOSHIBA_MG09ACA18TE"
size="17578327020"
sectors="35156656128"
sector_size="512"
transport="ata"
rotational="1"
discard="0"
removable="0"
spundown="0"
status="DISK_OK"
format="GPT: 1MiB-aligned"
temp="30"
numReads="70111"
numWrites="555"
numErrors="0"
type="Data"
color="green-on"
spindownDelay="-1"
spinupGroup=""
idSb="TOSHIBA_MG09ACA18TE"
sizeSb="17578327020"
deviceSb="md2p1"
luksState="0"
fsType="xfs"
fsStatus="Mounted"
fsMountpoint="/mnt/disk2"
autotrim="off"
compression="off"
comment=""
fsProfile=""
fsWidth="1"
fsGroups="1"
state="7"
slots="1"
devices="1"
devicesSb="1"
fsColor="green-on"
fsEmpty="no"
fsSize="17576240108"
fsFree="10183193516"
fsUsed="7393046592"

["disk3"]
idx="3"
name="disk3"
device="sdg"
id="WDC_WD30EFRX-68AX9N0"
size="2930265540"
sectors="5860533168"
sector_size="512"
transport="ata"
rotational="1"
discard="0"
removable="0"
spundown="0"
status="DISK_OK"
format="GPT: 1MiB-aligned"
temp="32"
numReads="947"
numWrites="523"
numErrors="0"
type="Data"
color="green-on"
spindownDelay="-1"
spinupGroup=""
idSb="WDC_WD30EFRX-68AX9N0"
sizeSb="2930265540"
deviceSb="md3p1"
luksState="0"
fsType="xfs"
fsStatus="Mounted"
fsMountpoint="/mnt/disk3"
autotrim="off"
compression="off"
comment=""
fsProfile=""
fsWidth="1"
fsGroups="1"
state="7"
slots="1"
devices="1"
devicesSb="1"
fsColor="green-on"
fsEmpty="yes"
fsSize="2928834748"
fsFree="2872721952"
fsUsed="56112796"

["disk4"]
idx="4"
name="disk4"
device="sdh"
id="WDC_WD30EFRX-68AX9N0"
size="2930265540"
sectors="5860533168"
sector_size="512"
transport="ata"
rotational="1"
discard="0"
removable="0"
spundown="0"
status="DISK_OK"
format="GPT: 1MiB-aligned"
temp="31"
numReads="947"
numWrites="523"
numErrors="0"
type="Data"
color="green-on"
spindownDelay="-1"
spinupGroup=""
idSb="WDC_WD30EFRX-68AX9N0"
sizeSb="2930265540"
deviceSb="md4p1"
luksState="0"
fsType="xfs"
fsStatus="Mounted"
fsMountpoint="/mnt/disk4"
autotrim="off"
compression="off"
comment=""
fsProfile=""
fsWidth="1"
fsGroups="1"
state="7"
slots="1"
devices="1"
devicesSb="1"
fsColor="green-on"
fsEmpty="yes"
fsSize="2928834748"
fsFree="2872721952"
fsUsed="56112796"

["parity2"]
idx="29"
name="parity2"
device=""
id=""
size="0"
sectors="0"
sector_size="0"
transport=""
rotational=""
discard=""
removable=""
spundown="0"
status="DISK_NP_DSBL"
format="-"
temp="*"
numReads="0"
numWrites="0"
numErrors="0"
type="Parity"
color="grey-off"
idSb=""

["boot"]
idx="30"
name="boot"
device="nvme2n1"
id="INTEL_MEMPEK1J016GAL"
size="1004"
sectors="28131328"
sector_size="512"
transport="nvme"
rotational="0"
discard="1"
removable="0"
spundown="0"
status="DISK_OK"
format="GPT: 1MiB-aligned (bootable)"
temp="31"
numReads="94"
numWrites="0"
numErrors="0"
type="Cache"
color="green-on"
deviceSb="nvme2n1p4"

["boot2"]
idx="31"
name="boot2"
device="nvme1n1"
id="INTEL_MEMPEK1J016GAD"
size="1004"
sectors="28131328"
sector_size="512"
transport="nvme"
rotational="0"
discard="1"
removable="0"
spundown="0"
status="DISK_OK"
format="GPT: 1MiB-aligned (bootable)"
temp="33"
numReads="84"
numWrites="0"
numErrors="0"
type="Cache"
color="green-on"
deviceSb="nvme1n1p4"

["cache"]
idx="32"
name="cache"
device="nvme3n1"
id="Lexar_SSD_NM790_2TB"
size="2000397656"
sectors="4000797360"
sector_size="512"
transport="nvme"
rotational="0"
discard="1"
removable="0"
status="DISK_OK"
format="MBR: 1MiB-aligned"
temp="38"
numReads="165865"
numWrites="3633859"
numErrors="0"
type="Cache"
color="green-on"
deviceSb="nvme3n1p1"
fsType="btrfs"
fsStatus="Mounted"
fsMountpoint="/mnt/cache"
autotrim="on"
fsFree="1273180168"
fsUsed="726690904"

["cache2"]
idx="33"
name="cache2"
device="nvme0n1"
id="Lexar_SSD_NM790_2TB"
size="2000397656"
sectors="4000797360"
sector_size="512"
transport="nvme"
rotational="0"
discard="1"
removable="0"
status="DISK_OK"
format="MBR: 1MiB-aligned"
temp="34"
numReads="173511"
numWrites="3638807"
numErrors="0"
type="Cache"
color="green-on"
deviceSb="nvme0n1p1"

["flash"]
idx="34"
name="flash"
device="nvme2n1"
id="INTEL_MEMPEK1J016GAL"
size="14064640"
sectors="28131328"
sector_size="512"
transport="nvme"
rotational="0"
discard="1"
removable="0"
status="DISK_OK"
format="GPT: 1MiB-aligned (bootable)"
temp="31"
numReads="4757"
numWrites="18582"
numErrors="0"
type="Boot"
color="green-on"
fsType="zfs"
fsStatus="Mounted"
fsMountpoint="/boot"

["flash2"]
idx="35"
name="flash2"
device="nvme1n1"
id="INTEL_MEMPEK1J016GAD"
size="14064640"
sectors="28131328"
sector_size="512"
transport="nvme"
rotational="0"
discard="1"
removable="0"
status="DISK_OK"
format="GPT: 1MiB-aligned (bootable)"
temp="33"
numReads="5694"
numWrites="18524"
numErrors="0"
type="Boot"
color="green-on"
  • Author

v2026.06.24 is out

Fixed

The internal boot pool is now detected correctly on Unraid 7.3. On a server that boots from an internal pool instead of a USB stick, the pool now appears once under Boot Device with its real size, usage and member drives, and the tiny bootable partition Unraid keeps on those same drives is no longer shown as a separate 1 MB pool or listed twice.

The widget now keeps the height you set after a reboot or a fresh login, not only for the current browser session.

New Features

You can now hide individual unassigned devices and single-disk pools from the disk list, with a separate list for the widget and for the Tool page, so you can hide something on one without touching the other. Handy for clutter like built-in card readers that always read 0 B. Devices are matched by their stable id, so they stay hidden across reboots and reconnects, and your array, parity, pool members and boot device are never on the list. A Rescan button picks up anything you just plugged in.

Improvements

NVMe drives now show a chip icon and no longer have a spin control, since they don't spin down. SATA SSDs and hard drives keep the bolt.

The Tool page section headings now match the widget, showing the disk count and RAID profile next to the name.

On the Tool page, the Realloc, Pending and CRC headings turn amber or red when a disk in that column needs attention, the same as the Temp heading.

Unassigned devices now start hidden on a fresh install and after Reset to Defaults, like the Boot Device section. Settings you have already saved are not touched.

  • Author

v2026.06.26 is out

Fixed

Disk name labels could appear invisible on the white and azure themes, and on systems where the dashboard theme had never been explicitly chosen. The plugin now follows Unraid's active theme reliably and also confirms light or dark from the page itself, so the disk names always show.

On the gray theme the widget and Tool page now use Unraid's slate-blue surface colors for the sticky column header and the cache and pool row striping, instead of a flat neutral gray that clashed with the dashboard.

On the Tool settings page the header indicator options no longer unlock by mistake on a fresh install or right after a reboot, before the dashboard has been opened. The dashboard widget is treated as present until it is genuinely removed, so the options stay managed by the widget as intended.

New Features

The Tool page now shows how busy each disk is, not just how fast. The Speed column, renamed Speed r/w - i/o, shows each active disk's i/o as a percentage next to its read/write speed, with a bar. SSD and NVMe drives show it in blue, spinning drives go from green to amber to red as they get busier, at thresholds you can set. It reads the kernel's activity counters, so it never wakes a sleeping disk, and updates live with the speed. Idle and sleeping disks read idle or sleep. On by default; switch it off under the Tool tab.

On 6/26/2026 at 1:09 AM, Lazaros Chalkidis said:

New Features

The Tool page now shows how busy each disk is, not just how fast. The Speed column, renamed Speed r/w - i/o, shows each active disk's i/o as a percentage next to its read/write speed, with a bar. SSD and NVMe drives show it in blue, spinning drives go from green to amber to red as they get busier, at thresholds you can set. It reads the kernel's activity counters, so it never wakes a sleeping disk, and updates live with the speed. Idle and sleeping disks read idle or sleep. On by default; switch it off under the Tool tab.

Thank you so much for adding this. Could you please add this to the widget as well?

Edited by Thorman

  • Author
On 6/27/2026 at 11:07 PM, Thorman said:

Thank you so much for adding this. Could you please add this to the widget as well?

I tried adding the I/O info to the widget, but I'm running out of space. I might need to make the row a bit taller to fit everything in. I'll see what works best.

I'll add it in the next update.

image.png

looks good now here with the internal boot, thank you :)

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.