Skip to content

Instantly share code, notes, and snippets.

@kz0
Last active June 12, 2023 08:19
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save kz0/56b59fb1987b27b9a059e59c93a5edfb to your computer and use it in GitHub Desktop.
Save kz0/56b59fb1987b27b9a059e59c93a5edfb to your computer and use it in GitHub Desktop.
Arch Linux VMware ESXi
# install arch linux with lvm and efi boot
# set keymap
loadkeys pt-latin9
# create partitions
cfdisk /dev/sda
# 512M type efi partition
# 19.5G type lvm partition
# format efi partition
mkfs.vfat -F32 /dev/sda1
# create lvm volume
pvcreate /dev/sda2
# create volume group
vgcreate lvm /dev/sda2
# create logical volumes
lvcreate -L 2G lvm -n swap
lvcreate -l 100%FREE lvm -n root
# format lvm volume
mkfs.ext4 /dev/lvm/root
# create swap and activate
mkswap /dev/lvm/swap
swapon /dev/lvm/swap
# mount the volumes
mount /dev/lvm/root /mnt
# create boot and mount volume
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
# install base system and devel
pacstrap -i /mnt base base-devel
# for lts install
pacstrap -i /mnt $(pacman -Sqg base | sed 's/^linux$/&-lts/')
# create fstab
genfstab -U -p /mnt >> /mnt/etc/fstab
# change root
arch-chroot /mnt /bin/bash
# define hostname
echo calypso.local > /etc/hostname
# uncomment locale information
nano /etc/locale.gen
# generate locale
locale-gen
# set keymap on boot
echo "KEYMAP=pt-latin9" > /etc/vconsole.conf
# time and date
ln -s /usr/share/zoneinfo/Europe/Lisbon /etc/localtime
hwclock --systohc --utc
# install bootloader
bootctl install
# change bootloader entries
nano /boot/loader/loader.conf
# loader.conf
default arch
timeout 3
editor 0
# get UUID
blkid /dev/mapper/lvm-root
# create bootloader entrie
nano /boot/loader/entries/arch.conf
# arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=UUID=<UUID> rw
# arch.conf lts
title Arch Linux
linux /vmlinuz-linux-lts
initrd /initramfs-linux-lts.img
options root=UUID=<UUID> rw
# configure mkinitcpio with lvm hook
nano /etc/mkinitcpio.conf
# ESXi kernel modules
MODULES="vmw_balloon vmw_pvscsi vmw_vmci vmxnet3 vsock vmw_vsock_vmci_transport"
# add 'lvm2' to HOOKS before filesystems
HOOKS=... lvm2 filesystems ...
# generate initrd
mkinitcpio -p linux
# initrd for lts
mkinitcpio -p linux-lts
# set root password
passwd
# create user with sudo priviledges
useradd -m -g users -G wheel -s /bin/bash kz0
# edit visudo
EDITOR=nano visudo
# uncomment
%wheel ALL=(ALL) ALL
# add multilib repo for 32 bits
nano /etc/pacman.conf
# pacman.conf
[multilib]
Include = /etc/pacman.d/mirrorlist
# add yaourt
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
# install systemd-swap, ssh and yaourt
pacman -Syu systemd-swap openssh yaourt
# enable swap,network and ssh services
systemctl enable systemd-swap.service
systemctl enable dhcpcd.service
systemctl enable sshd.socket
# exit chroot, umount and reboot
exit
umount -R /mnt
reboot
@KenyOS
Copy link

KenyOS commented May 5, 2023

thank you, very helpful.
if you get Failed to enable unit, unit sshd.socket does not exist.
use
systemctl enable dhcpcd.service

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment