Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
| docs:guide-user:troubleshooting:failsafe_and_factory_reset [2019/04/07 13:42] – [Hard Factory Reset] hnyman | docs:guide-user:troubleshooting:failsafe_and_factory_reset [2024/06/23 11:45] – Tweak failsafe to remind about setting static IP for the PC richb-hanover | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Failsafe | + | ====== Failsafe |
| - | OpenWrt offers several ways to "start over" with your router. | + | OpenWrt offers several ways to "start over" with your router: |
| - | * **Failsafe | + | * **[[docs: |
| - | * **Factory Reset** erases all your packages and settings, returning the router to its initial state after installing OpenWrt. | + | * **[[docs: |
| - | * **Recovery | + | * **[[docs: |
| - | ===== Failsafe | + | ===== Failsafe |
| - | //OpenWrt// allows you to boot into a **failsafe mode** that overrides its current configuration. If your device becomes inaccessible, | + | OpenWrt allows you to boot into a **failsafe mode** that overrides its current configuration. |
| + | If your device becomes inaccessible, | ||
| + | When you reboot in failsafe mode, the device starts up in a basic operating state, with a few hard coded defaults, and you can begin to fix the problem manually. | ||
| - | Failsafe mode **cannot**, however, fix more deeply rooted problems like faulty hardware or a broken kernel. It is similar to a reset, however with failsafe, you can to access your device and restore settings if desired, whereas a reset would just wipe everything. | + | Failsafe mode can be triggered by pressing (almost any) button on the device shortly after powering it on. |
| + | Each router | ||
| - | **Caveat:** Failsafe mode is only available if you have installed firmware from a SquashFS image, that includes the required read-only root partition. To verify whether your device has the SquashFS root partition, check for " | + | Failsafe mode **cannot**, however, fix more deeply rooted problems like faulty hardware or a broken kernel. |
| + | It is similar to a reset, however with failsafe, you can access | ||
| - | < | + | **Caveat:** Failsafe mode is only available if you have installed firmware from a Squashfs image, that includes the required read-only root partition. |
| + | To verify whether your device has the SquashFS root partition, check for " | ||
| + | |||
| + | < | ||
| grep squash / | grep squash / | ||
| </ | </ | ||
| Line 18: | Line 25: | ||
| The terminal should return something similar to this: | The terminal should return something similar to this: | ||
| - | < | + | < |
| - | ==== Entering failsafe mode ==== | + | /dev/root /rom squashfs ro,relatime 0 0 |
| + | </ | ||
| - | Make sure you use a wired connection, since the failsafe will disable your wireless connectivity. | ||
| - | On most routers, OpenWrt | + | ==== Entering failsafe mode ==== |
| + | Failsafe mode starts the router with the IP address 192.168.1.1, and disables | ||
| + | DHCP and wireless connectivity. | ||
| + | You will need to set your PC to a static address on the same subnet | ||
| + | (e.g., 192.168.1.10) and connect via Ethernet. | ||
| + | Sometimes you need to connect | ||
| + | to get connectivity. | ||
| + | **Try the LAN1 port first.** | ||
| + | DSA devices frequently enable [[https:// | ||
| + | On most routers, OpenWrt will blink an LED (usually " | ||
| + | Early in the boot cycle, OpenWrt watches for a button press (any button) | ||
| + | inside a specific two second window to indicate that it should enter failsafe mode. | ||
| **To enter failsafe mode, follow one of the procedures listed below:** | **To enter failsafe mode, follow one of the procedures listed below:** | ||
| - | **Recommended | + | **Simplest - recommended |
| + | This can be the WPS, Reset, or other button on the device. | ||
| + | The LEDs provide clues for timing the button press. | ||
| + | Watch the LED blinking speeds immediately after powering up the router. | ||
| + | Most routers show three different (power) LED blinking speeds during boot: | ||
| - | For most users and most devices, the LEDs now (2018) provide sufficient clues as to timing to be able to avoid older recommendations to "press the XXX button | + | * A power-on sequence of lights that is specific to the device' |
| + | * Then a fast 5-per-second blinking rhythm during two seconds, while router waits for a button press | ||
| + | * Then either: | ||
| + | * A faster, 10-per-second blink if failsafe mode was triggered. The device is listening on 192.168.1.1 | ||
| + | * A slower, 2.5-per-second blink continuing to the end of normal boot, if the failsafe was not triggered | ||
| + | * If you missed the timing | ||
| + | |||
| + | **Alternate for expert users: Wait (with a packet sniffer) for a special broadcast packet and press a button.** The packet will be sent to destination address 192.168.1.255 port UDP 4919. | ||
| + | The packet contains the text "//Please press button now to enter failsafe//". | ||
| + | So for example, in a terminal and using tcpdump, with the router connected to port eth0 of your computer, you would enter the command < | ||
| - | There are three different | + | **Alternate for expert users with serial connection: Watch for a boot message on the serial console and press a key (" |
| + | The message shown in the console is "// | ||
| - | * A power-on sequence of lights that is specific | + | Usually, it is easiest |
| - | * Then a fast 5-per-second blinking rhythm during two seconds, while router waits for user to trigger the failsafe mode, typically by a button | + | However, do consult the available documentation |
| - | * Then either | + | Whichever trigger you use, the device will enter failsafe |
| - | * A faster, 10-per-second blink if the user pressed | + | |
| - | * A slower, 2.5-per-second blink continuing to the end of boot, if the failsafe | + | |
| + | Note that modern OpenWrt always uses SSH for terminal connections. | ||
| - | **Alternate for expert users: Wait (with a packet sniffer) for a special broadcast packet and press a button.** The packet will be sent to destination address 192.168.1.255 port UDP 4919. The packet contains the text "// | ||
| - | **Alternate for expert users with serial connection: Watch for a boot message on the serial console and press a key (" | + | ================= |
| - | Usually, it is easiest to watch the LEDs. However, do consult the available documentation for your device, as there is no default button assigned as a reset button and not all procedures work on every device. Whichever trigger you use, the device will enter failsafe mode and you can access the command line with SSH (always possible) or a serial keyboard. | ||
| - | |||
| - | Note that modern OpenWrt uses always SSH, but early OpenWrt releases (15.05 and before) offered a telnet connection in this state but no SSH. | ||
| - | |||
| - | Note: old OpenWrt wiki page offer more details, most of them still valid: https:// | ||
| ==== Fixing your settings ==== | ==== Fixing your settings ==== | ||
| + | Once failsafe mode is triggered, the router will boot with a network address of 192.168.1.1/ | ||
| + | When in failsafe mode, the DHCP server will not be running. | ||
| + | You must set your computer' | ||
| - | Once failsafe mode is triggered, the router will boot with a network address of 192.168.1.1/ | + | Using SSH or a serial connection, you can then mount the JFFS2 partition with the following command: |
| - | < | + | < |
| mount_root | mount_root | ||
| </ | </ | ||
| - | After that, you can start looking around and fix what’s broken. The JFFS2 partition will be mounted to ///overlay//, as under normal operation. | + | After that, you can start looking around and fix what’s broken. |
| + | The JFFS2 partition will be mounted to '' | ||
| - | ===== Factory Reset ===== | + | You can also transfer files by using scp command/protocol from Linux or macOS, or by using [[docs:guide-quick-start: |
| - | A factory reset returns your router to the configuration it had just after flashing. This works on any install with a squashfs | + | |
| - | With a large NOR chip, it can take 3 to 5 minutes | + | Additional steps required |
| - | ==== Soft Factory Reset ==== | + | |
| - | If you want a clean slate, there’s no need to flash again; just enter the following commands. Your device' | + | |
| - | Issuing " | + | <code bash> |
| - | < | + | # unplug external device |
| - | firstboot && reboot | + | reboot |
| + | |||
| + | # plug external device | ||
| + | # mount external device, e.g. | ||
| + | block info | ||
| + | mount / | ||
| + | |||
| + | # fix the issue, e.g. | ||
| + | vi / | ||
| + | |||
| + | # verify external device will be mounted automatically, | ||
| + | vi / | ||
| + | reboot | ||
| + | </ | ||
| + | |||
| + | ===== Factory reset ===== | ||
| + | A factory reset returns your router to the configuration it had just after flashing. | ||
| + | This works on any install with a squashfs / overlayfs setup (the norm for most installations), | ||
| + | |||
| + | With a large NOR chip, it can take 3 to 5 minutes for the overlayfs to be formatted in the flash. | ||
| + | During this time, changes cannot be saved. | ||
| + | |||
| + | **Caveat: | ||
| + | * Factory reset depends on completing the boot process. If factory reset is not working, try with failsafe mode instead. | ||
| + | * x86 builds (made for PC/Server hardware) with an ext4 read-write rootfs cannot be reset this way. | ||
| + | |||
| + | ==== Reset button ==== | ||
| + | On devices with a physical reset button, OpenWrt can be reset to default settings without serial or SSH access. | ||
| + | |||
| + | - Power on the device and wait for the status led to stop flashing (or go into failsafe mode, as described above). | ||
| + | - Press and hold the reset button for 10 seconds. | ||
| + | - Release the reset button. | ||
| + | |||
| + | The device will do a hard factory reset (see below) and then reboot. | ||
| + | This operation can be slow on some devices, so wait a few minutes before connecting again. | ||
| + | |||
| + | ==== Soft factory reset ==== | ||
| + | If you want a clean slate, there’s no need to flash again; just enter the following commands. | ||
| + | Your device' | ||
| + | |||
| + | Issuing " | ||
| + | Note that this "soft reset" is performed with file system actions, so in some cases it is not enough. | ||
| + | |||
| + | < | ||
| + | firstboot && reboot | ||
| </ | </ | ||
| Line 77: | Line 147: | ||
| Note: for most routers, " | Note: for most routers, " | ||
| - | ==== Hard Factory Reset ==== | + | Note: if you're issuing this command |
| - | This command | + | |
| - | < | + | < |
| - | umount /overlay && jffs2reset | + | firstboot -y && reboot |
| </ | </ | ||
| - | While in most cases this is producing similar end-result as the "soft reset", this marks the whole flash area of the JFFS2 (read-write) overlay partition as a empty non-initialised jffs2 partition. Thus the partition will be re-created at the next mount, usually at the next boot. So, this hard reset bypasses | + | Here is a log of soft factory |
| + | * < | ||
| + | Press the [f] key and hit [enter] to enter failsafe mode | ||
| + | Press the [1], [2], [3] or [4] key and hit [enter] to select | ||
| + | f | ||
| + | - failsafe - | ||
| + | / | ||
| + | / | ||
| + | / | ||
| - | Explanation: | + | BusyBox v1.25.1 () built-in shell (ash) |
| - | https://git.openwrt.org/? | + | |
| - | ==== File access | + | ash: can' |
| - | It's possible to edit and transfer files from the Failsafe mode, by using scp command/protocol from Linux or Mac, or by using [[docs: | + | _________ |
| + | / /\ _ ___ ___ ___ | ||
| + | / | ||
| + | / DE / \ | |__| _|| |) | _| | ||
| + | / | ||
| + | | ||
| + | \ LE \ / | ||
| + | | ||
| + | \________\/ | ||
| - | If you transfer over a sysupgrade image, you can also do a commandline sysupgrade | + | ================= FAILSAFE MODE active ================ |
| + | special commands: | ||
| + | * firstboot | ||
| + | * mount_root mount root-partition with config files | ||
| + | |||
| + | after mount_root: | ||
| + | * passwd change root's password | ||
| + | * / | ||
| + | |||
| + | for more help see: | ||
| + | http:// | ||
| + | ======================================================= | ||
| + | |||
| + | admin@(none):/# | ||
| + | [ 102.942293] jffs2reset: This will erase all settings and remove any installed packages. Are you sure? [N/y] | ||
| + | y | ||
| + | [ 117.606813] jffs2reset: / | ||
| + | [ 117.612055] jffs2reset: / | ||
| + | reboot | ||
| + | admin@(none):/# | ||
| + | ...</ | ||
| + | |||
| + | Tips**:** after (a OpenWrt based) router reboots or starts, it goes thru the bootmenu (selection menu for boot options) within 1 to 2 seconds (or, within 1 second, after preset delay time has passed). | ||
| + | The boot menu accepts Up/Down & Enter buttons, so avoid those or any other buttons for that period of time. | ||
| + | After that bootmenu stage, within 3 to 8 seconds later (depending on CPU speed, etc) the failsafe mode appears & passes, so you have to press the " | ||
| + | |||
| + | ==== Hard factory reset ==== | ||
| + | === Re-flashing the firmware === | ||
| + | Re-flash or upgrade the firmware discarding the settings. | ||
| + | |||
| + | <code bash> | ||
| + | sysupgrade | ||
| + | </ | ||
| + | |||
| + | OpenWrt preserves settings [[docs: | ||
| + | |||
| + | === JFFS2 reset === | ||
| + | Reset the JFFS2 partition. | ||
| + | |||
| + | <code bash> | ||
| + | umount /overlay && jffs2reset && reboot | ||
| + | </ | ||
| + | |||
| + | Based on the mount status of the overlay, jffs2reset [[commit>? | ||
| + | |||
| + | === F2FS reset === | ||
| + | Reset the F2FS partition. | ||
| + | |||
| + | <code bash> | ||
| + | dd if=/ | ||
| + | </ | ||
| - | ===== Recovery Mode ===== | ||
| - | If neither Failsafe Mode nor Factory Reset returns control of your router, you can often replace the firmware of your device using one of the procedures described on the [[docs/ | ||