> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siderolabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Resetting a Machine

> Steps on how to reset a Talos Linux machine to a clean state.

export const VersionWarningBanner = () => {
  const latestVersion = "v1.13";
  const [latestUrl, setLatestUrl] = useState(null);
  const [currentVersion, setCurrentVersion] = useState(null);
  const [isBeta, setIsBeta] = useState(false);
  const parseVersion = v => v.replace("v", "").split(".").map(Number);
  const isGreaterVersion = (a, b) => {
    const [aMajor, aMinor] = parseVersion(a);
    const [bMajor, bMinor] = parseVersion(b);
    if (aMajor > bMajor) return true;
    if (aMajor === bMajor && aMinor > bMinor) return true;
    return false;
  };
  useEffect(() => {
    if (typeof window === "undefined") return;
    const {pathname, hash, search} = window.location;
    const match = pathname.match(/\/talos\/(v\d+\.\d+)\//);
    if (!match) return;
    const detectedVersion = match[1];
    if (detectedVersion === latestVersion) return;
    setCurrentVersion(detectedVersion);
    if (isGreaterVersion(detectedVersion, latestVersion)) {
      setIsBeta(true);
    }
    const newPath = pathname.replace(`/talos/${detectedVersion}/`, `/talos/${latestVersion}/`);
    setLatestUrl(`${newPath}${search}${hash}`);
  }, []);
  if (!latestUrl || !currentVersion) return null;
  return <div className="not-prose sticky top-6 z-50 my-6">
      <div className="border border-yellow-500/30 bg-yellow-500/10 px-4 py-3 rounded-xl">
        <div className="text-sm">
          {isBeta ? <>
              ⚠️ You are viewing a <strong>beta version</strong> of Talos ({currentVersion}).
              This version may be unstable.
              <a href={latestUrl} className="ml-2 underline text-yellow-400 hover:text-yellow-300 font-medium">
                View latest stable version {latestVersion} →
              </a>
            </> : <>
              ⚠️ You are viewing an older version of Talos ({currentVersion}).
              <a href={latestUrl} className="ml-2 underline text-yellow-400 hover:text-yellow-300 font-medium">
                View the latest version {latestVersion} →
              </a>
            </>}
        </div>
      </div>
    </div>;
};

<VersionWarningBanner />

Occasionally, it may be necessary to reset a Talos machine to its "original" state.
Keep in mind that this is a destructive action for the given machine.
This process involves removing the machine from Kubernetes, `etcd` (if applicable), and clearing any data on the machine that would normally persist after a reboot.

## CLI

To reset a machine, use the `talosctl reset` command:

```sh theme={null}
talosctl reset -n <node_ip_to_be_reset>
```

> WARNING: Running `talosctl reset` on cloud VMs might result in the VM being unable to boot as this wipes the entire disk.
> It might be more practical to only wipe the [STATE](../../learn-more/architecture#file-system-partitions) and [EPHEMERAL](../../learn-more/architecture#file-system-partitions) partitions on a cloud VM if not booting via `iPXE`.
> `talosctl reset --system-labels-to-wipe STATE --system-labels-to-wipe EPHEMERAL`

The command includes several flags:

```bash theme={null}
Flags:
      --graceful                        if true, attempt to cordon/drain node and leave etcd (if applicable) (default true)
      --reboot                          if true, reboot the node after resetting instead of shutting down
      --system-labels-to-wipe strings   if set, just wipe selected system disk partitions by label but keep other partitions intact
```

The `graceful` flag is particularly important when considering HA vs. non-HA Talos clusters.
If the machine is part of an HA cluster, a normal, graceful reset should work fine as long as the cluster is in a good state.
However, if this is a single-node cluster used for testing purposes, a graceful reset is not an option since `etcd` cannot be "left" if there is only a single member.
In this case, use the reset command with `--graceful=false` to skip checks that would normally block the reset.

## Kernel parameter

Another method to reset a machine is by specifying the `talos.experimental.wipe=system` kernel parameter.
If the machine is stuck in a boot loop and you have access to the console, you can use GRUB to specify this kernel argument.
When Talos boots next, it will reset the system disk and reboot.

The next steps can include installing Talos either using PXE boot or by mounting an ISO.
