Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

Complete Guide: Formatting Linux to Linux While Preserving Everything

Complete Guide: Formatting Linux to Linux While Preserving Everything


⚠️ WARNING: Always create backups before proceeding. This guide involves system-level operations that could result in data loss if performed incorrectly or your Linux distro is a total mess :)

The tutorial includes specific commands for different Linux distributions (Debian/Ubuntu, Fedora/Red Hat, Arch Linux) and covers multiple desktop environments (GNOME, KDE, XFCE).

This approach essentially creates a complete snapshot of your system that can be restored after formatting, making it appear as though no format occurred at all - you'll have all your files, settings, tweaks, and even browser sessions exactly as they were before.





Table of Contents
  1. Pre-Format Preparation
    • 1.1 System Information Gathering
    • 1.2 Create a Bootable USB
    • 1.3 Backup Storage Preparation
    • 1.4 Network Connectivity Verification
  2. Data Backup Strategy
    • 2.1 Home Directory Backup
    • 2.2 Hidden Files and Configurations
    • 2.3 Application Data Backup
    • 2.4 Database and Server Data
    • 2.5 Custom Scripts and Binaries
    • 2.6 Document and Media Files
  3. Configuration Preservation
    • 3.1 System Configuration Files
    • 3.2 Installed Packages List
    • 3.3 Service Configuration
    • 3.4 Network Configuration
    • 3.5 User and Group Management
    • 3.6 Firewall and Security Settings
  4. Session and Environment Backup
    • 4.1 Desktop Environment Settings
      • 4.1.1 GNOME Settings
      • 4.1.2 KDE Plasma Configuration
      • 4.1.3 XFCE Settings
      • 4.1.4 MATE/Cinnamon Settings
      • 4.1.5 Window Manager Configs
    • 4.2 Terminal and Shell Configuration
    • 4.3 Cron Jobs and Scheduled Tasks
    • 4.4 Environment Variables
    • 4.5 Custom Themes and Icons
    • 4.6 Panel and Dock Configurations
  5. Hardware and Driver Information
    • 5.1 Hardware Documentation
    • 5.2 Driver and Kernel Module Information
    • 5.3 Graphics Driver Configuration
    • 5.4 Audio System Configuration
    • 5.5 Network Hardware Settings
    • 5.6 Printer and Scanner Configuration
  6. Fresh Installation Process
    • 6.1 Pre-Installation Checklist
    • 6.2 Installation Guidelines
      • 6.2.1 Partitioning Strategy
      • 6.2.2 Filesystem Selection
      • 6.2.3 User Account Creation
      • 6.2.4 Network Configuration
    • 6.3 Post-Installation Initial Setup
    • 6.4 Essential Package Installation
    • 6.5 System Update and Preparation
  7. Data Restoration
    • 7.1 Home Directory Restoration
    • 7.2 Hidden Files and Configuration Restoration
    • 7.3 Application Data Restoration
      • 7.3.1 Browser Data
      • 7.3.2 Email Clients
      • 7.3.3 Development Environments
      • 7.3.4 Gaming Platforms
      • 7.3.5 Media Applications
    • 7.4 Database and Server Data Restoration
    • 7.5 Custom Scripts and Binaries
    • 7.6 Permission and Ownership Fixes
  8. Configuration Restoration
    • 8.1 Package Installation
      • 8.1.1 Debian/Ubuntu Package Restoration
      • 8.1.2 Red Hat/Fedora Package Restoration
      • 8.1.3 Arch Linux Package Restoration
      • 8.1.4 Third-party and AUR Packages
    • 8.2 System Configuration Restoration
    • 8.3 Desktop Environment Restoration
    • 8.4 Service and Daemon Configuration
    • 8.5 Network and Firewall Restoration
    • 8.6 Driver and Hardware Configuration
  9. Verification and Testing
    • 9.1 Data Integrity Check
    • 9.2 Application Testing
      • 9.2.1 Web Browsers
      • 9.2.2 Email Clients
      • 9.2.3 Development Tools
      • 9.2.4 Media Applications
      • 9.2.5 Gaming Platforms
    • 9.3 System Functionality Check
    • 9.4 Hardware Testing
    • 9.5 Network Connectivity Testing
    • 9.6 Performance Benchmarking
  10. Troubleshooting Common Issues
    • 10.1 Permission Problems
    • 10.2 Desktop Environment Issues
      • 10.2.1 GNOME Troubleshooting
      • 10.2.2 KDE Plasma Issues
      • 10.2.3 XFCE Problems
      • 10.2.4 Display Manager Issues
    • 10.3 Application-Specific Issues
    • 10.4 Driver and Hardware Problems
    • 10.5 Network Connection Issues
    • 10.6 Boot and System Service Problems
    • 10.7 Package Manager Issues
  11. Advanced Techniques
    • 11.1 Automated Backup Scripts
    • 11.2 Configuration Management Tools
    • 11.3 Containerized Application Migration
    • 11.4 Cloud-Based Backup Integration
    • 11.5 Incremental Backup Strategies
  12. Best Practices and Future Preparation
    • 12.1 Regular Backup Maintenance
    • 12.2 Documentation Strategies
    • 12.3 Disaster Recovery Planning
    • 12.4 System Monitoring and Health Checks
    • 12.5 Version Control for Configurations



