initramfs: Set elevator=noop on the rpool's disks
ZFS already sets elevator=noop for wholedisk vdevs (for all pools), but typical root-on-ZFS installations use partitions. This sets elevator=noop on the disks in the root pool. Ubuntu 16.04 and 16.10 had this. It was lost in 17.04 due to Debian switching to this upstream initramfs script. Signed-off-by: Richard Laager <rlaager@wiktel.com>
This commit is contained in:
parent
11b9dcfb2d
commit
4fc411f7a3
|
@ -883,6 +883,24 @@ mountroot()
|
||||||
/bin/sh
|
/bin/sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Set elevator=noop on the root pool's vdevs' disks. ZFS already
|
||||||
|
# does this for wholedisk vdevs (for all pools), so this is only
|
||||||
|
# important for partitions.
|
||||||
|
"${ZPOOL}" status -L "${ZFS_RPOOL}" 2> /dev/null |
|
||||||
|
awk '/^\t / && !/(mirror|raidz)/ {
|
||||||
|
dev=$1;
|
||||||
|
sub(/[0-9]+$/, "", dev);
|
||||||
|
print dev
|
||||||
|
}' |
|
||||||
|
while read i
|
||||||
|
do
|
||||||
|
if [ -e "/sys/block/$i/queue/scheduler" ]
|
||||||
|
then
|
||||||
|
echo noop > "/sys/block/$i/queue/scheduler"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------
|
# ----------------------------------------------------------------
|
||||||
# P R E P A R E R O O T F I L E S Y S T E M
|
# P R E P A R E R O O T F I L E S Y S T E M
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue