Arch Linux: установка

By | 07/09/2016
 

archlinux_logoЗагружаем образ со страницы загрузок.

В данном случае используется archlinux-2016.04.01-dual.iso (хотя уже есть сборка 2016.07.01).

Запуск

Загружаемся:

arch_linux_installation_1

Проверяем доступ в интернет:

arch_linux_installation_2

Что бы упростить дальнейшую установку – устанавливаем OpenSSH:

# pacman -Sy openssh

arch_linux_installation_3

Запускаем и добавляем в автозагрузку:

# systemctl start sshd.socket
# systemctl enable sshd.socket

Устанавливаем пароль root:

# passwd root

Для удобства – продолжаем установку через SSH:

$ ssh root@10.11.100.20
root@10.11.100.37's password: 
Last login: Fri Apr  8 08:19:09 2016
root@archiso ~ # 

Разбивка диска

Диск будет разбит на три раздела:

  1. /boot – загрузочный раздел;
  2. swap – область подкачки;
  3. /  – корневой раздел для /home  и других каталогов.

Находим диск:

# lsblk 
NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda     8:0    0    20G  0 disk 
sr0    11:0    1   724M  0 rom  /run/archiso/bootmnt
loop0   7:0    0 313.1M  1 loop /run/archiso/sfs/airootfs

Устанавливать будем на диск /dev/sda:

# fdisk -l /dev/sda 
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Создаём разделы.

Подробнее о ручной разметке диска и создании разделов – в посте Debian: ручная разбивка диска с fdisk, создание разделов LVM и установка системы:

# fdisk /dev/sda    

Welcome to fdisk (util-linux 2.27.1).                                                                                                                                                                                                                                          
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xda1eb966.

Command (m for help): p
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xda1eb966

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-41943039, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +512M

Created a new partition 1 of type 'Linux' and of size 512 MiB.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 
First sector (1050624-41943039, default 1050624): 
Last sector, +sectors or +size{K,M,G,T,P} (1050624-41943039, default 41943039): +2G

Created a new partition 2 of type 'Linux' and of size 2 GiB.

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 
First sector (5244928-41943039, default 5244928): 
Last sector, +sectors or +size{K,M,G,T,P} (5244928-41943039, default 41943039): 

Created a new partition 3 of type 'Linux' and of size 17.5 GiB.

Command (m for help): p
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xda1eb966

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1          2048  1050623  1048576  512M 83 Linux
/dev/sda2       1050624  5244927  4194304    2G 83 Linux
/dev/sda3       5244928 41943039 36698112 17.5G 83 Linux

Command (m for help): a
Partition number (1-3, default 3): 1

The bootable flag on partition 1 is enabled now.

Command (m for help): t
Partition number (1-3, default 3): 2
Partition type (type L to list all types): 82

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

Command (m for help): p
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xda1eb966

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1  *       2048  1050623  1048576  512M 83 Linux
/dev/sda2       1050624  5244927  4194304    2G 82 Linux swap / Solaris
/dev/sda3       5244928 41943039 36698112 17.5G 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Создаём файловые системы. Ext2 – для /boot на sda1, и Ext4 – для / на sda3:

# mkfs.ext2 /dev/sda1
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 131072 4k blocks and 32768 inodes
Filesystem UUID: 72b69f3c-21b1-4823-9e14-d02b544161e9
Superblock backups stored on blocks: 
        32768, 98304

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done
# mkfs.ext4 /dev/sda3
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 4587264 4k blocks and 1146880 inodes
Filesystem UUID: 022ba838-6d58-4703-9de4-ce7d35b46aaa
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

Монтируем созданные разделы в каталог /mnt.

Корневой раздел:

# mount /dev/sda3 /mnt

Раздел /boot:

# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot/
# ls -l /mnt/
total 20
drwxr-xr-x 3 root root  4096 Apr  8 08:37 boot
drwx------ 2 root root 16384 Apr  8 08:37 lost+found

Установка Arch Linux

Устанавливаем базовую систему:

# pacstrap -i /mnt/ base base-devel
==> Creating install root at /mnt/
==> Installing packages to /mnt/
:: Synchronizing package databases...
...
:: There are 50 members in group base:
:: Repository core
   1) bash  2) bzip2  3) coreutils  4) cryptsetup  5) device-mapper  6) dhcpcd  7) diffutils  8) e2fsprogs  9) file  10) filesystem  11) findutils  12) gawk  13) gcc-libs  14) gettext  15) glibc  16) grep  17) gzip  18) inetutils  19) iproute2  20) iputils  21) jfsutils
   22) less  23) licenses  24) linux  25) logrotate  26) lvm2  27) man-db  28) man-pages  29) mdadm  30) nano  31) netctl  32) pacman  33) pciutils  34) pcmciautils  35) perl  36) procps-ng  37) psmisc  38) reiserfsprogs  39) s-nail  40) sed  41) shadow  42) sysfsutils
   43) systemd-sysvcompat  44) tar  45) texinfo  46) usbutils  47) util-linux  48) vi  49) which  50) xfsprogs

