Sysop: | Amessyroom |
---|---|
Location: | Fayetteville, NC |
Users: | 28 |
Nodes: | 6 (0 / 6) |
Uptime: | 53:08:33 |
Calls: | 422 |
Files: | 1,025 |
Messages: | 90,610 |
Can anyone suggest how to fix this slow spin-up problem?
Seagate Iron Wolf 8TB ST8000VN004I see several complaints about that drive being slow to spin-up, the
Can anyone suggest how to fix this slow spin-up problem?
Java Jive wrote:
Seagate Iron Wolf 8TB ST8000VN004I see several complaints about that drive being slow to spin-up, the
Can anyone suggest how to fix this slow spin-up problem?
manual says 23s (typ) to 30s (max), so I suspect there's nothing you can
do to the drives themselves.
in your grub.cfg maybe experiment with boot_delay=xxx values in ms to
delay all the kernel messages?
Having successfully upgraded my two primary QNAP 251+ NASs, I've handed down two of the HDs to the Zyxel NSA221s NASs that were my original backup solution. The disks are Seagate Iron Wolf 8TB ST8000VN004, originally from Amazon ...the NAS specs saying that they only work up to a max of 4TB per disk, I'm actually getting the full (nominal) 8TB added to the capacity of the other Toshiba HDs which have always been free of such problems.
https://www.amazon.co.uk/dp/B07SZVVBBK
... but they are giving problems in their new home, or, I should say, housing.
The problem is the same for each, they spin up too slowly to be found as the NSA221 boots, so after a cold boot I have to reboot, so that then they can be found on the reboot. Once that is done, they seem to be perfectly satisfactory, and, despite
I've had similar problems in the past with other Seagate HDs in these NASs, which at the time I got around by using a reboot flag in a rather convoluted manner, and which now won't work anyway because I have since configured the NASs to use thecombined disk space of the two disks as one large virtual HD volume, which means that now I have nowhere to write a reboot flag unless both HD are running and found at boot, in which case I wouldn't need to write it anyway. I might be able to get round
This reboot requirement will be easy to forget and should be avoidable by making the system wait longer for the disks to spin up. Setting aside the problem of altering firmware (see next para), in a normal Linux installation, how normally would oneaccomplish this? A boot parameter? An /etc setting?
I have some scope for making changes, as in the past I've recompiled the firmware to be Gnu GPL and both NASs are running the result. Also the command run by UBoot is stored in an environment variable, which means that I could add a boot parameter tothat fairly easily.
The Zyxel DK to build a GPL firmware dates from the Ubuntu 7 era (!), but I was still running it satisfactorily somewhere around Ubuntu 16 or 18. Also, the NASs each have a serial header which I can use to interrupt their boot and change things,though I wouldn't want to be doing that on a permanent basis, only for temporary fixes to see if they work. There are also OpenWRT versions of the firmware, but having obtained already a pretty good result from my own firmware, I haven't gone down that
Can anyone suggest how to fix this slow spin-up problem?
boot_delay appears to slow down kernel printouts, which is likely to be a
bit dependent on how many there are.
Instead I'd use rootdelay=30 to delay
the kernel start by 30 seconds, and then it'll boot at full speed.
Theo wrote:
boot_delay appears to slow down kernel printouts, which is likely to be a bit dependent on how many there are.
hence "experiment"
Instead I'd use rootdelay=30 to delay
the kernel start by 30 seconds, and then it'll boot at full speed.
I read that as waiting xx seconds before mounting the root fs, but if it can't see any disks, will it wait, or bail-out?
In uk.comp.os.linux Andy Burns <usenet@andyburns.uk> wrote:
Theo wrote:
Instead I'd use rootdelay=30 to delay
the kernel start by 30 seconds, and then it'll boot at full speed.
I read that as waiting xx seconds before mounting the root fs, but if it
can't see any disks, will it wait, or bail-out?
It'll pause the boot for 30 seconds at the point the root fs is mounted.
The rootfs is not on HDD, it'll be in flash, so the boot will then proceed once the 30s is up - it won't then fail for lack of a rootfs. If the discs still aren't up at the end of 30s (or 120s or whatever number you write there) then they will be missing, just as they are at the moment. But if they are not reliable enough to start given a large enough timeout then that points to a problem with the discs, rather than just a regular but slow spinup.
(if you did have your rootfs on the HDD you could use 'rootwait' to pause until the rootfs volume was ready. But that only applies for the rootfs and not other volumes)
from the sound, I was suspicious that the drives are only powered up
when the kernel loads the driver, and then the driver almost immediately expects them to be present, which would mean that this ploy wouldn't
work. However, I was game to try it, as I didn't think it could do any harm, but, as I feared, it didn't work. The delay comes long after this point, and too late to affect things.
Java Jive wrote:
from the sound, I was suspicious that the drives are only powered up
when the kernel loads the driver, and then the driver almost immediately expects them to be present, which would mean that this ploy wouldn't work. However, I was game to try it, as I didn't think it could do any harm, but, as I feared, it didn't work. The delay comes long after this point, and too late to affect things.
A wild thought (which I can't test as I no longer run openWRT so no
u-boot device) add the normal kernel as a crash kernel, let the first
kernel boot and spin the drives up too late ... then find a way to crash
it, so the crash kernel starts up affer the drives are spinning?
I'm not sure that's an intrinsic feature of uboot - the idea of booting into something different second time around is a feature of OpenWRT I think.Crash kernels aren't an openẀRT thing, just a Linux thing, I'm sure
~ # /zyxel/sbin/fw_setenv bootdelay 120
The difference is that this is prior to the kernel booting so the SATA
driver does not fire up. However, if spinup only happens when the driver begins talking to the drive then this won't help.
I suppose another option if that happens is to try to talk to the SATA drive in uboot, which might commence spinup. Docs: https://github.com/u-boot/u-boot/blob/master/doc/README.sata
maybe the 'sata info' command is enough to wake the HDD, and even if it
fails you can then 'sleep 30' or something while the drive spins up, and
then boot Linux.
(I'm assuming the Zyxel firmware will let you edit the u-boot command
script, not just the u-boot environment variables)
On 2025-05-06 15:07, Theo wrote:
~ # /zyxel/sbin/fw_setenv bootdelay 120
The difference is that this is prior to the kernel booting so the SATA driver does not fire up. However, if spinup only happens when the driver begins talking to the drive then this won't help.
Yes, I tried 20 seconds, so now the message ...
Hit any key to stop autoboot:
... displays for 20 seconds instead of the 3 seconds previously, but
this did not help because the HDs didn't spin up upon power on, only
when the driver loaded.
I suppose another option if that happens is to try to talk to the SATA drive
in uboot, which might commence spinup. Docs: https://github.com/u-boot/u-boot/blob/master/doc/README.sata
maybe the 'sata info' command is enough to wake the HDD, and even if it fails you can then 'sleep 30' or something while the drive spins up, and then boot Linux.
(I'm assuming the Zyxel firmware will let you edit the u-boot command script, not just the u-boot environment variables)
I may look into this, though I think the best solution would be to fix
the short delay in the SATA driver module, and I'm trying to find a
suitable place in the source files to do that. Meanwhile, a simpler possibility would be to write the autoreboot flag into the UBoot
environment, because that doesn't need the HDs to be found to provide storage, and would survive a reboot. I may try this as a temporary fix, until and if I can investigate a better solution.
Are you sure this delay isn't just the drive set to spin down when not used? Perhaps they boot in the spun-down state. When you try to access a drive that's spun down, the system will often hang waiting for it to spin up.
Since the kernel wants to read the partition table stored on the disc I'm
not surprised if it hangs if the drive isn't spinning, and maybe times out.
The simplest way to adjust it with a Windows tool like SeaTools - there's
now a version for Linux and a bootable USB version too.
On 2025-05-07 15:50, Theo wrote:
Are you sure this delay isn't just the drive set to spin down when not
used?
Perhaps they boot in the spun-down state. When you try to access a drive >> that's spun down, the system will often hang waiting for it to spin up.
Since the kernel wants to read the partition table stored on the disc I'm
not surprised if it hangs if the drive isn't spinning, and maybe times
out.
The simplest way to adjust it with a Windows tool like SeaTools - there's
now a version for Linux and a bootable USB version too.
Some boxes set that OFF timeout themselves, not in the disks, so that it
is impossible to modify. At ten minutes of no activity, they power down
the disks.