HowTo Install Arch Linux: Difference between revisions

From Pumping Station One
 
(32 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Initializing the Disk==
== Installation Media ==
* Get the latest Arch install disk from https://www.archlinux.org/download/
* Boot from it


Install GPT (Guid Partition Table) on the disk`
== Initializing the Disk ==
 
Install/reinitialize GPT (Guid Partition Table) on the disk`
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sgdisk -z /dev/vda
sgdisk --zap /dev/vda
</syntaxhighlight>
</syntaxhighlight>


Create partition one, leave 2048 sectors blank for the syslinux bootloader, and consuming the rest of the drive.
Create partition 1, leave 2048 sectors blank for the syslinux bootloader, and don't specify an end size, so that it takes the rest of the drive.
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sgdisk -n 1:2048: /dev/vda
sgdisk --new 1:2048: /dev/vda
</syntaxhighlight>
</syntaxhighlight>


Line 16: Line 20:
</syntaxhighlight>
</syntaxhighlight>


Now that you have a partition, it will show as /dev/vda1. Format The partition as ext4
Now that you have a partition, it will show as /dev/vda1. Format The partition as ext4
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
mkfs.ext4 /dev/vda1 -F
mkfs.ext4 /dev/vda1 -F
Line 28: Line 32:
== Install Arch ==
== Install Arch ==


* Also install base-devel: compiler programs
Install Arch to /mnt
* openssh: remote access
* syslinux: bootloader
 
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
pacstrap /mnt base base-devel openssh syslinux
pacstrap /mnt base
</syntaxhighlight>
</syntaxhighlight>


Line 39: Line 40:
Now that arch is isntalled, build a partition to mount point table, and write it to /mnt/etc/fstab
Now that arch is isntalled, build a partition to mount point table, and write it to /mnt/etc/fstab
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
genfstab -p /mnt >> /mnt/etc/fstab
genfstab /mnt >> /mnt/etc/fstab
</syntaxhighlight>
</syntaxhighlight>


== Jump into Arch ==
== Change Root (chroot) to Arch ==


Switch into the arch installtion.
Switch into the arch installtion.
Line 49: Line 50:
</syntaxhighlight>
</syntaxhighlight>


 
Set time Timezone
Fix the timezone settings
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
unlink /etc/localtime
ln -s /usr/share/zoneinfo/America/Chicago /etc/localtime
ln -s /usr/share/zoneinfo/America/Chicago /etc/localtime
</syntaxhighlight>
</syntaxhighlight>


== Prepraring to Boot ==


Set dhcpd to start at boot
Create your initial ramdisk - The initial file system before the real one boots
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
systemctl enable dhcpcd
mkinitcpio -p linux
</syntaxhighlight>
</syntaxhighlight>


Set sshd to start at boot.
Install syslinux
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
systemctl enable sshd
pacman -S syslinux
</syntaxhighlight>
</syntaxhighlight>


== Prepraring to boot ==
Install syslinux's GPT MBR (Master Boot Record) to the root of MBR. This will sit in the 2048 of reserved space from when we partitioned the drive.
<syntaxhighlight lang="bash">
dd if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/vda
</syntaxhighlight>


Create your initial ramdisk -  The initial file system before the real one boots
Prepare the /boot folder with syslinux's modules. The .c32 files that ship with syslinux are for systems that use a bios to boot. Symlink the bios modules into syslinux's boot folder.
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
mkinitcpio -p linux
ln -s /usr/lib/syslinux/bios/*.c32 /boot/syslinux/
</syntaxhighlight>
</syntaxhighlight>


Prepare the /boot folder with syslinux's init stuff.
Run the syslinux extlinux installer.
* extlinux is the filesystem variant of syslinux
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
cp -r /usr/lib/syslinux/bios/*.c32 /boot/syslinux/
extlinux --install /boot/syslinux
extlinux --install /boot/syslinux
</syntaxhighlight>
</syntaxhighlight>


Install syslinux's GPT MBR (Master Boot Record) to the root of MBR.  This will sit in the 2048 of reserved space from when we partitioned the drive.
By default, syslinux tries to boot /dev/sda3. Change it to boot /dev/vda1
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/vda
sed -i 's#/dev/sda3#/dev/vda1#' /boot/syslinux/syslinux.cfg
</syntaxhighlight>
</syntaxhighlight>


By default, syslinux tries to boot /dev/sda3.  Change it to boot /dev/vda1
== Reboot ==
 
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sed -i 's#/dev/sda3#/dev/vda1#' /boot/syslinux/syslinux.cfg
exit
reboot
</syntaxhighlight>
</syntaxhighlight>


== Flavor ==
=== When Something Goes Wrong ===
 
If something goes wrong with rebooting and you end up back on the live cd, you don't need to start over.
Running the following 2 commands will bring you back to your Arch Linux Environment
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
echo [archlinuxfr] >> /etc/pacman.conf
mount /dev/vda1 /mnt
echo SigLevel = Never >> /etc/pacman.conf
arch-chroot /mnt
echo Server = http://repo.archlinux.fr/\$arch >> /etc/pacman.conf
pacman -Sy
pacman -S --noconfirm salt-zmq
systemctl enable salt-minion
</syntaxhighlight>
</syntaxhighlight>


== enter your hostname ==
Once you are back in the Arch environment, Check the following:
* You set the bootable flag on the partions
* You setup the syslinux boot loader correctly.


    echo ${hostname} > /etc/hostname
== PS:One Flavor ==


=== Salt ===
Some settings common to most of the computers at PS:One can be applied by running the following commands:
<syntaxhighlight lang="bash">
pacman -S salt-zmq
systemctl start salt-minion
salt-call state.highstate
</syntaxhighlight>


== reboot ==
=== Network Logins ===
    exit
Enable Network logins by joining the domain server.
    reboot
After this command is run, the machine will support network authentication.
<syntaxhighlight lang="bash">
net ads join -U <your user name>
</syntaxhighlight>