Instantly share code, notes, and snippets.
thomasheller / INSTALL.md
Last active 5 days ago
Code Revisions 9 Stars 51 Forks 8
Install Arch Linux in VirtualBox VM
INSTALL.md
Install Arch Linux in VirtualBox
Quick install guide for Arch -- if you're looking for an automated installer, consider Arch Anywhere.
Download
Download the latest version from: https://www.archlinux.org/download/
Verify checksums.
Prepare VM
Create a new VM, choose type Linux and version Arch Linux (64-bit). Allocate a reasonable amount of
RAM and create a new hard disk.
Make sure the VM has two network adapters enabled: Adapter 1 attached to NAT and Adapter 2
attached to Host-only adapter vboxnet0 if you have multiple VMs inside a host-only network.
Attach the ISO image to your VM and boot into Arch's live system.
Pre-flight checks
Check network: ping archlinux.org
Installation
Partition the disk:
1. fdisk /dev/sda
2. n -- new partition
3. (enter) ( p -- primary disk)
4. (enter) ( 1 -- partition number)
5. (enter) set first sector
6. (enter) set last sector (use whole disk)
7. w -- write partition table and quit
Format partition:
mkfs.ext4 /dev/sda1
Mount the filesystem:
mount /dev/sda1 /mnt
Install the base packages:
pacstrap /mnt base
Generate /etc/fstab :
genfstab -U /mnt >>/mnt/etc/fstab
Change root to the newly created system:
arch-chroot /mnt
Set the timezone, e.g.:
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
Generate /etc/adjtime :
hwclock --systohc
Enable locale:
1. Uncomment your preferred locale (e.g. en_US.UTF-8 UTF-8 ) in /etc/locale.gen using vi .
2. Run locale-gen .
3. Put the corresponding LANG variable (e.g. LANG=en_US.UTF-8 ) in /etc/locale.conf :
echo 'LANG=en_US.UTF-8' >/etc/locale.conf
Set hostname (e.g. arch ):
echo arch >/etc/hostname
Enable DHCP client daemon:
systemctl enable dhcpcd
Set root password:
passwd
(your password)
(your password)
Install GRUB:
1. pacman -S grub
2. grub-install --target=i386-pc /dev/sda
3. grub-mkconfig -o /boot/grub/grub.cfg
Reboot:
1. exit
2. umount -R /mnt
3. reboot
Now boot from the first hard disk.
Post-installation steps
Login as root using your password.
Add non-root user with sudo permissions and Zsh as the default shell:
1. Install sudo and Zsh:
pacman -S sudo zsh
2. Add user (e.g. John):
useradd -m -g users -s /usr/bin/zsh john
3. Set password:
passwd john
(your password)
(your password)
4. Edit /etc/sudoers using EDITOR=vi visudo and add permissions, e.g.:
john ALL=(ALL) ALL
Setup swap:
1. Install systemd-swap:
pacman -S systemd-swap
2. Enable the swap daemon:
systemctl enable systemd-swap
Install X11:
1. Install required packages:
pacman -S xorg-server xorg-server-utils xorg-xinit xorg-apps xterm
2. Install video driver:
pacman -S xf86-video-vesa
3. Install default terminal:
pacman -S xterm
4. Install some popular fonts:
pacman -S ttf-dejavu ttf-droid ttf-inconsolata
Update the system:
pacman -Syu
Optional steps
• Install your window manager of choice.
• Activate bi-directional clipboard in the VM settings and install the Guest Additions.
• Switch to linux-lts kernel.
squirrelandhedgehog commented on Nov 29, 2022
You mentioned installing xterm twice, was this intentional? Please keep this post up, I can't install Arch without it.
ghost commented on Jan 26, 2023 • edited by ghost
Hi, when I reboot my PC after removing the hard disk, I've got grub CLI. This is normal?
How can I boot in grub cli?
b65deck commented on Jan 27, 2023
Hi @iZel345 That is not normal. You will not be able to boot because there was an installation problem.
This step pacstrap /mnt base does not install the linux kernel. Run pacstrap /mnt base linux (or linux-lts) instead. You
can recover your installation if you add back the archlinux iso and reboot from the disk. Then rerun:
mount /dev/sda1 /mnt
pacstrap /mnt linux
arch-chroot /mnt
grub-mkconfig -o /boot/grub/grub.cfg
You should see this in the output of grub-mkconfig:
Found lunux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
Reboot and it should work.
ghost commented on Jan 27, 2023
Perfect, it works ! Thank you.
kanehekili commented on Mar 25, 2023 • edited
I had 3 problems:
1. After chroot, there was no vi. pacman -Syu nano solved it.
2. Could not activate the dhcpcd service, since it didn't exist.
3. After reboot the linux kernel was missing. You should update your instructions (seems to happen to others as well)
There is no xorg-server-utils (anymore), neither are xorg-apps
Otherwise thanks for this really straightforward installation guide.
gamer2vr commented on Mar 27, 2023
ping: archlinux.org: Temporary failure in name resolution
can't download pacman files.
bhavyakukkar commented on Apr 17, 2023 • edited
@gamer2vr are you sure you did this step?
Make sure the VM has two network adapters enabled: Adapter 1 attached to NAT and Adapter 2 attached to Host-only
adapter vboxnet0 if you have multiple VMs inside a host-only network.
The NAT network adapter can only be enabled on the first adapter after creating one in VirtualBox from the menu in Tools
> Network > 'NAT Networks' section > Create (from the top bar). After this it will show up and can be selected in the settings
of your Arch VM under the Networks tab. That fixed the problem for me.
ShalimRazzak commented on Sep 1, 2023
ping: archlinux.org: Temporary failure in name resolution can't download pacman files.
Had the same problem I tried to install debian and had no connection to the internet either, it turned out I had to disable
my VPN no problems after that.
Also used archinstall command for auto configuration
If you want to automate most of the process these 3 commands worked for me.
1. ping archlinux.org
2. pacman -Sy archlinux-keyring
3. archinstall
Hope it helps any new users following this guide.
Shiromori-Isao commented on Nov 22, 2023
Welp.. I'm only getting errors whenever I try to do most of the post-installation steps.. they all just fail to retrieve
bhavyakukkar commented on Nov 22, 2023
ping: archlinux.org: Temporary failure in name resolution can't download pacman files.
Had the same problem I tried to install debian and had no connection to the internet either, it turned out I had to
disable my VPN no problems after that.
Also used archinstall command for auto configuration
If you want to automate most of the process these 3 commands worked for me.
1. ping archlinux.org
2. pacman -Sy archlinux-keyring
3. archinstall
Hope it helps any new users following this guide.
I'd also like to add that if you ever run into exceptions in archinstall you should try to do a pacman -S archinstall
before step 3 since archinstall is often behind on the liveISO.
hopeseekr commented on Dec 6, 2023
You can download a VirtualBox or VMWare image of Arch Linux over here: https://www.osboxes.org/arch-linux/
EnriqueDev2002 commented on Mar 21 • edited
if you are having grub issue:
mount the iso again and type this commands from the instalation terminal:
mount /dev/sda1 /mnt
arch-chroot /mnt
pacman -S linux dhcpcd
systemctl enable dhcpcd
grub-mkconfig -o /boot/grub/grub.cfg
exit
reboot
after the reboot remove the iso and arch should allow you to log as root.