For some people, the typical method of installing Arch -- using the downloaded ISO installation environment, which provides all of the very basic command line tools to install Arch, and manually configuring everything, is more difficulty than they are willing to endure. The most intimidating element of this process being configuring the network during installation. Fortunately, Arch, like any distribution, can be installed by using a chroot environment from an existing Linux installation, greatly simplifying the normal process of installing Arch. Arch actually provides a customized chroot environment that makes installing from an existing Linux installation easy. When this chroot environment is used from an existing Linux on a machine that is connected to a network the process is much easier than the standard method of installing Arch because the network configuration will not have to be performed for the installation, although the user will still need to follow most of the standard process, with the exception of network setup. Other steps are also avoided with the chroot method. For example, preparing the partitions outside of the installation process -- another deviation from the standard Arch installation process described in the Arch Linux Beginners' Guide -- also simplifies the installation, allowing the use of a graphical tool available in the existing Linux. Selecting packages that will automatically install dependencies instead of installing dependencies first, because the goal is to get to a working desktop environment in as few steps as possible will further simplify the process.
The steps I describe in this article are those that I used to install Arch and the Xfce desktop environment in January of 2015. (When Arch announced the availability of Plasma 5.2.2, a version considered stable enough for daily use a few days later, I also installed it.) This installation method was painless and took about four hours to have a working desktop environment with a working wireless network configuration. (I've heard of an Arch installation taking days) I did face the problem of some Xfce components not starting automatically when logging into Xfce, but based on the types of errpr messages that were displayed by Xfce, I think this was due to my choice of installing the Xfce environment before creating a non-root user. Despite this error in the order of steps, for the most part, the order of the steps after the set of base packages, it seems like the order of the remaining steps is arbitrary.
There were a few other post installation configuration items, like editing the polkit configuration file to allow rootless access to other partitions on the system, but these were matters of convenience and could not be considered part of the isntallation rather part of the normal Arch user configuration, and will be discussed in a later article.
In fact this method was even easier than installing the Arch derivative, Antergos, which provides an ISO with a live GNOME environment and a graphical installer, the difficulty with Antergos being an unstable installer and non-standard default choices for using EFI System parition. More on that distribution in a later article. For first time Arch users who want an even easier Arch set up than the chroot from an existing Linux installation should try Manjaro over this method or Antergos. The Arch derived Manjaro, while not pure Arch, mainly because it uses its own repositories and delays updates and makes minor changes for added stability, is still a rolling Arch based distribution and offers a reliable graphical installer, installation of a graphical package manager -- which are not available in the official Arch repositories but only in the AUR, preconfigurs the AUR, takes care of user interventions that Arch requires, and provides nice theming, among other items that make Arch easier to use and maintain.
This installation was done on a Lenovo V570 with Phoenix Technologies EFI v 2.0, an Intel Core-i5 2450M processor, integrated Intel Graphics HD3000, and an Intel Centrino® Wireless-N + WiMAX 6150 wireless network interface. The existing Linux I performed the installation from was first Manjaro 0.8.10 or 0.8.11 (I don't remember the snapshot version). After the point in the installation process where I installed sddm I had to stop the installation and resumed it later from openSUSE 13.2 after I set up the arch-root again in openSUSE.
Read on for the full step by step guide to installing Arch Linux from an existing Linux OS on a different partition of the same computer.
I would first prepare the partitions in which the Arch installation will reside using the tools available in the existing Linux installation where the chroot . Assigning labels to the partitions is also a good idea.
. Note that the date in the name of the image file will change to whatever is current at the time you visit the mirror. Move the downloaded tar.gz archive to /tmp with
brook @ V570-MANJARO ~ └─ $ ▶curl -O http://mirror.umd.edu/archlinux/iso/2015.01.01/archlinux-bootstrap-2015.01.01-x86_64.tar.gz
brook @ V570-MANJARO ~ └─ # ▶sudo mv archlinux-bootstrap-2015.01.01-x86_64.tar.gz /tmp/archlinux-bootstrap-2015.01.01-x86_64.tar.gz
Extracting the archive will create a directory called root.x86_64
root @ V570-MANJARO /tmp └─ # ▶tar xzf archlinux-bootstrap-2015.01.01-x86_64.tar.gz
root @ V570-MANJARO /tmp └─ # ▶nano /tmp/root.x86_64/etc/pacman.d/mirrorlist
Otherwise use the following series of commands one at a time, copied from the Arch guide:
root @ V570-MANJARO /tmp └─ # ▶/tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/
As my system had bash 4.3, the first method was enough.
cd /tmp/root.x86_64 cp /etc/resolv.conf etc mount -t proc /proc proc mount --rbind /sys sys mount --rbind /dev dev mount --rbind /run run chroot /tmp/root.x86_64 /bin/bash
Notice that once in the arch-chroot environment the command prompt changed. This will output something like this:
sh-4.3# pacman-key --init
gpg: /etc/pacman.d/gnupg/trustdb.gpg: trustdb created gpg: no ultimately trusted keys found gpg: starting migration from earlier GnuPG versions gpg: porting secret keys from '/etc/pacman.d/gnupg/secring.gpg' to gpg-agent gpg: migration succeeded gpg: Generating pacman keyring master key... gpg: key C2A9121F marked as ultimately trusted gpg: directory '/etc/pacman.d/gnupg/openpgp-revocs.d' created gpg: Done ==> Updating trust database... gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
which will output something like this:
sh-4.3# pacman-key --populate archlinux
==> Appending keys from archlinux.gpg... gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u ==> Locally signing trusted keys in keyring... -> Locally signing key 0E8B644079F599DFC1DDC3973348882F6AC6A4C2... -> Locally signing key 684148BB25B49E986A4944C55184252D824B18E8... -> Locally signing key 44D4A033AC140143927397D47EFD567D4C7EA887... -> Locally signing key 27FFC4769E19F096D41D9265A04F9397CDFD6BB0... -> Locally signing key AB19265E5D7D20687D303246BA1DFB64FFF979E7... ==> Importing owner trust values... gpg: inserting ownertrust of 4 gpg: setting ownertrust to 4 gpg: setting ownertrust to 4 gpg: setting ownertrust to 4 gpg: setting ownertrust to 4 ==> Disabling revoked keys in keyring... -> Disabling key F5A361A3A13554B85E57DDDAAF7EF7873CFD4BB6... -> Disabling key 7FA647CD89891DEDC060287BB9113D1ED21E1A55... -> Disabling key D4DE5ABDE2A7287644EAC7E36D1A9E70E19DAA50... -> Disabling key BC1FBE4D2826A0B51E47ED62E2539214C6C11350... -> Disabling key 9515D8A8EAB88E49BB65EDBCE6B456CAF15447D5... -> Disabling key 4A8B17E20B88ACA61860009B5CED81B7C2E5C0D2... -> Disabling key 63F395DE2D6398BBE458F281F2DBB4931985A992... -> Disabling key 0B20CA1931F5DA3A70D0F8D2EA6836E1AB441196... -> Disabling key 8F76BEEA0289F9E1D3E229C05F946DED983D4366... -> Disabling key 66BD74A036D522F51DD70A3C7F2A16726521E06D... -> Disabling key 81D7F8241DB38BC759C80FCE3A726C6170E80477... -> Disabling key E7210A59715F6940CF9A4E36A001876699AD6E84... ==> Updating trust database... gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 5 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: depth: 1 valid: 5 signed: 62 trust: 0-, 0q, 0n, 5m, 0f, 0u gpg: depth: 2 valid: 60 signed: 5 trust: 60-, 0q, 0n, 0m, 0f, 0u gpg: next trustdb check due at 2016-01-22
sh-4.3# mkdir -p /mnt/home
sh-4.3# mkdir -p /mnt/boot/efi
Mount the partition to be Arch's /home partition with:
sh-4.3# mount /dev/sda25 /mnt
Mount the EFI System partition with:
sh-4.3# mount /dev/sda26 /mnt/home
Activate the swap partition so that it is recognized by Arch's fstab generation script with:
sh-4.3# mount /dev/sda2 /mnt/boot/efi
This command returned:
sh-4.3# swapon -s
In my case, /dev/sda8 is the swap partition on the multi-boot system and was active in the Manjaro that the arch-chrootwas running.
Filename Type Size Used Priority /dev/sda8 partition 6291452 0 -1
This will synchronize the package database and then prompt for a selection as shown in the following code block.
sh-4.3# pacstrap /mnt base
==> Creating install root at /mnt ==> Installing packages to /mnt :: Synchronizing package databases... core 121.6 KiB 365K/s 00:00 [##########################################] 100% extra 1806.0 KiB 192K/s 00:09 [##########################################] 100% community 2.5 MiB 196K/s 00:13 [##########################################] 100% :: There are 50 members in group base: :: Repository core 1) bash 2) bzip2 3) coreutils 4) cryptsetup 5) device-mapper 6) dhcpcd 7) diffutils 8) e2fsprogs 9) file 10) filesystem 11) findutils 12) gawk 13) gcc-libs 14) gettext 15) glibc 16) grep 17) gzip 18) inetutils 19) iproute2 20) iputils 21) jfsutils 22) less 23) licenses 24) linux 25) logrotate 26) lvm2 27) man-db 28) man-pages 29) mdadm 30) nano 31) netctl 32) pacman 33) pciutils 34) pcmciautils 35) perl 36) procps-ng 37) psmisc 38) reiserfsprogs 39) s-nail 40) sed 41) shadow 42) sysfsutils 43) systemd-sysvcompat 44) tar 45) texinfo 46) usbutils 47) util-linux 48) vi 49) which 50) xfsprogs Enter a selection (default=all):
Press enter to proceed with the installation. Then the packages are downloaded and installed. You will now learn one of the most important rules of being an Arch user, which is that you must pay attention to the messages and warnings that are displayed during installation after all of the packages have been downloaded. During an initial installation pacman messages will only include a list of optional dependencies for a package as in
resolving dependencies... looking for conflicting packages... warning: dependency cycle detected: warning: ncurses will be installed before its bash dependency Packages (123) acl-2.2.52-2 archlinux-keyring-20141218-1 attr-2.4.47-1 ca-certificates-20140923-9 ca-certificates-cacert-20140824-2 ca-certificates-mozilla-3.17.3-2 ca-certificates-utils-20140923-9 cracklib-2.9.1-1 curl-7.40.0-1 db-5.3.28-2 dbus-1.8.12-1 expat-2.1.0-4 gdbm-1.11-1 glib2-2.42.1-1 gmp-6.0.0-1 gnupg-2.1.1-1 gnutls-3.3.12-1 gpgme-1.5.3-1 groff-1.22.3-2 hwids-20141214-1 iana-etc-2.30-4 iptables-1.4.21-1 kbd-2.0.2-1 keyutils-1.5.9-1 kmod-19-1 krb5-1.13-1 libaio-0.3.110-1 libarchive-3.1.2-8 libassuan-2.1.3-1 libcap-2.24-2 libdbus-1.8.12-1 libffi-3.2.1-1 libgcrypt-1.6.2-1 libgpg-error-1.17-1 libidn-1.29-1 libksba-1.3.2-1 libldap-2.4.40-2 libpipeline-1.4.0-1 libsasl-2.1.26-7 libseccomp-2.1.1-1 libssh2-1.4.3-2 libsystemd-218-1 libtasn1-4.2-1 libtirpc-0.2.5-1 libunistring-0.9.4-1 libusb-1.0.19-1 libutil-linux-2.25.2-1 linux-api-headers-3.18.1-1 linux-firmware-20141201.38e5405-1 lz4-127-1 lzo-2.08-3 mkinitcpio-18-2 mkinitcpio-busybox-1.21.1-2 mpfr-3.1.2.p11-1 ncurses-5.9-7 nettle-2.7.1-1 npth-1.1-1 openresolv-3.5.7-2 openssl-1.0.1.k-1 p11-kit-0.22.1-3 pacman-mirrorlist-20150105-1 pam-1.1.8-5 pambase-20130928-1 pcre-8.36-2 pinentry-0.9.0-1 popt-1.16-7 pth-2.0.7-5 readline-6.3.006-1 systemd-218-1 thin-provisioning-tools-0.4.1-1 tzdata-2014j-1 xz-5.2.0-1 zlib-1.2.8-3 bash-4.3.033-1 bzip2-1.0.6-5 coreutils-8.23-1 cryptsetup-1.6.6-1 device-mapper-2.02.114-1 dhcpcd-6.6.7-1 diffutils-3.3-2 e2fsprogs-1.42.12-1 file-5.22-1 filesystem-2014.10-3 findutils-4.4.2-6 gawk-4.1.1-1 gcc-libs-4.9.2-2 gettext-0.19.3-1 glibc-2.20-6 grep-2.21-1 gzip-1.6-1 inetutils-1.9.2-2 iproute2-3.17.0-1 iputils-20121221-3 jfsutils-1.1.15-4 less-471-1 licenses-20140629-1 linux-3.18.2-2 logrotate-3.8.8-2 lvm2-2.02.114-1 man-db-2.7.1-1 man-pages-3.77-1 mdadm-3.3.2-1 nano-2.2.6-3 netctl-1.9-1 pacman-4.2.0-5 pciutils-3.3.0-1 pcmciautils-018-7 perl-5.20.1-1 procps-ng-3.3.10-1 psmisc-22.21-2 reiserfsprogs-3.6.24-1 s-nail-14.7.11-1 sed-4.2.2-3 shadow-4.2.1-2 sysfsutils-2.1.0-9 systemd-sysvcompat-218-1 tar-1.28-1 texinfo-5.2-3 usbutils-008-1 util-linux-2.25.2-1 vi-1:050325-4 which-2.20-7 xfsprogs-3.2.2-1 Total Download Size: 156.31 MiB Total Installed Size: 462.88 MiB :: Proceed with installation? [Y/n]
If the message shows pending, the optional package has already been selected automatically for installation and will be installed in a later step. After the installation there will also be other types of messages, including informational messages and warnings that must be acted upon.
Optional dependencies for systemd python: systemd library bindings cryptsetup: required for encrypted block devices [pending] libmicrohttpd: remote journald capabilities quota-tools: kernel-level quota management systemd-sysvcompat: symlink package to provide sysvinit binaries [pending] polkit: allow administration as unprivileged user
sh-4.3# genfstab -p /mnt >> /mnt/etc/fstab
sh-4.3# arch-chroot /mnt
At about this point in the normal installation guide, the network would be set up for the new Arch installation. It turns out that these steps can be skipped and all that will be required in this method for a working networking is to install a few network related packages and NetworkManager, in my opinion the best option of all those described in the Arch wiki for Network management. When the desktop environment is ultimately started after the installation, all network interfaces, including wireless will be available.
sh-4.3# echo V570-ARCH > /etc/hostname
sh-4.3# ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
sh-4.3# nano /etc/locale.gen
sh-4.3# echo LANG=en_US.UTF-8 > /etc/locale.conf
sh-4.3# export LANG=en_US.UTF-8
With this step the system will be bootable, although with some other OSes bootloader or a rescue disk will be necessary since a bootloader has not been installed yet in Arch.
sh-4.3# mkinitcpio -p linux
At this point, the Arch Beginners Guide instructs setting up the bootloader, exiting the chroot environment and rebooting, which will start the newly installed Arch system in a console environment since not even the X server has been installed at this point. To avoid this, I decided to stay in the chroot environment and continue to install the X server, the networking packages, and a desktop environment, so that when I boot the system for the first time I would have a working desktop. I installed the bootloader much later from within the actual running Arch system which I booted into after updating GRUB on the Linux system I was performing this installation from.
Now might actually be a good time to add the first non-root user instead of when I did it later in the process, for reasons previously mentioned.
The process up to this point installed a base system -- with only root as a user thus far -- except for a bootloader, which wasn't really necessary since I would initially use the GRUB of the installed system from which I was performing this Arch installation. What I really cared about at this point was installing a desktop environment that would be available to me when I did start the Arch system and having an easily configured working wireless connection. The steps I followed to do this, while still in the second level chrooted environment, are below.
One of the things that the process of installing Arch teaches a fairly inexperienced Linux user is the layers of components that make up a usable Linux system, although the details are hidden.
Then the user sees the higher level layers, the first of which are those related to the X Window and graphics components.
This will give the response shown in the following code block, with a prompt to select the provider that will satisfy a dependency. I chose the default because it is the closest to the core repository. (The three official repositories in Arch, in order of importance are the core, then extra, then community; the AUR is unofficial.)
sh-4.3# pacman -S xf86-video-intel
This will produce the following output, with a warning that a package will be installed before its dependency -- but this problem was taken care of by the subsequent installation -- and the list of packages to be installed, as below:
resolving dependencies... :: There are 9 providers available for mesa-dri: :: Repository extra 1) mesa :: Repository community 2) i810-dri 3) mach64-dri 4) mga-dri 5) r128-dri 6) savage-dri 7) sis-dri 8) tdfx-dri 9) unichrome-dri Enter a number (default=1):
During the installation the following message is displayed -- an example of some of the useful messages to observe when installing or updating packages.
looking for conflicting packages... warning: dependency cycle detected: warning: libtxc_dxtn will be installed before its mesa dependency Packages (30) damageproto-1.2.1-3 elfutils-0.161-2 fixesproto-5.0-3 kbproto-1.0.6-2 libdrm-2.4.58-1 libomxil-bellagio-0.9.3-1 libpciaccess-0.13.2-2 libtxc_dxtn-1.0.1-5 libx11-1.6.2-2 libxau-1.0.8-2 libxcb-1.11-1 libxdamage-1.1.4-2 libxdmcp-1.1.1-2 libxext-1.3.3-1 libxfixes-5.0.1-1 libxshmfence-1.2-1 libxv-1.0.10-1 libxvmc-1.0.8-1 libxxf86vm-1.1.3-1 llvm-libs-3.5.1-1 mesa-10.4.2-1 pixman-0.32.6-1 videoproto-2.3.2-1 wayland-1.6.0-1 xcb-proto-1.11-1 xcb-util-0.4.0-1 xextproto-7.3.0-1 xf86vidmodeproto-2.3.1-3 xproto-7.0.27-1 xf86-video-intel-2.99.917-1 Total Download Size: 19.46 MiB Total Installed Size: 89.54 MiB :: Proceed with installation? [Y/n]
>>> This driver uses SNA as the default acceleration method. You can fall back to UXA if you run into trouble or test experimental Glamor acceleration. To do so, save a file with the following content as /etc/X11/xorg.conf.d/20-intel.conf : Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "sna" #Option "AccelMethod" "uxa" #Option "AccelMethod" "glamor" EndSection Optional dependencies for xf86-video-intel libxrandr: for intel-virtual-output libxinerama: for intel-virtual-output libxcursor: for intel-virtual-output libxtst: for intel-virtual-output
sh-4.3# pacman -S mesa-libgl
sh-4.3# pacman -S libva-intel-driver libva
You will be presented with a choice of which components of the xorg-apps to install. The default is all, so press enter to accept the defaults, which is what I did. There will be a warning in the output, shown below, that a package is installed before a dependency. In this case it is not a problem that causes pacman to fail, but like in the previous instance, occurs because so many low level packages are being installed at the same time and because, I think, this package manager is not atomic.
sh-4.3# pacman -S xorg-server xorg-server-utils xorg-apps
Press enter to proceed with the installation.
resolving dependencies... looking for conflicting packages... warning: dependency cycle detected: warning: harfbuzz will be installed before its freetype2 dependency Packages (84) compositeproto-0.4.2-3 dmxproto-2.3.1-3 fontconfig-2.11.1-1 fontsproto-2.1.3-1 freetype2-2.5.5-1 graphite-1:1.2.4-1 harfbuzz-0.9.37-1 inputproto-2.3.1-1 libdmx-1.1.3-1 libepoxy-1.2-2 libevdev-1.3.2-1 libfontenc-1.1.2-1 libice-1.0.9-1 libpng-1.6.16-1 libsm-1.2.2-2 libxaw-1.0.12-1 libxcomposite-0.4.4-2 libxcursor-1.1.14-2 libxfont-1.5.0-1 libxft-2.3.2-1 libxi-1.7.4-1 libxinerama-1.1.3-2 libxkbfile-1.0.8-2 libxmu-1.1.2-1 libxpm-3.5.11-1 libxrandr-1.4.2-2 libxrender-0.9.8-1 libxt-1.1.4-1 libxtst-1.2.2-1 libxxf86dga-1.1.4-1 mcpp-2.7.2-5 mtdev-1.1.5-1 randrproto-1.4.0-2 recordproto-1.14.2-2 renderproto-0.11.1-3 xf86-input-evdev-2.9.1-1 xf86dgaproto-2.1-3 xineramaproto-1.2.1-3 xkeyboard-config-2.13-1 xorg-font-util-1.3.0-2 xorg-font-utils-7.6-4 xorg-fonts-alias-1.0.3-1 xorg-fonts-encodings-1.0.4-4 xorg-fonts-misc-1.0.3-2 xorg-server-common-1.16.3-2 xorg-bdftopcf-1.0.5-1 xorg-iceauth-1.0.7-1 xorg-luit-1.1.1-2 xorg-mkfontdir-1.0.7-2 xorg-mkfontscale-1.1.2-1 xorg-server-1.16.3-2 xorg-server-utils-7.6-4 xorg-sessreg-1.0.8-2 xorg-setxkbmap-1.3.0-2 xorg-smproxy-1.0.5-2 xorg-x11perf-1.5.4-2 xorg-xauth-1.0.9-1 xorg-xbacklight-1.2.1-1 xorg-xcmsdb-1.0.4-2 xorg-xcursorgen-1.0.6-1 xorg-xdpyinfo-1.3.1-1 xorg-xdriinfo-1.0.4-4 xorg-xev-1.2.1-2 xorg-xgamma-1.0.5-2 xorg-xhost-1.0.6-1 xorg-xinput-1.6.1-1 xorg-xkbcomp-1.3.0-1 xorg-xkbevd-1.1.3-2 xorg-xkbutils-1.0.4-2 xorg-xkill-1.0.4-1 xorg-xlsatoms-1.1.1-2 xorg-xlsclients-1.1.3-1 xorg-xmodmap-1.0.8-1 xorg-xpr-1.0.4-2 xorg-xprop-1.2.2-1 xorg-xrandr-1.4.3-1 xorg-xrdb-1.1.0-1 xorg-xrefresh-1.0.5-1 xorg-xset-1.2.3-1 xorg-xsetroot-1.1.1-2 xorg-xvinfo-1.1.2-2 xorg-xwd-1.0.6-1 xorg-xwininfo-1.1.3-1 xorg-xwud-1.0.4-2 Total Download Size: 13.61 MiB Total Installed Size: 42.86 MiB :: Proceed with installation? [Y/n]
Now that the base system, the graphics driver, and the X Window system had been installed, I installed my second or third favorite desktop environment, Xfce. I believe installing the desktop before creating a non-root user was a mistake, as it may have been the cause of error messages regarding the Xfce panel when I logged on for the first time as a regular user. I would suggest making your regular users before installing the desktop as I did later in the process outlined here.
Since xfce4 is a package group, like meta packages in some distributions and a pattern in openSUSE, Arch's pacman will ask which members of the group to install.
sh-4.3# pacman -S xfce4 xfce4-goodies
Press enter to accept the default. Pacman will also ask the same question for the xfce4-goodies group.
:: There are 18 members in group xfce4: :: Repository extra 1) exo 2) garcon 3) gtk2-xfce-engine 4) gtk3-xfce-engine 5) thunar 6) thunar-volman 7) tumbler 8) xfce4-appfinder 9) xfce4-mixer 10) xfce4-panel 11) xfce4-power-manager 12) xfce4-session 13) xfce4-settings 14) xfce4-terminal 15) xfconf 16) xfdesktop 17) xfwm4 18) xfwm4-themes Enter a selection (default=all):
Again, accept the default.
:: There are 35 members in group xfce4-goodies: :: Repository extra 1) mousepad 2) orage 3) thunar-archive-plugin 4) thunar-media-tags-plugin 5) xfburn 6) xfce4-artwork 7) xfce4-battery-plugin 8) xfce4-clipman-plugin 9) xfce4-cpufreq-plugin 10) xfce4-cpugraph-plugin 11) xfce4-datetime-plugin 12) xfce4-dict 13) xfce4-diskperf-plugin 14) xfce4-eyes-plugin 15) xfce4-fsguard-plugin 16) xfce4-genmon-plugin 17) xfce4-mailwatch-plugin 18) xfce4-mount-plugin 19) xfce4-mpc-plugin 20) xfce4-netload-plugin 21) xfce4-notes-plugin 22) xfce4-notifyd 23) xfce4-quicklauncher-plugin 24) xfce4-screenshooter 25) xfce4-sensors-plugin 26) xfce4-smartbookmark-plugin 27) xfce4-systemload-plugin 28) xfce4-taskmanager 29) xfce4-time-out-plugin 30) xfce4-timer-plugin 31) xfce4-verve-plugin 32) xfce4-wavelan-plugin 33) xfce4-weather-plugin 34) xfce4-xkb-plugin :: Repository community 35) ristretto Enter a selection (default=all):
sh-4.3# pacman -S alsa-utils alsa-plugins
sh-4.3# pacman -S libpulse
The option -G wheel will make the user an administrator. After entering the command, follow the prompts to set the password.
sh-4.3# useradd -m -G wheel -s /bin/bash brook
sh-4.3# pacman -S sddm
I unknowingly used
sh-4.3# hwclock --systohc --utc
to configure the hardware clock for use in the Arch, setting the hardware clock to local time. I later changed it to UTC using timedatectl after learning how to deal with Windows and the hardware clock being set to UTC. It is recommended to set the hardware clock to UTC on all of the installed OSes on the computer, including Windows. The Arch wiki shows how to do this on Windows and avoid problems. I think this is especially important if any of the OSes use btrfs which caused me some problems on openSUSE 13.2 until I realized not setting all of the installed OSes to UTC was the problem. Read my openSUSE 13.2 review and the guide on btrfs/Snapper to see why this was important for using btrfs.
sh-4.3# hwclock --systohc --localtime
At this point in the process, everything except the needed networking components and the bootloader were installed. I then installed the necessary components for networking.
pacman -S iw
pacman -S wpa_supplicant
pacman -S networkmanager
This last package is very important as when you boot into the new Arch installation, it will have networking, including wireless, automatically configured and ready to go. I performed this installation process at a public hotspot and was pleasantly surprised that when I booted into the new Arch installation and clicked on Xfce's Network Manager applet, the available wireless networks were visible and that I could connect to them. Installing these three packages, when following this process was all that was required to configure the working network. Compare this to the procedures and options discussed in the sections of the Arch installation guides pertaining to networking.
When I installed Arch using the above process, I didn't install a bootloader because I chose to use openSUSE's GRUB installation. I booted into the new Arch installation by updating openSUSE's GRUB, rebooted, and in the new GRUB menu chose Arch. I did install Arch's GRUB bootloader eventually.
To install GRUB for an EFI/UEFI system -- an EFI/UEFI system has an EFI System partition used to store the firmware bootloader and uses an EFI/UEFI firmware instead of the traditional BIOS -- do the following before exiting the arch-chroot environment,
pacman -S grub
/boot/efi was chosen as the mount point for the EFI partition early in this process after changing to the arch-chroot environment. An installation of GRUB into the EFI System partition and into the firmware, as this command does will, at least on my hardware will make this the default GRUB bootloader, and will be used when the system reboots. You can change the order of bootloaders used by entering the EFI/UEFI setup when first powering on the computer. Also see my guides on GRUB and the EFI System Partition.
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch --recheck
grub-mkconfig -o /boot/grub/grub.cfg
For anyone who is interested in installing Arch, this method saves a lot of time and frustration. As you saw in the steps outlined above there was no configuration of the network, other than installation of several packages. One of the packages networkmanager which provides the NetworkManager service takes care of everything autmatically, obviating one of the most difficult parts of installing Arch from the normal installation environment.