Enter a selection (default=all): 
...
Total Download Size:   222.87 MiB
Total Installed Size:  753.33 MiB

:: Proceed with installation? [Y/n] y
...
(140/141) installing pkg-config     [################################################################] 100%
(141/141) installing sudo           [################################################################] 100%

Создаём файл fstab:

# genfstab -U -p /mnt >> /mnt/etc/fstab

Проверяем его:

# cat /mnt/etc/fstab 
# 
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sda3
UUID=d2a090cf-c9de-4c64-be46-f2e7a7fe73d5 / ext4 rw,relatime,data=ordered 0 1

# /dev/sda1
UUID=53d1e6b2-80a0-42d4-8cdc-e3cced5f2bdd /boot ext2 rw,relatime,block_validity,barrier,user_xattr,acl 0 2

Проверяем UUID дисков:

# blkid /dev/sda1
/dev/sda1: UUID="53d1e6b2-80a0-42d4-8cdc-e3cced5f2bdd" TYPE="ext2" PARTUUID="ad96dcfe-01"
blkid /dev/sda3
/dev/sda3: UUID="d2a090cf-c9de-4c64-be46-f2e7a7fe73d5" TYPE="ext4" PARTUUID="ad96dcfe-03"

С помощью скрипта /usr/bin/arch-chroot – меняем окружение и переключаемся в установленную систему:

# arch-chroot /mnt
sh-4.3# bash

Устанавливаем имя хоста:

# echo setevoyarch > /etc/hostname

Устанавливаем загрузчик:

# pacman -S grub-bios
# grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
Found fallback initramfs image: /boot/initramfs-linux-fallback.img
done

Выходим из bash и chroot-окружения по Ctrl+D:

# exit
exit
sh-4.3# exit
exit

Перезагружаемся:

# reboot
Connection to 10.11.100.20 closed by remote host.
Connection to 10.11.100.20 closed.

Выбираем загрузку установленной системы:

arch_linux_installation_4

arch_linux_installation_5

arch_linux_installation_6

Настройка сети

С помощью ip address show (или – ip link) находим интерфейсы, в данном случае это будет enp0s3 (о переименовании интерфейса – в следующий раз).

Запускаем dchpcd enp0s3 для получения адреса:

arch_linux_installation_7

Устанавливаем и запускаем OpenSSH:

# pacman -Sy openssh
# systemctl start sshd.socket
# systemctl enable sshd.socket

Добавляем пользователя:

# useradd -m -G wheel setevoy
# passwd setevoy

Разрешаем группе wheel пользоваться sudo:

# visudo

Раскоментирууем строку:

...
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL
...

Логинимся:

$ ssh setevoy@10.11.100.34
setevoy@10.11.100.34's password: 
Last login: Sat Jul  9 10:02:33 2016 from 10.11.100.79
[setevoy@setevoyarch ~]$ sudo -s
[sudo] password for setevoy:

Копируем файл настроек для интерфейса:

# cp /etc/netctl/examples/ethernet-dhcp /etc/netctl/enp0s3
# cat /etc/netctl/enp0s3 
Description='A basic dhcp ethernet connection'
Interface=eth0
Connection=ethernet
IP=dhcp
#DHCPClient=dhcpcd
#DHCPReleaseOnStop=no
## for DHCPv6
#IP6=dhcp
#DHCP6Client=dhclient
## for IPv6 autoconfiguration
#IP6=stateless

Редактируем строку:

...
Interface=eth0
...

И меняем имя интерфейса:

...
Interface=en0s3
...

Редактируем файл /etc/systemd/system/netctl\@enp0s3.service и там тоже меняем имя интерфейса:

...
BindsTo=sys-subsystem-net-devices-enp0s3.device
After=sys-subsystem-net-devices-enp0s3.device
...

Проверяем, и добавляем автозапуск:

# netctl status enp0s3
* netctl@enp0s3.service - Networking for netctl profile enp0s3
   Loaded: loaded (/usr/lib/systemd/system/netctl@.service; static; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:netctl.profile(5)
# netctl enable enp0s3
ln -s '/etc/systemd/system/netctl@enp0s3.service' '/etc/systemd/system/multi-user.target.wants/netctl@enp0s3.service'

Готово.

Ссылки по теме

Build a Killer Customized Arch Linux Installation (2012 год)

Arch Linux Installation guide

How to install Arch Linux with XFCE Desktop

Arch Linux guide: the always up-to-date Arch Linux tutorial