On a Btrfs filesystem, running rm -rf /* will attempt to delete everything in the root directory, which includes all files and directories accessible to your permissions. However, Btrfs snapshots are designed to be resistant to regular file deletion commands. Here’s what happens:
1. Snapshots remain intact: rm -rf /* doesn’t automatically delete snapshots because snapshots are stored in special subvolumes. By default, this command won’t affect subvolumes that are not mounted within the filesystem you’re deleting from.
2. You would need specific commands to delete snapshots: To delete snapshots on Btrfs, you would typically use a command like btrfs subvolume delete <snapshot> for each snapshot individually, as snapshots are managed by the filesystem and not treated as standard directories.
3. The data inside the snapshots is preserved: Even if files in the root filesystem are deleted, any data captured in snapshots remains, as snapshots are essentially read-only copies at a certain point in time.
Important Note: If the snapshots are mounted and accessible in the directory tree where rm -rf /* is run, you could accidentally delete them if the command traverses into the snapshots’ directories. To protect snapshots, administrators often mount them in isolated directories (e.g., /snapshots) or keep them unmounted until explicitly needed.
In summary, unless you run specific deletion commands for Btrfs subvolumes, snapshots should remain unaffected by rm -rf /* due to the unique way Btrfs manages snapshots.
Depends, are you backing up to another partition or drive?
If not, you’re pretty fucked.
Aren’t snapshots in btrfs above root?
Edit: they are in “subvolumes”
Source: ChatGPT
On a Btrfs filesystem, running rm -rf /* will attempt to delete everything in the root directory, which includes all files and directories accessible to your permissions. However, Btrfs snapshots are designed to be resistant to regular file deletion commands. Here’s what happens:
1. Snapshots remain intact: rm -rf /* doesn’t automatically delete snapshots because snapshots are stored in special subvolumes. By default, this command won’t affect subvolumes that are not mounted within the filesystem you’re deleting from.
2. You would need specific commands to delete snapshots: To delete snapshots on Btrfs, you would typically use a command like btrfs subvolume delete <snapshot> for each snapshot individually, as snapshots are managed by the filesystem and not treated as standard directories.
3. The data inside the snapshots is preserved: Even if files in the root filesystem are deleted, any data captured in snapshots remains, as snapshots are essentially read-only copies at a certain point in time.
Important Note: If the snapshots are mounted and accessible in the directory tree where rm -rf /* is run, you could accidentally delete them if the command traverses into the snapshots’ directories. To protect snapshots, administrators often mount them in isolated directories (e.g., /snapshots) or keep them unmounted until explicitly needed.
In summary, unless you run specific deletion commands for Btrfs subvolumes, snapshots should remain unaffected by rm -rf /* due to the unique way Btrfs manages snapshots.
Oh shit