When I was an intern at Sandia National Laboratories I was introduced to the concept of using virtual machines to sandbox my projects. I have found this to be very helpful for many software experiments and development environments. I even use virtual machines to run my day-to-day Linux install. Here I give my notes on how to use Virtual Box to run an Arch Linux guest install on Mac OS X. Once a base install is complete it’s easy to make snapshots and spin up and destroy clones from the base install as needed.
Create New Virtual Machine
- Download Arch Linux ISO Live CD
Create VirtualBox Disk Image (VDI) with desired settings.
Load the Arch Linux ISO as a CD/DVD image and select the “Boot Arch” option when the live CD boots.
Partition the drive(s)
# gdisk /dev/sda
- Use the n command and values (above) to create partitions using gdisk.
- Print the the gdisk partition table with the p command.
- Write the gdisk partition table with the w command.
Install and Configure System
# Format Partitions mkfs.ext4 /dev/sda1 mkswap /dev/sda2 mkfs.ext4 /dev/sda3 # Mount Partitions mount /dev/sda3 /mnt mkdir /mnt/boot mount /dev/sda1 /mnt/boot swapon /dev/sda2 # Configure Mirrors # Install Base System pacstrap /mnt base base-devel linux # Generate File System Table genfstab -p /mnt >> /mnt/etc/fstab # Set hostname echo 'myarch' > /etc/hostname # Change Root Directory arch-chroot /mnt # Configure language echo LANG="en_US.UTF-8" >> /etc/locale.conf echo LC_COLLATE="C" >> /etc/locale.conf echo LC_TIME="en_US.UTF-8" >> /etc/locale.conf echo "en_US.UTF-8 UTF-8" >>/etc/locale.gen locale-gen ln -s /usr/share/zoneinfo/America/New_York /etc/localtime hwclock --systohc --utc # Generate Ram Disk mkinitcpio -p linux # Install and Configure Bootloader pacman -S syslinux gdisk syslinux-install_update -iam # Exit CHROOT, Unmount Drives and Reboot exit umount -R /mnt reboot
The following isn’t really intended to be executed as a script.
# Setup Network systemctl start dhcpcd systemctl enable dhcpcd # Virtual Box Guest Utilities # https://wiki.archlinux.org/index.php/VirtualBox#Arch_Linux_as_a_guest_in_a_Virtual_Machine pacman -S virtualbox-guest-utils --noconfirm modprobe -a vboxguest vboxsf vboxvideo echo vboxguest >> /etc/modules-load.d/virtualbox.conf echo vboxsf >> /etc/modules-load.d/virtualbox.conf echo vboxvideo >> /etc/modules-load.d/virtualbox.conf groupadd vboxsf systemctl enable vboxservice systemctl start vboxservice # X Windows System pacman -S xorg-server xorg-server-utils xorg-xinit xterm ttf-dejavu --noconfirm pacman -S awesome # User Configuration pacman -S sudo --noconfirm # use visudo to add under "User privilege specification" before # using sudo as # Replace user_name with desired user name. useradd -m -g users -G optical,power,storage,vboxsf -s /bin/bash user_name chown root.vboxsf /media # Set password using "# passwd " # Set root password using "# passwd" # Update Packages and System pacman -Syy pacman -Syu
Per User Config
Configuration for users other than root.
echo /usr/bin/VBoxClient-all >> ~/.xinitrc echo "exec awesome" >> ~/.xinitrc ln -s /media/sf_share_name/* ~/share_name
There is something to this device that I personally believe makes it stick out, at least to me. I’ve been wanting a tablet without having to lug around another laptop for some time now.
Now, don’t get me wrong, I totally expect this device to be “rough.” I mean, just take a look at the screenshots of this thing running, it appears to be far from elegant at this time. But folks, I’m here for the ride.
I took several photos as I removed the packaging from the EeeNote, perhaps more will surface as time permits.