diff --git a/package/base-files/files/etc/init.d/led b/package/base-files/files/etc/init.d/led
index a6be788a5e0569368b164cb62acd4a9775489b34..1d10f723d0ce11bff6828661dfa7385b825791a1 100755
--- a/package/base-files/files/etc/init.d/led
+++ b/package/base-files/files/etc/init.d/led
@@ -37,6 +37,12 @@ load_led() {
 	[ -e /sys/class/leds/${sysfs}/brightness ] && {
 		echo "setting up led ${name}"
 
+		printf "%s %s %d\n" \
+			"$sysfs" \
+			"$(sed -ne 's/^.*\[\(.*\)\].*$/\1/p' /sys/class/leds/${sysfs}/trigger)" \
+			"$(cat /sys/class/leds/${sysfs}/brightness)" \
+				>> /var/run/led.state
+
 		[ "$default" = 0 ] &&
 			echo 0 >/sys/class/leds/${sysfs}/brightness
 
@@ -103,11 +109,17 @@ load_led() {
 
 start() {
 	[ -e /sys/class/leds/ ] && {
-		local led
-		for led in /sys/class/leds/*; do
-			[ -e "$led/trigger" ] && echo "none" > "$led/trigger"
-			[ -e "$led/brightness" ] && echo "0" > "$led/brightness"
-		done
+		[ -s /var/run/led.state ] && {
+			local led trigger brightness
+			while read led trigger brightness; do
+				[ -e "/sys/class/leds/$led/trigger" ] && \
+					echo "$trigger" > "/sys/class/leds/$led/trigger"
+
+				[ -e "/sys/class/leds/$led/brightness" ] && \
+					echo "$brightness" > "/sys/class/leds/$led/brightness"
+			done < /var/run/led.state
+			rm /var/run/led.state
+		}
 
 		config_load system
 		config_foreach load_led led