HowTo Install Arch Linux: Difference between revisions

From Pumping Station One
 
(17 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
 
== Initializing the Disk ==


Install/reinitialize GPT (Guid Partition Table) on the disk`
Install/reinitialize GPT (Guid Partition Table) on the disk`
Line 6: Line 10:
</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 --new 1:2048: /dev/vda
sgdisk --new 1:2048: /dev/vda
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 30: Line 34:
Install Arch to /mnt
Install Arch to /mnt
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
pacstrap /mnt
pacstrap /mnt base
</syntaxhighlight>
</syntaxhighlight>


Line 39: Line 43:
</syntaxhighlight>
</syntaxhighlight>


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


Switch into the arch installtion.
Switch into the arch installtion.
Line 51: Line 55:
</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.
 
Create your initial ramdisk -  The initial file system before the real one boots
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
mkinitcpio -p linux
dd if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/vda
</syntaxhighlight>
</syntaxhighlight>


Prepare the /boot folder with syslinux's micro programs.
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">
ln -s /usr/lib/syslinux/bios/*.c32 /boot/syslinux/
ln -s /usr/lib/syslinux/bios/*.c32 /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.
Run the syslinux extlinux installer.
* extlinux is the filesystem variant of syslinux
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
dd if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/vda
extlinux --install /boot/syslinux
</syntaxhighlight>
</syntaxhighlight>


By default, syslinux tries to boot /dev/sda3. Change it to boot /dev/vda1
By default, syslinux tries to boot /dev/sda3. Change it to boot /dev/vda1
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sed -i 's#/dev/sda3#/dev/vda1#' /boot/syslinux/syslinux.cfg
sed -i 's#/dev/sda3#/dev/vda1#' /boot/syslinux/syslinux.cfg
Line 105: Line 108:
* You setup the syslinux boot loader correctly.
* You setup the syslinux boot loader correctly.


== Flavor ==
== 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>


=== Network Logins ===
Enable Network logins by joining the domain server.
After this command is run, the machine will support network authentication.
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
pacman -Sy
net ads join -U <your user name>
pacman -S --noconfirm salt-zmq
systemctl enable salt-minion
</syntaxhighlight>
</syntaxhighlight>