Skip to content

Instantly share code, notes, and snippets.

@sq3
Last active February 24, 2021 15:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sq3/5ea6c05c17e4b676b8261bdf7fbc53ec to your computer and use it in GitHub Desktop.
Save sq3/5ea6c05c17e4b676b8261bdf7fbc53ec to your computer and use it in GitHub Desktop.
Installs ArchLinux Desktop with Deepin Desktop Environment

Installs ArchLinux Desktop with Deepin Desktop Environment

Installs Arch Linux with systemd-boot on efi, luks full diskencryption with lvm and deepin desktop environment

Download Arch ISO

https://ftp-stud.hs-esslingen.de/Mirrors/archlinux/iso/latest/

Create bootable USB

dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync

Boot from USB and set prepare system

loadkeys de-latin1-nodeadkeys
timedatectl set-ntp true

Connect to wifi

wifi-menu

Partition the disk with gdisk

We will create 2 partitions, one for boot partition and one for LUKS encrypted partition

gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): Y

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-242187466, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-242187466, default = 242187466) or {+-}size{KMGTP}: +512M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): EF00
Changed type of partition to 'EFI System'

Command (? for help): n
Partition number (2-128, default 2): 
First sector (34-242187466, default = 1050624) or {+-}size{KMGTP}: 
Last sector (1050624-242187466, default = 242187466) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

Command (? for help): p
Disk /dev/sda: 242187500 sectors, 115.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 9FB9AC2C-8F29-41AE-8D61-21EA9E0B4C2A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 242187466
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1050623   512.0 MiB   EF00  EFI System
   2         1050624       242187466   115.0 GiB   8300  Linux filesystem

Command (? for help): w

Format, encrypt and mount partitions

I will create only swap and root partitions, but here you can create home, var and other partitions if you wish.

mkfs.vfat -F32 /dev/sda1

cryptsetup -v luksFormat /dev/sda2
cryptsetup luksOpen /dev/sda2 luks

pvcreate /dev/mapper/luks
vgcreate vg0 /dev/mapper/luks
lvcreate -L 20G vg0 -n swap
lvcreate -l +100%FREE vg0 -n root

mkfs.ext4 /dev/mapper/vg0-root
mkswap /dev/mapper/vg0-swap

mount /dev/mapper/vg0-root /mnt
swapon /dev/mapper/vg0-swap

mkdir /mnt/boot
mount /dev/sda1 /mnt/boot

Install base system

pacstrap /mnt base base-devel deepin lightdm vim

Generate fstab

genfstab -pU /mnt >> /mnt/etc/fstab

cat /mnt/etc/fstab
# 
# /etc/fstab: static file system information
#
# <file system> <dir>   <type>  <options>   <dump>  <pass>
# /dev/mapper/vg0-root
UUID=44bc2285-0443-44d6-8208-e914638ee1b1   /           ext4        rw,noatime,data=ordered 0 1

# /dev/sda1
UUID=AEF3-11A1          /boot       vfat        rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro    0 2

# /dev/mapper/vg0-swap
UUID=708a05f7-633c-4f0f-a16b-3abce7def965   none        swap        defaults    0 0

If you have SSD change relatime on all non-boot partitions to noatime.

chroot into new system and prepare it

arch-chroot /mnt

rm /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime

hwclock --utc

echo n011-ms > /etc/hostname

pacman -S zsh
pacman -S dialog wpa_supplicant

passwd
useradd -m -G wheel -s /usr/bin/zsh mschnitzius
passwd mschnitzius

Set locales

Uncomment en_US.UTF-8 UTF-8 and other needed localizations in /etc/locale.gen

echo LANG=en_US.UTF-8 > /etc/locale.conf
echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf
locale-gen

mkinitcpio

bootctl --path=/boot install

Edit /etc/mkinitcpio.conf

MODULES="ext4"
.
.
.
HOOKS="base udev systemd autodetect keyboard sd-vconsole modconf block sd-encrypt sd-lvm2 resume filesystems fsck"

Configure bootloader

Create /boot/loader/entries/arch.conf

title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options luks.uuid=<sda2 UUID> luks.name=<sda2 UUID>=cryptroot root=UUID=<vg0-root UUID> resume=/dev/mapper/vg0-swap rw

Edit /boot/loader/loader.conf

timeout 0
default arch
editor 0

Create initramfs

mkinitcpio -p linux

Force arch mirror of hs-esslingen

echo 'Server = http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist

#Deepin configuration

Edit /etc/lightdm/lightdm.conf

greeter-session=lightdm-deepin-greeter

Enable required service

systemctl enable lightdm

systemctl enable NetworkManager

Finish installation and boot to new system

exit
umount -R /mnt
reboot

Sources

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