Files
Microsoft-Surface-Pro-3-Arc…/README.md
2016-08-28 12:23:14 +00:00

4.9 KiB

Microsoft Surface Pro 3 with Arch Linux and i3

!!! documentation unfinished !!!

(Dual) Booting Arch Linux (and Windows) with UEFI and Secure Boot

Installing the Linux distro

Insert the live USB and boot by holding volume down, then the power button.

Optionally set the keyboard layout (default is US)

$ loadkeys de-latin1

Set or in this case increase the font size

$ setfont latarcyrheb-sun32

Connect to the Internet

$ iw dev                # list wireless devices
$ iw dev wlp1s0 link    # Print information about the current link
$ wifi-menu -o wlp1s0   # -o hides the password

Update the system clock

$ timedatectl set-ntp true
$ timedatectl status
$ timedatectl set-timezone Europe/Berlin

Partitioning

Note: Using parted with mkpart defines partitions via a from and a to argument.

$ lsblk                                         # list devices /dev/sda?
$ parted /dev/sdx                               # could be /dev/sda
(parted) mklabel gpt                            # for UEFI
(parted) mkpart ESP fat32 1MiB 513MiB           # EFI System Partition
(parted) set 1 boot on
(parted) mkpart primary linux-swap 513MiB 9GiB  # for 8GB DRAM
(parted) mkpart primary ext4 9GiB 40%           # Linux partition
(parted) mkpart primary ntfs 40% 60%            # Shared partition
(parted) quit

That last entry is for a shared NTFS filesystem that both operating systems (Linux and Windows) can use, e. g. for a cloud service like Dropbox, email, downloads, etc. The Windows section is left unallocated, it will be formatted by the windows installer.

Formatting

$ mkfs.fat -F32 /dev/sdx1            # UEFI boot must be fat32
$ mkswap /dev/sdx2
$ swapon /dev/sdx2
$ mkfs.ext4 /dev/sdx3                # Linux root
$ mkfs.ntfs -f /dev/sdx4

Mount

Mount the root partition on /mnt and for the boot partition first create directory and then mount it also.

$ mount /dev/sdx3 /mnt
$ mkdir -p /mnt/boot
$ /dev/sbx1 /mnt/boot

Install the base packages and configure the system

Edit /etc/pacman.d/mirrorlist and select a download mirror (uncommenting the specific line). see also Arch Linux Wiki: Mirrors [arch:mirrors] [arch:mirrors]: https://wiki.archlinux.org/index.php/Mirrors "Arch Linux Mirrors"

Install the base packages or more

$ pacstrap /mnt base
# or
$ pacstrap -i /mnt base base-devel btrfs-progs

Generate an fstab file, so the filesystem knows how to mount the disk partitions. see also Arch Linux Wiki: fstab [arch:fstab] [arch:fstab]: https://wiki.archlinux.org/index.php/Fstab "Arch Linux fstab"

$ genfstab -U /mnt >> /mnt/etc/fstab

Change root into the new system

$ arch-chroot /mnt /bin/bash    # bash shell instead of the default sh

For localizations uncomment en_US.UTF-8 UTF-8 and other needed localizations in /etc/locale.gen, e. g. de_DE.UTF-8 UTF-8. Finally generate the locale files:

$ locale-gen

Set the LANG variable in /etc/locale.conf accordingly

LANG=en_US.UTF-8

Optionally set the keyboard layout and set the font in /etc/vconsole.conf

KEYMAP=de-latin1
FONT=latarcyrheb-sun32

Set the time zone, e. g. for Germany as Europe/Berlin. Three ways possible: see also Arch Linux Wiki: Time zone [arch:tz] [arch:tz]: https://wiki.archlinux.org/index.php/Fstab "Arch Linux Time zone"

  • interactively with tzselect (e. g. 7) Europe, 16) Germany, 2) Germany, 1) yes),

  • via timedatectl

      $ timedatectl                             # check the current zone
      $ timedatectl list-timezones              # list available zones
      $ timedatectl set-timezone Europe/Berlin  # change your time zone
    
  • or create the symlink manually

      $ ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
    

Set the Hardware Clock from the System Clock, and update the timestamps in /etc/adjtime via:

hwclock --systohc --utc

...