1. Pre-Format Preparation

1.1 System Information Gathering

Before starting, document your current system:

Code
# Get system information
uname -a
lsb_release -a
df -h
lsblk
lscpu
lshw -short
lspci
lsusb

1.2 Create a Bootable USB

Create installation media for your target Linux distribution:
Code
# Using dd (replace /dev/sdX with your USB device)
sudo dd if=linux-distro.iso of=/dev/sdX bs=4M status=progress

# Or use a GUI tool like Etcher, Rufus, or GNOME Disks



2. Data Backup Strategy

2.1 Home Directory Backup

Method 1: Complete Home Backup
Code
# Create compressed backup of entire home directory
sudo tar -czpvf /backup/home-backup-$(date +%Y%m%d).tar.gz /home/

# Alternative: Using rsync for incremental backup
rsync -avH --progress /home/ /backup/home/

Method 2: Selective Backup
Code
# Backup specific directories
mkdir -p /backup/{documents,pictures,videos,music,downloads,desktop}
cp -r ~/Documents/* /backup/documents/
cp -r ~/Pictures/* /backup/pictures/
cp -r ~/Videos/* /backup/videos/
cp -r ~/Music/* /backup/music/
cp -r ~/Downloads/* /backup/downloads/
cp -r ~/Desktop/* /backup/desktop/

2.2 Hidden Files and Configurations

Code
# Backup hidden configuration files
cd ~
tar -czf /backup/dotfiles-$(date +%Y%m%d).tar.gz \
  .bashrc .bash_profile .profile .zshrc .vimrc .gitconfig \
  .ssh/ .gnupg/ .config/ .local/ .cache/ .mozilla/ .thunderbird/

# List all hidden files for reference
ls -la ~ > /backup/hidden-files-list.txt

2.3 Application Data Backup

Code
# Common application data locations
mkdir -p /backup/app-data

# Browser data
cp -r ~/.mozilla/ /backup/app-data/mozilla/
cp -r ~/.config/google-chrome/ /backup/app-data/chrome/

# Email clients
cp -r ~/.thunderbird/ /backup/app-data/thunderbird/

# Development environments
cp -r ~/.vscode/ /backup/app-data/vscode/
cp -r ~/.local/share/JetBrains/ /backup/app-data/jetbrains/

# Gaming
cp -r ~/.steam/ /backup/app-data/steam/
cp -r ~/.local/share/Steam/ /backup/app-data/steam-local/



3. Configuration Preservation

3.1 System Configuration Files

Code
# Backup system configuration files
sudo mkdir -p /backup/system-config
sudo cp -r /etc/ /backup/system-config/etc/

# Important system files to specifically backup
sudo cp /etc/fstab /backup/system-config/
sudo cp /etc/hosts /backup/system-config/
sudo cp /etc/hostname /backup/system-config/
sudo cp /etc/passwd /backup/system-config/
sudo cp /etc/group /backup/system-config/
sudo cp /etc/shadow /backup/system-config/
sudo cp -r /etc/NetworkManager/ /backup/system-config/

3.2 Installed Packages List

For Debian/Ubuntu:
Code
# Export installed packages
dpkg --get-selections > /backup/installed-packages.txt
apt-mark showauto > /backup/auto-installed-packages.txt

# Export repository sources
sudo cp -r /etc/apt/ /backup/system-config/apt/

For Red Hat/Fedora:
Code
# Export installed packages
rpm -qa > /backup/installed-packages.txt
dnf history list > /backup/dnf-history.txt

# Export repository configuration
sudo cp -r /etc/yum.repos.d/ /backup/system-config/yum.repos.d/

For Arch Linux:
Code
# Export installed packages
pacman -Qqe > /backup/installed-packages.txt
pacman -Qqm > /backup/aur-packages.txt

3.3 Service Configuration

Code
# List enabled services
systemctl list-unit-files --state=enabled > /backup/enabled-services.txt

# Backup service configurations
sudo cp -r /etc/systemd/system/ /backup/system-config/systemd/



4. Session and Environment Backup

4.1 Desktop Environment Settings

GNOME:
Code
# Export GNOME settings
dconf dump / > /backup/gnome-settings.dconf
gsettings list-schemas > /backup/gnome-schemas.txt

KDE Plasma:
Code
# Backup KDE configuration
cp -r ~/.config/plasma* /backup/app-data/
cp -r ~/.config/kwin* /backup/app-data/
cp -r ~/.config/systemsettings* /backup/app-data/
cp -r ~/.local/share/plasma* /backup/app-data/

XFCE:
Code
# Backup XFCE configuration
cp -r ~/.config/xfce4/ /backup/app-data/xfce4/

4.2 Terminal and Shell Configuration

Code
# Backup shell configurations and history
cp ~/.bashrc ~/.bash_profile ~/.bash_history /backup/
cp ~/.zshrc ~/.zsh_history /backup/
cp ~/.profile /backup/

# Custom aliases and functions
cp ~/.bash_aliases /backup/ 2>/dev/null || true
cp ~/.zsh_aliases /backup/ 2>/dev/null || true

4.3 Cron Jobs and Scheduled Tasks

Code
# Backup user crontab
crontab -l > /backup/user-crontab.txt 2>/dev/null || echo "No user crontab"

# Backup system crontabs
sudo cp -r /etc/cron* /backup/system-config/
sudo cp -r /var/spool/cron/ /backup/system-config/ 2>/dev/null || true



5. Hardware and Driver Information

5.1 Hardware Documentation

Code
# Document hardware configuration
lshw -html > /backup/hardware-info.html
lspci -v > /backup/pci-devices.txt
lsusb -v > /backup/usb-devices.txt
cat /proc/cpuinfo > /backup/cpu-info.txt
cat /proc/meminfo > /backup/memory-info.txt

# Graphics information
nvidia-smi > /backup/nvidia-info.txt 2>/dev/null || echo "No NVIDIA GPU"
glxinfo > /backup/opengl-info.txt 2>/dev/null || echo "No OpenGL info available"

5.2 Driver and Kernel Module Information

Code
# List loaded kernel modules
lsmod > /backup/loaded-modules.txt

# List installed kernel versions
ls /boot/vmlinuz-* > /backup/kernel-versions.txt

# Graphics driver information
modinfo nvidia > /backup/nvidia-driver-info.txt 2>/dev/null || true
modinfo amdgpu > /backup/amd-driver-info.txt 2>/dev/null || true
modinfo i915 > /backup/intel-driver-info.txt 2>/dev/null || true



6. Fresh Installation Process

6.1 Pre-Installation Checklist
  • Verify all backups are complete and accessible
  • Test backup integrity by extracting a few files
  • Ensure backup storage is not on the drive being formatted
  • Have installation media ready and tested
  • Document current partition scheme if replicating

6.2 Installation Guidelines

Quote:Partition Recommendations:
- Keep the same partition structure if possible
- Use the same mount points (/home, /var, etc.)
- Consider LVM if not already using it for easier future management
- Maintain separate /home partition if you had one

Installation Notes:
- Use the same username to avoid permission issues
- Choose the same timezone and locale settings
- Install the same desktop environment initially

6.3 Post-Installation Initial Setup

Code
# Update system first
sudo apt update && sudo apt upgrade  # Debian/Ubuntu
# OR
sudo dnf update  # Fedora
# OR
sudo pacman -Syu  # Arch Linux

# Install essential tools for restoration
sudo apt install rsync git curl wget  # Debian/Ubuntu
sudo dnf install rsync git curl wget  # Fedora
sudo pacman -S rsync git curl wget    # Arch Linux



7. Data Restoration

7.1 Home Directory Restoration

Code
# Method 1: Full restore from tar backup
cd /
sudo tar -xzpvf /backup/home-backup-YYYYMMDD.tar.gz

# Method 2: Selective restore using rsync
rsync -avH --progress /backup/home/ /home/username/

# Fix ownership if needed
sudo chown -R username:username /home/username/

7.2 Hidden Files and Configuration Restoration

Code
# Restore dotfiles
cd ~
tar -xzf /backup/dotfiles-YYYYMMDD.tar.gz

# Restore SSH keys with correct permissions
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/id_* ~/.ssh/authorized_keys
chmod 644 ~/.ssh/id_*.pub ~/.ssh/known_hosts

7.3 Application Data Restoration

Code
# Restore browser data
cp -r /backup/app-data/mozilla/ ~/.mozilla/
cp -r /backup/app-data/chrome/ ~/.config/google-chrome/

# Restore development environments
cp -r /backup/app-data/vscode/ ~/.vscode/
cp -r /backup/app-data/jetbrains/ ~/.local/share/JetBrains/

# Fix permissions
find ~/.mozilla ~/.config/google-chrome ~/.vscode -type d -exec chmod 755 {} \;
find ~/.mozilla ~/.config/google-chrome ~/.vscode -type f -exec chmod 644 {} \;



8. Configuration Restoration

8.1 Package Installation

Debian/Ubuntu:
Code
# Restore package selections
sudo dpkg --set-selections < /backup/installed-packages.txt
sudo apt-get dselect-upgrade

# Or use apt directly
sudo apt install $(cat /backup/installed-packages.txt | cut -f1)

Fedora:
Code
# Install packages from list
sudo dnf install $(cat /backup/installed-packages.txt)

Arch Linux:
Code
# Install official packages
sudo pacman -S --needed $(cat /backup/installed-packages.txt)

# Install AUR packages (requires yay or similar AUR helper)
yay -S --needed $(cat /backup/aur-packages.txt)

8.2 System Configuration Restoration

Code
# Restore system configurations (be careful with these)
sudo cp /backup/system-config/hosts /etc/hosts
sudo cp /backup/system-config/hostname /etc/hostname

# Restore network configurations
sudo cp -r /backup/system-config/NetworkManager/ /etc/NetworkManager/

# Restore service configurations
sudo systemctl disable --now $(systemctl list-unit-files --state=enabled | grep enabled | cut -d' ' -f1)
sudo systemctl enable $(cat /backup/enabled-services.txt | grep enabled | cut -d' ' -f1)

8.3 Desktop Environment Restoration

GNOME:
Code
# Restore GNOME settings
dconf load / < /backup/gnome-settings.dconf

# Restart GNOME Shell (Alt+F2, type 'r', press Enter)
# Or logout and login again

KDE Plasma:
Code
# Restore KDE configurations
cp -r /backup/app-data/plasma* ~/.config/
cp -r /backup/app-data/kwin* ~/.config/
cp -r /backup/app-data/systemsettings* ~/.config/

# Restart Plasma
kquitapp5 plasmashell && kstart5 plasmashell



9. Verification and Testing

9.1 Data Integrity Check

Code
# Check file counts and sizes
find /home/username -type f | wc -l
du -sh /home/username

# Compare with pre-format numbers
# Verify important files exist
ls -la ~/Documents/
ls -la ~/.ssh/
ls -la ~/.config/

9.2 Application Testing
  • Test web browsers with saved bookmarks and passwords
  • Verify email client settings and accounts
  • Check development environment configurations
  • Test multimedia applications and codecs
  • Verify gaming platforms and saved games
  • Check VPN and network connections

9.3 System Functionality Check

Code
# Test system services
sudo systemctl status
systemctl --user status

# Check network connectivity
ping -c 3 8.8.8.8
curl -I https://google.com

# Test hardware functionality
alsamixer  # Audio
xrandr     # Display



10. Troubleshooting Common Issues

10.1 Permission Problems

Code
# Fix common permission issues
sudo chown -R username:username /home/username
chmod 755 /home/username
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa ~/.ssh/config
chmod 644 ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

# Fix executable permissions for scripts
find ~/bin -type f -name "*.sh" -exec chmod +x {} \;

10.2 Desktop Environment Issues

Quote:GNOME not loading properly:
- Reset GNOME settings:
Code
dconf reset -f /org/gnome/
- Check for conflicting extensions
- Verify display manager is running

KDE Plasma issues:
- Clear Plasma cache:
Code
rm -rf ~/.cache/plasma*
- Reset Plasma configuration:
Code
mv ~/.config/plasma* ~/.config/plasma-backup/
- Restart Plasma Shell

10.3 Application-Specific Issues

Browser issues:
Code
# Clear browser cache if needed
rm -rf ~/.cache/mozilla/
rm -rf ~/.cache/google-chrome/

# Reset browser profile (last resort)
firefox -ProfileManager
google-chrome --user-data-dir=/tmp/chrome-temp

SSH connection issues:
Code
# Regenerate host keys if needed
sudo ssh-keygen -A
sudo systemctl restart ssh

# Fix SSH client permissions
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
chmod 644 ~/.ssh/*.pub



Final Verification Checklist
  • ☐ All personal files accessible and intact
  • ☐ Applications launch and work correctly
  • ☐ Network connections functional
  • ☐ Audio/video working properly
  • ☐ Printers and external devices recognized
  • ☐ Development environments configured
  • ☐ Gaming platforms operational
  • ☐ Email and browser accounts logged in
  • ☐ System performance satisfactory
  • ☐ Backup cleanup completed



🤩✌Congratulations! Your Linux system has been successfully formatted and restored with all your data, configurations, and tweaks intact.

Pro Tips for Future Formats:
  • Consider using automated backup scripts
  • Maintain a separate /home partition for easier reinstalls
  • Document custom configurations in a personal wiki
  • Use configuration management tools like Ansible for system setup
  • Keep regular incremental backups of important data


Remember: This process requires careful attention to detail. Always test your backups before proceeding, and consider practicing on a virtual machine first.
[Image: ezgif-5ed481b8a2df6a8e.gif]


Possibly Related Threads...
Thread / Author Replies Views Last Post
by IrritiableNov 21, 2021 06:50 AM 12 404 Nov 21, 2021 06:50 AM
Last Post: Irritiable
by SIM-4301625Mar 18, 2020 01:17 AM 2 106 Mar 18, 2020 01:17 AM
Last Post: Trippy Space Cat
[Ubuntu] by HelloJuliaNov 2, 2017 02:42 AM 1 105 Nov 2, 2017 02:42 AM
Last Post: Nexius