Hey Arch Linux users! Today, I've stumbled upon a crazy (but cool) script that converts any Linux system to Arch Linux super smoothly. Yeah, You read that right! It's called TurboArch, and it can seamlessly replace your current OS with Arch Linux, while keeping your important data safe. With TurboArch, migrating to Arch Linux is a breeze. Get ready to effortlessly transition to Arch Linux without Data Loss!
Table of Contents
What is TurboArch?
TurboArch is a shell script that helps you to convert your current Linux distribution to Arch Linux without starting from scratch.
The TurboArch script can transform almost any Linux system (like Manjaro, Ubuntu, Fedora, even Slackware!) into Arch without wiping your data.
It preserves your user data, system settings, and even some configurations like disk setups (including LVM and LUKS), user accounts, and passwords.
Essentially, it removes key system directories and replaces them with Arch Linux equivalents, ensuring a transition to a fresh Arch Linux system while keeping your personal and important settings intact.
This makes moving to Arch Linux simpler and faster, without the usual hassle of manual reinstallation and data migration.
How TurboArch Script Works?
TurboArch operates through a three-step process to transition your system to Arch Linux, each phase focusing on different aspects of the installation and configuration.
Stage 1:
- File Preparation: Initially, the script secures necessary files in a safe location to prevent their deletion.
- Rootfs Download: It then downloads the Arch Linux root file system and extracts it to
/archlinux-bootstrap
. - System Mounting: The script mounts the root directory to a new directory named
host-system
within/archlinux-bootstrap
using themount --rbind
command. - Essential Mounts: It mounts
/sys
,/dev
, and/proc
to their corresponding directories inside/archlinux-bootstrap
. - Script Transition: Finally,
stage2.sh
is copied to/archlinux-bootstrap
, then it chroots and executes the script within this new environment.
Stage 2:
- System Cleanup: This stage involves removing everything in
/host-system/{bin, boot, etc, lib...}
to prepare for the Arch installation. - Base System Installation: Utilizes
pacstrap
to install the base system onto the new environment. - Configuration Transfer: Copies the
fstab
and user configurations to the new system to preserve system settings and user data. - Further Script Execution: Chroots to
/host-system
and runsstage3.sh
for additional configurations.
Stage 3:
- System Configuration: Sets up locale, hostname, and time to match user preferences and ensure system compatibility.
- Kernel Installation: Installs the Linux kernel and generates
initramfs
, ensuring the system can boot successfully. - Bootloader Configuration: Installs and configures GRUB as the bootloader, making the system bootable and managing multi-boot scenarios if necessary.
- Desktop Environment Setup: Installs GNOME and performs post-installation configurations, providing a user-friendly desktop environment right out of the gate.
This structured approach allows TurboArch to systematically replace an existing Linux distribution with Arch Linux, maintaining user data and configurations while ensuring a seamless transition to a fresh Arch Linux setup.
Supported Linux Distributions
Thanks to its minimal dependency requirements, TurboArch is compatible with nearly every Linux system. Using TurboArch, you can convert the following Linux distributions to Arch Linux:
- Manjaro,
- Debian,
- Ubuntu,
- Fedora,
- ROSA,
- Astra,
- Void Linux,
- Slackware,
- Gentoo,
- OpenSUSE,
- Tiny Core.
Key Features of TurboArch
Although TurboArch may seem intimidating, it provides essential features that mitigate concerns about data loss.
- Preservation of
/home
Directory: TurboArch ensures that all user data stored in the/home
directory remains intact during the migration. It's an important feature, as this directory contains user files, personal settings, and configuration files for various applications. - Keep current Partition layout: TurboArch is designed to be indifferent to your existing partition layout. No partitions will be formatted. It ensures that all mountpoints are seamlessly carried over to the new system.
- Disk Configuration Preservation: It preserves disk configuration even with LVM and LUKS. This is particularly important for users with encrypted drives or those who utilize logical volumes for better disk management.
- Keep User Accounts and Passwords: Keeping user accounts and passwords unchanged simplifies the migration process by removing the need to re-create accounts or reset passwords after installing Arch Linux.
- Retain Sudo/Wheel Group Membership: By maintaining sudo or wheel group memberships, the script ensures that users retain their administrative privileges, allowing them to execute commands as the root user without reconfiguration.
- Desktop Environment Installation: The option to automatically install GNOME to have a fully functional graphical interface right after the installation. This is especially beneficial for users who prefer a visually intuitive and user-friendly desktop environment.
Risks and Implications
Although the script appears promising, it also comes with significant drawbacks.
Before you getting started, you MUST know the RISKS involved in using this script. Carefully read the following and decide if you really wanted to use this script to transition to Arch Linux.
The script's method of preserving user data and certain configurations, while aggressively replacing much of the system's core directories, underscores the need for careful consideration and preparation.
Here's a breakdown of the implications:
- Deletion of Core Directories: TurboScript will permanently delete the IMPORTANT system directories such as
/bin
,/boot
,/etc
,/lib
,/lib64
,/sbin
,/srv
,/usr
, and/var
. So you must AWARE that the majority of the system's software, including the kernel, system libraries, system configurations, and installed applications, will be erased. This is a critical step that will permanently remove most of the current system, leaving essentially a bare system before the Arch installation. - Potential for Data Loss: Although personal data and certain configurations are preserved, the removal of the aforementioned directories could lead to the loss of critical system configurations, customizations, and possibly data in directories like
/srv
(which can contain data for services such as web servers) or specific applications configurations stored in/etc
. - System Stability and Compatibility: The removal and replacement process might also introduce issues related to system stability and compatibility, especially if certain hardware drivers or custom configurations were present in the removed directories.
So we strongly advice you to test TurboArch script in a Virtual machine and decide if you still want to try it out.
Precautions and Recommendations
It is essential to take the following important precautions before using TurboArch.
- Comprehensive Backup: It's crucial to have a comprehensive backup strategy, not just for your personal data in
/home
, but also for configuration files or any important data stored outside of the preserved directories. Consider using a tool that can create a full system backup or clone. - Documentation and Notes: Document your current system configuration, especially for complex setups involving custom configurations or third-party software. Keeping a record of installed packages and custom settings can be invaluable for restoring functionality after the transition.
- Familiarize with Arch Linux: Given the manual and hands-on nature of Arch Linux, familiarizing yourself with its installation process, package management (Pacman), and configuration methodologies beforehand will make the transition smoother. The Arch Wiki is an excellent resource for this.
- Testing and Research: If possible, consider testing the migration process on a non-critical system or virtual machine. This can provide insights into potential issues and help you understand the process without risking your primary system.
- Seek Community Advice: Engaging with communities, such as forums or Reddit, can provide additional insights and personal experiences from those who have used TurboArch or undergone similar migrations. You can learn from their challenges and solutions.
Requirements
Before starting the TurboArch script, ensure that your system meets these requirements. You might need to install some of these utilities if they're not already present on your system.
The essential prerequisites for the TurboArch tool to function correctly are listed below:
- Internet Connection: An active internet connection is crucial for downloading the Arch Linux bootstrap package, updates, and additional packages during the installation process.
- x86_64 Linux Kernel Version: The requirement for an x86_64 Linux kernel version suitable for glibc in Arch Linux (version 3.2+ for glibc version 2.39) ensures that the existing system is compatible with the software libraries used by Arch Linux.
- grep, coreutils, and util-linux: These packages provide essential utilities for file manipulation, text processing, and system management, which are likely used by TurboArch for various installation tasks.
- bash version 4+: Bash, the Bourne Again SHell, is the default command interpreter for Linux. TurboArch script requires bash Version 4+ to function properly.
- wget or curl: These tools are used for downloading files from the internet. TurboArch requires one of them to fetch the Arch Linux bootstrap package. For users who might have issues with automatic downloading (e.g., due to network restrictions or proxies), TurboArch offers the option to manually download and extract the bootstrap archive to
/archlinux-bootstrap
directory. - tar and xz: These are used for decompressing archives. The Arch Linux bootstrap package is typically compressed, requiring these tools to unpack it.
Convert Any Linux OS to Arch Linux using TurboArch
For demonstration purpose, I am using a virtual machine running with latest Fedora 39 GNOME edition.
Download the TurboArch script from GitHub using command:
$ git clone https://github.com/evgvs/turboarch
This will clone the contents of TurboArhc repository in a local directory named 'turboarch
'.
Cd into this directory with command:
$ cd turboarch
Now, run the TurboArch script:
$ sudo bash turboarch.sh
As stated already, TurboArch works in three stages.
- Preparing the environment by copying necessary files to a safe place, downloading, and extracting the Arch Linux rootfs.
- Removing certain directories from the host system, installing the base system with pacstrap, copying fstab and user configurations.
- Configuring locale, hostname, time, installing the kernel, generating initramfs, installing and configuring GRUB, and installing GNOME along with post-install configurations.
Stage 1:
In the Stage 1, It will prompt you a series of questions. Read them carefully and answer accordingly.
1. First, you will be prompted if you want to copy your current user's configuration data (E.g. Firefox configuration). Type "Y
" and hit ENTER to copy the data or type "N
" to skip it.
______ __ ___ __ /_ __/_ _______/ /_ ____ / | __________/ /_ / / / / / / ___/ __ \/ __ \/ /| | / ___/ ___/ __ \ / / / /_/ / / / /_/ / /_/ / ___ |/ / / /__/ / / / /_/ \__,_/_/ /_.___/\____/_/ |_/_/ \___/_/ /_/ TurboArch Release Candidate 4 Copyright (C) 2024 Evgeny Vasilievich Do you want to copy user configuration from current system? [Y/n] y
2. TurboArch Script will analyze your system and list the available users and their respective groups in your current system. And then, you will be asked if you want to install GNOME DE. Type Y
to install it or type N
to skip it.
Found user: root Found user (sudo/wheel): ostechnix, (uid 1000) Do you want to install GNOME? [Y/n] y
3. Next, you will be prompted to if you want to set a hostname for your new Arch Linux system. If you don't provide a hostname, the script will set "archlinux" as your system's hostname by default. If you want to set something else, simply type it and hit ENTER:
Set hostname for new system: [archlinux]
4. TurboArch will automatically choose the existing timezone for your system. If you want to set a new timezone, type it in the "region/city" format and press ENTER:
Set timezone for new system in "region/city" format: [Asia/Kolkata]
5. By default, TurboArch will use mkinitcpio for generating initramfs. If, for any reason, you want to use dracut instead of mkinitcpio, type Y
and hit enter. Otherwise, simply press ENTER to accept the default value and proceed to the next question.
Do you want to use dracut instead of mkinitcpio to generate initramfs? Answer 'y' only if you have some unusual disk configuration with LUKS or LVM. [y/N]
6. In this step, you will be prompted if you wish to use Reflector to choose fastest mirrors using Reflector. If you want to use Reflector, type Y
or type N
:
Do you want to use reflector to select fastest mirrors? Otherwise, mirrors from 'mirrorlist.default' will be used. [Y/n]
7. Now, TurboArch script will start to download the archlinux-bootstrap image and extract it.
Stage 2:
1. In stage 2, your current host system will be erased and the tasks to install the new Arch Linux will begin.
There is nothing much you can do is in stage 2. In this stage, the following tasks will be carried out automatically:
- Installing packages to
/thisroot
directory, - Installing Reflector if it is selected in the earlier steps and choosing fastest mirrors,
- Installing packages to
/host-system
directory.
Stage 3:
1. The stage 3 is also fully automated and you will do nothing manually.
2. Once your current Linux system is successfully replaced with the latest Arch Linux system, simply type exit and press ENTER to reboot your system.
3. You will notice that the Grub menu is updated with new Arch Linux entry.
4. Log in to your Newly converted Arch Linux system.
5. Check the Arch Linux version from Terminal using command:
$ cat /etc/*-release
You can also check the Arch Linux version by navigating to GNOME Settings -> About section.
Congratulations on successfully replacing your current Linux system with Arch Linux! Start using your newly installed Arch Linux system.
Where is my old DATA?
As I already stated, the /home
directory will be intact and NOTHING will be deleted from your old system. Your old user configuration will be saved under /home/user/Desktop
location.
Frequently Asked Questions (FAQ)
A: TurboArch is a script designed to convert your current Linux system into Arch Linux. It preserves user data, certain configurations like disk setups (LVM and LUKS), user accounts, and passwords, while updating the core system to Arch Linux.
A: TurboArch is compatible with a wide range of Linux distributions, including but not limited to Manjaro, Debian, Ubuntu, Fedora, ROSA, Astra, Void, Slackware, Gentoo, OpenSUSE, and Tiny Core.
A: You need an internet connection, an x86_64 Linux kernel suitable for glibc in Arch Linux (3.2+ for glibc version 2.39), grep, coreutils, util-linux, bash version 4+, and either wget or curl. Additionally, tar and xz are required to decompress the Arch Linux bootstrap archive.
A: Yes, TurboArch supports installing GNOME as a desktop environment during the transition process, providing a user-friendly interface upon completion of the installation.
A: No, TurboArch is designed to be indifferent to your existing partition layout. All your mountpoints will be preserved and transferred to the new Arch Linux system.
A: While TurboArch facilitates a smooth transition to Arch Linux, it permanently removes everything in directories like /bin
, /boot
, /etc
, /lib
, /lib64
, /sbin
, /srv
, /usr
, and /var
of the current system. This process can be risky and may lead to data loss if not properly backed up.
A: It depends on the user's expertise in Linux. TurboArch is designed with safety mechanisms to preserve user data and configurations. However, like any system operation that involves significant changes, there's a risk involved. It's highly recommended to back up your data and thoroughly understand the process before proceeding.
A: No. Since TurboArch significantly alters the system by replacing many core directories, reverting to the original state is not possible.
Conclusion
TurboArch is a powerful script that simplifies the transition to Arch Linux from various Linux distributions, preserving user data and essential configurations.
While it supports a wide range of systems and requires minimal dependencies, it also involves significant changes to the system's core directories. Users should proceed with caution, ensuring data is backed up before initiating the process.
Despite its drawbacks, TurboArch offers an easy and quick way to migrate to Arch Linux from various Linux distributions, without losing user's data.
Using TurboArch, I was able to successfully convert my Fedora Workstation to Arch Linux without any data loss. The transition was surprisingly smooth and error-free. All the data in my HOME directory remained intact!
Again, I strongly recommend you to fully understand how this script works and test it under a safe environment like a Virtual machine. Good luck!
Resource: