A personal virtual lab focused on setting up a persistent installation of Alpine Linux. This project documents the process of troubleshooting a non-persistent OS, configuring sudo privileges for a standard user, and resolving package management issues on a minimal Linux system.
This project focused on the critical next step of the virtual machine setup: performing a persistent installation of the Alpine Linux guest operating system. The objective was to overcome the challenge of the OS resetting on each reboot, which prevented the creation of a lasting environment for learning and growth. The date of completion for this project was 05 August 2025.
Throughout this process, I gained a deeper understanding and practical experience in the following areas:
Persistent Installation: Learned that for a virtual environment to be useful for development and learning, a persistent installation is a necessary and distinct step. Linux Command-Line Troubleshooting: Faced and solved unexpected challenges, such as the apk package manager not working and a standard user having no administrative privileges.
User & Group Management: Applied fundamental Linux administrative skills to create the wheel group and configure the sudoers file, a key security and operational practice.
Problem-Solving: The entire process underscored that working with new operating systems and virtual machines can be challenging, but with patience and resources, like an AI chatbot, solutions can be found, leading to a successful outcome.
The persistent installation provided numerous hands-on tasks and troubleshooting opportunities:
Initial OS Setup: I restarted the VM and, in the setup-alpine prompts, selected "us" and "us-mac" for the keymap. I set the hostname to "home.alpine.vm" and configured the eth0 network interface to use DHCP.
Installation Prompts: I skipped the root password change to confirm persistence first, set my timezone, chose no proxy, selected the fastest mirror, created a user with a password, and chose the "sys" option for disk usage to ensure a persistent installation.
Package Manager Troubleshooting: After installation, I discovered that I was unable to use the apk package manager even as the root user. I resolved this by running the command sed -i 's/^#\(.*\/community\)/\1/' /etc/apk/repositories to uncomment the community repository link.
Privilege Configuration: I installed the sudo package, created the wheel group with addgroup wheel, and added my user to it with adduser angelo wheel. I then enabled the wheel group in sudoers by running echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel.
Final Verification: I switched from the root user to my user with su - angelo and confirmed success by running sudo apk add nftables. The package installed successfully, confirming my user had the necessary administrative privileges.
Guest Operating System: Alpine Linux
Command-Line Utilities: setup-alpine, sed, apk, addgroup, adduser, echo, su, pwd, sudo
Packages: sudo, nftables
The project was a success, resulting in a persistent Alpine Linux installation where I can now make lasting changes. This experience was a powerful lesson in troubleshooting and the importance of perseverance. The challenges encountered, from the initial non-persistent install to the user privilege issues, were initially frustrating but ultimately led to a deeper understanding of Linux system administration. This project demonstrated that these challenges are solvable and serve as valuable learning opportunities.