HowTo Install Arch Linux: Difference between revisions

From Pumping Station One
 
(35 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">
sgdisk --zap /dev/vda
</syntaxhighlight>
 
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 -z /dev/vda
sgdisk --new 1:2048: /dev/vda
</syntaxhighlight>
</syntaxhighlight>


Create partition one, leave 2048 sectors blank for the bootloader, and consuming the rest of the drive.
For Partition 1, set the bootable flag, (flag 2)
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sgdisk -n 1:2048: /dev/vda
sgdisk --attributes=1:set:2 /dev/vda
sgdisk --attributes=1:set:2 /dev/vda
</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 24: 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 35: 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 45: 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 ==


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
systemctl enable sshd
</syntaxhighlight>
</syntaxhighlight>


== Prepraring to boot ==
Install syslinux
<syntaxhighlight lang="bash">
pacman -S syslinux
</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.
<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 the MBR 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>


=== When Something Goes Wrong ===


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