1
0
mirror of https://github.com/tommytran732/Arch-Setup-Script synced 2024-09-19 15:14:43 -04:00
Arch-Setup-Script/README.md

48 lines
3.0 KiB
Markdown
Raw Normal View History

2021-02-01 07:18:08 -05:00
### Introduction
2021-04-10 17:40:40 -04:00
This is my fork of [easy-arch](https://github.com/classy-giraffe/easy-arch), a **script** made in order to boostrap a basic **Arch Linux** environment with **snapshots** and **encryption** by using a fully automated process.
2021-02-01 07:16:56 -05:00
2021-02-03 02:04:07 -05:00
### How does it work?
1. Download an Arch Linux ISO from [here](https://archlinux.org/download/)
2. Flash the ISO onto an [USB Flash Drive](https://wiki.archlinux.org/index.php/USB_flash_installation_medium).
3. Boot the live environment.
2021-04-10 17:26:27 -04:00
4. Connect to the internet.
2021-04-10 17:40:40 -04:00
5. `git clone https://github.com/tommytran732/Arch-Setup-Script/edit/main/README.md`
6. `cd Arch-Setup-Script`
7. `./install.sh`
2021-02-03 02:04:07 -05:00
2021-04-10 17:49:18 -04:00
### Changes to the original project
2021-04-10 17:33:58 -04:00
1. /boot is now encrypted
2. Added option to select your own kernel flavor
2021-04-11 07:09:10 -04:00
3. Enabled AppArmor
2021-04-14 00:38:35 -04:00
4. Removed swap partition (I will add zram auto config later)
2021-04-14 00:39:28 -04:00
5. Replaced Snapper with Timeshift (snapper rollback only works nicely with openSUSE's layout and openSUSE's GRUB. Since the current layout works better with Timeshift and we don't have any GRUB package with SUSE's patches on the AUR, I opt in for Timeshift instead.
2021-04-14 00:38:35 -04:00
6. The entire /var, not /var/log is in its own subvolume. There are more things that should not be included and restore with the main system, such as docker containers and virtual machines.
2021-04-10 17:33:58 -04:00
2021-02-01 05:43:36 -05:00
### Partitions layout
2021-02-01 05:20:58 -05:00
2021-02-01 05:43:36 -05:00
| Partition Number | Label | Size | Mountpoint | Filesystem |
|------------------|-----------|-------------------|------------|------------------------|
2021-04-10 17:24:29 -04:00
| 1 | ESP | 512 MiB | /boot/efi | FAT32 |
2021-04-10 17:40:40 -04:00
| 2 | Cryptroot | Rest of the disk | / | Encrypted BTRFS (LUKS1)|
2021-02-01 05:11:02 -05:00
2021-02-01 07:24:31 -05:00
The **partitions layout** is pretty straightforward, it's inspired by [this section](https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#Btrfs_subvolumes_with_swap) of the Arch Wiki. As you can see there's just a couple of partitions:
1. A **FAT32**, 512MiB sized, mounted at `/boot` for the ESP.
2021-02-07 03:46:50 -05:00
2. A **LUKS encrypted container**, which takes the rest of the disk space, mounted at `/` for the rootfs.
2021-04-10 17:24:29 -04:00
3. /boot is **encrypted**.
2021-02-01 05:43:36 -05:00
### BTRFS subvolumes layout
2021-02-01 05:20:58 -05:00
| Subvolume Number | Subvolume Name | Mountpoint |
|------------------|----------------|------------------|
| 1 | @ | / |
| 2 | @home | /home |
| 3 | @snapshots | /.snapshots |
2021-04-14 00:38:35 -04:00
| 4 | @var | /var |
2021-02-01 05:20:58 -05:00
2021-02-01 07:24:31 -05:00
The **BTRFS subvolumes layout** follows the traditional and suggested layout used by **Snapper**, you can find it [here](https://wiki.archlinux.org/index.php/Snapper#Suggested_filesystem_layout). I only added a swap subvolume in case you need a swapfile, but it's totally optional. You'll be asked if you want it or not during the script execution. Here's a brief explanation of the **BTRFS layout** I chose:
2021-02-01 05:43:36 -05:00
1. `@` mounted as `/`.
2021-04-10 17:40:40 -04:00
2. `@boot` mounted as `/boot`.
3. `@home` mounted as `/home`.
4. `@snapshots` mounted as `/.snapshots`.
2021-04-14 00:38:35 -04:00
5. `@var` mounted as `/var/`.