markdown 使用完整系统加密安装arch linux,在LUKS上安装LVM

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 使用完整系统加密安装arch linux,在LUKS上安装LVM相关的知识,希望对你有一定的参考价值。

Parent Tutorial:
- https://gist.github.com/mattiaslundberg/8620837

Muktware Tutorial:
- http://www.muktware.io/arch-linux-guide-the-always-up-to-date-arch-linux-tutorial/

Arch Linux Installation Guide:
- https://wiki.archlinux.org/index.php/Installation_guide

There are 2 choices:
- UEFI/GPT mode: UEFI boot mode / GPT partition table
- BIOS/MBR mode: Legacy boot mode / MBR partition table

I tried to install in UEFI mode, but my laptop (Acer E5-475-336H) had problems with it, and didn't boot after installation.
This is how I installed arch linux in BIOS/MBR mode with full disk encryption (using LUKS), and LVM on LUKS.

# [IMPORTANT] ASSUMPTIONS

I assume that /dev/sda is the system's disk, and /dev/sdb is usb drive.


# STEPS

1.  Download arch iso image from https://www.archlinux.org/ and copy to a usb drive.
        
        # dd if=arch.iso of=/dev/sdb

2.  Set boot mode to "Legacy" in BIOS configuration, and boot from usb.

3.  Connect to internet. Useful commands:

        # supervisorctl restart dhcpcd
        # wifi-menu

4.  Partitioning

    A drive should first be **partitioned** and afterwards the partitions should be formatted with a **file system**.
    Use fdisk to create MBR partitions.
    
        # fdisk /dev/sda
    
    First, create an empty MBR partition table (WARNING: This will erase entire disk)
    
        (fdisk) o
    
    We are going to create 2 main partitions (/dev/sda1 and /dev/sda2):
    
        Device     Boot     Start       End   Sectors   Size Id Type
        /dev/sda1            2048    526335    524288   256M 83 Linux      /boot
        /dev/sda2          526336 765986815 765460480   365G 83 Linux      Encrypted with LUKS, 3 LVM partitions:
            swap  vg0 -wi-ao----   8.00g                                   swap
            root  vg0 -wi-ao----  80.00g                                   /
            anbar vg0 -wi-ao---- 277.00g
        /dev/sda3       765986816 976773167 210786352 100.5G 83 Linux      (Optional) Other partitions if you need... You can encrypt them separately with another password
    
    Create partitions:
    
        (fdisk) n
        (fdisk) p
        (fdisk) 1
        (fdisk) <Enter>
        (fdisk) +256M
        (fdisk) t
        (fdisk) 83
        
        (fdisk) n
        (fdisk) p
        (fdisk) 2
        (fdisk) <Enter>
        (fdisk) +365G
        (fdisk) t
        (fdisk) 83
        
        (fdisk) n
        (fdisk) p
        (fdisk) 3
        (fdisk) <Enter>
        (fdisk) <Enter>
        (fdisk) t
        (fdisk) 83
        
        (fdisk) w (Write Changes)

    Format Partitions:

        mkfs.ext2 /dev/sda1

5.  Setup encryption

        # cryptsetup -c aes-xts-plain64 -y --use-random luksFormat /dev/sda2
        # cryptsetup luksOpen /dev/sda2 luks

6.  Create LVM Partitions
    This creates one partions for root, modify if /home or other partitions should be on separate partitions
        
        # pvcreate /dev/mapper/luks
        # vgcreate vg0 /dev/mapper/luks
        # lvcreate --size 8G vg0 --name swap
        # lvcreate --size 80G vg0 --name root
        # lvcreate -l +100%FREE vg0 --name anbar

7.  Format LVM partitions

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

8.  Mount the new system 

        # mount /dev/mapper/vg0-root /mnt
        # mkdir /mnt/boot
        # mount /dev/sda1 /mnt/boot
        # swapon /dev/mapper/vg0-swap

9.  Install the base system

        # pacstrap -i /mnt base base-devel openssh git vim

10. Generate /etc/fstab
    The /etc/fstab file can be used to define how disk partitions, various other block devices,
    or remote filesystems should be mounted into the filesystem. 

        # genfstab -pU /mnt >> /mnt/etc/fstab
    
    (Optional) For making /tmp a ramdisk, add following line to /mnt/etc/fstab:
    
        tmpfs	/tmp	tmpfs	defaults,noatime,mode=1777	0	0

11. Enter the new system

        # arch-chroot /mnt /bin/bash

12. Set TimeZone
    See available timezones: ls /usr/share/zoneinfo/
    
        # ln -s /usr/share/zoneinfo/Asia/Tehran /etc/localtime

13. Set Locale

        # vim /etc/locale.gen (uncomment en_US.UTF-8 UTF-8)
        # locale-gen
        # echo LANG=en_US.UTF-8 > /etc/locale.conf
		# export LANG=en_US.UTF-8

14. Set the hardware clock mode uniformly between your operating systems.
    Otherwise, they may overwrite the hardware clock and cause time shifts. 
		
        # hwclock --systohc --utc

15. Set hostname
		
        # echo myhostname >/etc/hostname
	
    Add it to /etc/hosts:
	
        127.0.1.1	myhostname.localdomain	myhostname

16. Create User

        # useradd -m -g users -G wheel -s myusername
        # passwd myusername
        # visudo
		uncomment %wheel ALL=(ALL) ALL

17. Configure mkinitcpio with modules needed for the initrd image

        # vim /etc/mkinitcpio.conf
        Add 'ext4' to MODULES
        Add 'encrypt' and 'lvm2' to HOOKS before 'filesystems'

    Regenerate initrd image

        # mkinitcpio -p linux

18. Setup grub
        
        # pacman -S grub
		# grub-install --target=i386-pc --recheck /dev/sda
        
    In /etc/default/grub edit the line GRUB_CMDLINE_LINUX to:
        
        GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda2:luks:allow-discards"
		
    [Tip] To automatically search for other operating systems on your computer,
    install os-prober (pacman -S os-prober) before running the next command.
		
        # grub-mkconfig -o /boot/grub/grub.cfg

19. Exit new system and unmount all partitions

        # exit
        # umount -R /mnt
        # swapoff -a


20. Reboot into the new system, don't forget to remove the cd/usb
        
        # reboot

21. Start network and check internet

        # systemctl enable dhcpcd.service
        # systemctl start dhcpcd.service

22. System is installed now. If you want to install Gnome desktop, perform following steps.

23. Install gdm

        # pacman -S gdm
        # pacman -S xorg-server
        # pacman -S xorg-xinit
        # pacman -S xorg-server-utils
        # INSTALL GRAPHICS DRIVER (e.g. xf86-video-intel)
        # pacman -S xterm
        # startx
        # exit

24. Install Gnome

        # pacman -S gnome
        (Optional) # gnome-extra gnome-system-tools

25. Enable GDM service

        # systemctl enable gdm

26. Reboot!

以上是关于markdown 使用完整系统加密安装arch linux,在LUKS上安装LVM的主要内容,如果未能解决你的问题,请参考以下文章

text 使用全盘加密的Arch Linux安装(LVM上的LUKS)

给Arch Linux安装好KDE和sddm后,卡在用户选择界面不动了,怎么办?

在 Arch Linux 中安装 GNOME 桌面所需步骤介绍

u盘怎么安装arch linux双系统

XP和unbuntu双系统,删除ubuntu安装arch后修复!想在windows界面下选择系统

arch 安装