Here’s a practical, step-by-step guide to migrate your files when switching to a new operating system. It covers planning, methods, and important things to check so you don’t lose data or time.
- Plan before you touch anything
- Inventory what you need: documents, photos, videos, email, browser data, app settings, virtual machines, game saves, licenses/activation keys, and printer/scanner settings.
- Estimate total size to choose transfer method (external drive or cloud).
- Decide whether you’ll dual-boot, wipe the old system, or keep the old device as an archive.
- Back up everything (mandatory)
- Make at least one full backup of your current system before migrating. Prefer 2 copies if possible (external drive + cloud).
- For Windows: use File History or make a system image.
- For macOS: use Time Machine.
- For Linux: use rsync or a disk image tool (dd, Clonezilla) for a full snapshot.
- Choose a transfer method
- External drive (fast and simple): copy files to an external HDD/SSD or USB drive. Good for large amounts of data.
- Network transfer (fast on LAN): use SMB, AFP, SFTP, rsync, or built-in migration utilities across the local network.
- Cloud storage (Dropbox, Google Drive, OneDrive, iCloud): convenient and cross-platform, but can be slow and may cost for large storage.
- Direct cable (USB/Thunderbolt/ethernet): some OSs support direct transfers (Windows Easy Transfer alternatives, Migration Assistant for macOS).
- Disk cloning (if keeping same partition layout): clone the drive, then adjust partitioning/format as needed.
- Use OS migration tools when available
- macOS Migration Assistant: migrates user accounts, files, apps, and settings from another Mac or Windows.
- Windows (fresh install): use OneDrive for files and Microsoft account sync for some settings; third-party tools exist for deeper migration.
- Linux: no single universal GUI migration tool—use rsync, tar, or crontab to copy home directories and configs.
- Copy files and data (practical tips)
- Preserve timestamps and permissions: use tools that keep metadata (rsync -a on Linux/macOS, robocopy /COPYALL on Windows).
- For large photo/video libraries, copy the entire folder structure rather than exporting from each app.
- For email: export mailboxes (e.g., .pst for Outlook, Mailbox/mbox for many clients) or reconfigure accounts in the new OS and let mail sync if accounts are IMAP/Exchange.
- Browser data: sign in to browser (Chrome/Edge/Firefox) and enable sync; otherwise export bookmarks and passwords (use a password manager or browser export).
- Application settings: copy config files (~/Library on macOS, %APPDATA% on Windows, ~/.config on Linux) when possible. Not all app settings are cross-platform.
- Handle licenses and activations
- Deactivate or sign out of software that limits activations (Adobe, Microsoft Office, some games) before wiping the old OS. Keep license keys and account info handy.
- Deal with file system and permission differences
- Windows uses NTFS/ExFAT; macOS uses APFS/HFS+ or can read/write exFAT; Linux commonly uses ext4. Use exFAT for cross-platform read/write support on removable drives (beware performance/security).
- Long filenames, reserved characters, and case sensitivity differ—watch for filename clashes (e.g., ":" not allowed on Windows).
- If migrating to a case-sensitive filesystem, test apps (some macOS apps break on case-sensitive APFS).
- Migrate hidden/advanced items if needed
- SSH keys (~/.ssh), GPG keys, cron jobs, VPN configs, Docker images/containers, virtual machines (export/import), and developer environments (node_modules can be reinstalled; note global packages).
- For databases, perform proper exports (mysqldump, pg_dump) and import into the new system.
- Validate after transfer
- Check random samples of files open correctly (photos, documents, spreadsheets).
- Verify file counts and total size match (or understand why they differ).
- Test key apps, printers, scanners, and network shares.
- Keep the old system untouched until you confirm everything is migrated successfully.
- Clean up and secure
- If you’re selling or disposing the old device, securely erase the drive (Windows: full disk wipe or factory reset; macOS: erase with Disk Utility; Linux: shred or secure-erase tools).
- Remove accounts and deauthorize services.
- Consider encrypting backups and enable full-disk encryption on your new OS (BitLocker, FileVault, LUKS).
Quick command examples
- rsync (Linux/macOS) preserving attributes:
rsync -aHAX --progress /source/path/ /destination/path/
- robocopy (Windows) preserving metadata:
robocopy "C:\Source" "D:\Destination" /MIR /COPYALL /R:2 /W:5
- Copy on macOS preserving resource forks:
ditto /Source/ /Destination/
Common pitfalls
- Forgetting to export email or license keys.
- Using FAT32 for big files (max 4 GB). Use exFAT or NTFS/HFS+/APFS.
- Overlooking hidden files (dotfiles) that hold app settings.
- Assuming cloud sync moves everything (some local-only app data won’t sync).
Simple checklist (short)
- [ ] Full backup made (external + cloud if possible)
- [ ] Inventory created (files, apps, licenses)
- [ ] Transfer method chosen and tested with small set
- [ ] App licenses deactivated on old machine
- [ ] Files transferred with metadata preserved
- [ ] Key apps and files tested on new OS
- [ ] Old drive securely erased (if disposing)
If you tell me which OS you're moving from and to (Windows → macOS, macOS → Linux, Windows → Linux, etc.) and the approximate data size, I can give tailored commands and the fastest recommended method.