СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

| сохранено

H Установка Arch Linux для самых маленьких в черновиках Tutorial


Всем доброго времени суток! В этой статья мы рассмотрим установку Arch Linux на ПК (или виртуальную машину) и его базовую настройку

Все самое интересное — под катом.

Для начала я хотел бы ответить на стандартный вопрос всех тех, кто ни разу не встречался с данным дистрибутивом: «Зачем?». Действительно, зачем нужен Arch Linux, когда полно других юзерфрендли дистрибутивов, типа божеупаси Ubuntu, Debian, Linux Mate и т.д. А ответ очень прост: Арч — это один из самых легких и компактных дистрибутивов, который не несет в себе даже окружение рабочего стола, из коробки нам дают только консоль и несколько стоковых утилит (например fdisk). Если вы когда-нибудь хотели поиграть в игру «Собери систему сам», то этот дистрибутив для вас.

Итак, подготовим наш «тестовый стенд». В моем случае я использую Parallels Desktop 12, однако ровно неделю назад я ставил арч на ноутбук Sony Vaio-чтототам, так что процесс установки мало чем будет отличаться.

Если у вас Wi-Fi
Как я уже сказал, арч поставляется голым, но установщик оснащен утилитой Wifi-Menu, позволяющую подключаться к сетям WiFi.

1. Начало


Для начала скачаем дистрибутив. Релиз на момент написания статьи: 2017.05.01. Весит образ 400 мегабайт. Ядро 4.10.13. Если вы устанавливаете дистрибутив на виртуальную машину, первый шаг можно пропустить.

1.1 Создание загрузочной флешки


Есть несколько способов создания загрузочной флешки. Рассмотрим два из них:

Windows:

UNetBootIN — бесплатная интуитивно-понятная утилита. Выбираете флешку и дистрибутив и нажимаете «Продолжить», она все сделает сама (так же работает на Mac и Linux). Ссылка.

Win32 Disk Imager — бесплатная утилита для Windows. Все так же: выбираете флешку, дистрибутив и нажимаете Write. Ссылка.

Linux/Mac:

Для *nix подобных систем скачивать дополнительные утилиты необходимости нет. Все что нужно — наличие терминала под рукой. Для начала найдем флешку:

Mac OS: пишем diskutil list, получаем список всек замонтированных ус-в.



В моем случае флешка имеет «ссылку» /dev/disk3

Linux: пишем lsblk, получаем список ус-в. По сути получим то же самое, только ответ будет типа /dev/sdX (X — буква, например /dev/sdb1)

Теперь, когда мы определились с флешкой, давайте запишем на нее образ. Делать мы это будем с помощью утилиты dd. Открываем терминал (если вы его закрыли) и вводим туда следующее
dd if=path/to/archiso.iso of=path/to/flash status=progress
Готово. Переходим к следующему шагу.

2. Установка базовой системы


Итак, перезагружаем компьютер, и загружаемся с флешки. Сначала мы попадаем в меню SysLinux, где выбираемм «Boot Arch Linux x86_64». Итак, мы в окружении zSH (замена bash).





Сначала проверим наше интернет-соединение. Если вы используете ethernet, то никаких дополнительных манипуляций делать не нужно, арч подцепит все сам. Если вы используете wifi, то введите wifi-menu и вам откроется список доступных для подключения wifi-сетей. К слову, если у вас несколько адаптеров, то введите iw dev, чтобы увидеть все доступные адаптеры (обычно название начинается с буквы w), а затем введите wifi-menu (вместо — ваш адаптер). Теперь проверим соединение, пинганув, например, Яндекс.

# ping -c 3 ya.ru
PING ya.ru (93.158.134.203) 56(84) bytes of data.
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=1 ttl=54 time=62.4 ms
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=2 ttl=54 time=63.0 ms
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=3 ttl=54 time=62.4 ms

--- ya.ru ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 62.423/62.623/63.009/0.273 ms

С интернетом готово. Теперь проверим наши диски. Вбиваем lsblk, чтобы посмотреть, где у нас что. Итак, у меня основной диск, на котором будет находится система находится на /dev/sda, флешка — на /dev/sdb (sdb1).



Как вы можете заметить, диск не разбит на разделы. Сейчас мы сделаем два раздела для /системы и /home каталога (где будет находится все доступное пользователю окружение).

Мы будем пользоваться утилитой fdisk, т.к она имеет графический интерфейс и с ней более удобно (для меня) работать.

Вводим fdisk в консоль. Он может спросить нас, что нам нужно: gpt или dos(MBR). Для систем с UEFI/GPT выбирайте gpt, для LegacyBIOS/MBR систем — dos. В моем случае мы создадим GPT разметку. Появится более-менее привычный нам гуй.



Нажимаем «New», вводим желаемое значение типа РАЗМЕР<G,MB,KB,B>, где G гигабайты, MB — мегабайты, KB — килобайты, B — байты. В моем случае я создам раздел /dev/sda1, который будет сжирать 20 гигабайт для системы, dev/sda2, который будет сжирать 44 гигабайта для /home и раздел размером в 1023 мегабайта для свапа.



Нажимаем кнопку Write для записи таблицы разделом на диск и Quit для выхода из утилиты.
Проверим разделы, снова введя lsblk:



Теперь создадим файловую систему для каждого раздела. Для системы и /home каталога будем использовать ext4, а для свапа — swap.

Вводим в терминал следующие команды:

# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda2
# mkswap /dev/sda3
# swapon /dev/sda3

Снова проверим конфигурацию разделов. Как видите, mountpoint у /dev/sda3 сменился на [SWAP], что означает, что мы все сделали правильно.



Теперь примонтируем диски.

# mount /dev/sda1 /mnt
# mkdir -p /mnt/home
# mount /dev/sda2 /mnt/home

Можете ввести lsblk для проверки точек монтирования. Я это сделал, у меня не было ошибок. Переходим к установке базовой системы. Для этого вводим в терминал следующее:

# pacstrap /mnt base base-devel

Важно
Отредактируйте файл /etc/pacman.d/mirrorlist с помощью nano. Перед всем содержимым файла добавьте строку:

Server = http://mirror.yandex.ru/archlinux/$repo/os/$arch

Тем самым мы добавим зеркало Яндекса и дальнейшие закачки будут идти с него. Это очень важно, так как по-умолчанию там установлен какой-то далекий сервер закачек. Например, у меня во время написания этой статьи закачки оттуда не шли вообще.

Процесс скачивания и установки займет какое-то время, так что смело можете отправится пить пиво/чай/etc.

Для тех, у кого Wi-Fi
В базовой системе ОТСУТСТВУЕТ возможность работы с wi-fi, поэтому установите туда dialog и wpa_supplicant для работы с беспроводными сетями с помощью пакстрап:

# pacstrap /mnt wpa_supplicant dialog


3. Настройка базовой системы


Итак, мы установили систему. Теперь зайдем в нее и настроим изнутри, введя команду:

# arch-chroot /mnt

Сейчас мы вышли из live-окружения и уже работает непосредственно с системой. Демон dhcpcd автоматически подцепит ethernet-соединение, для wifi используйте wifi-menu.

Установим локаль (язык) для нашей системы. Откроем файл /etc/locale.gen с помощью nano, найдем и расскоментируем следующие строки:
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8

После чего вводим:

# locale-gen

для генерации локалей.



Создадим файл locale.conf, где будет содержаться переменная текущей локали и запишем в него переменную LANG=ru_RU.UTF-8 или LANG=ru_RU для установки русского языка:

# export LANG=ru_RU.UTF // установим язык для текущей сессии
# echo LANG=ru_RU.UTF-8 > /etc/locale.conf
# loadkeys ru // загрузим русскую раскладку

Так же можем вместо echo LANG… прописать locale > /etc/locale.conf при условии того, что нас устраивает вывод locale:



Теперь установим консольный шрифт для работы. Выполним следующие команды:

# setfont cyr-sun16
# nano /etc/vconsole.conf

В файл vconsole.conf добавим следующие строки
KEYMAP=ru
FONT=cyr-sun16

Настроим часы. Введем:

ln -s /usr/share/zoneinfo/Зона/Субзона /etc/localtime

Например, для Новосибирска я введу следующее:

ln -s /usr/share/zoneinfo/Asia/Novosibirsk /etc/localtime

Если ошибка
Вы можете встретить ошибку типа «файл уже существует». Не волнуйтесь просто добавьте ключ -f после -s, что перезапишет файл.

Обеспечим точность аппаратных часов командой timedatectl set-ntp true, а затем введем hwclock --systohc --utc для установки часов.

Установим имя нашего узла/домена командой echo localdomain > /etc/hostname, где localdomain — ваше имя (может быть любым, в моем случае это будет furrypaws).

Теперь зададим пароль для суперпользователя командой passwd.
И генерируем ядро командой:

mkinitcpio -p linux

Сгенерируем таблицу разделов. Для этого вернемся в live-окруджение командой exit и выполним

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

Не забудьте проверить файл /mnt/etc/fstab через nano. Вернемся в chroot, чтобы завершить настройку через arch-chroot /mnt.

Установим загрузчик (т.е GRUB). Вводим следующее:

# pacman -S grub
// pacman -S os-prober, пропишите это дополнительно, если у вас стоят еще системы, помимо Арч.
# grub-install --recheck /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

Выходим из окружения командой exit и перезагружаемся командой reboot. После перезагрузки, если мы сделали все правильно, мы попадем в меню Grub, а оттуда — в Арч. Логин для входа — root, пароль тот, который мы указали. Установить интернет-соеденение через провод:
Вводим

# ip link

Находим там наш интерфейс. Затем вбиваем:

# systemctl enable dhcpcd@интерфейс.service


Wi-Fi
Вбиваем:

# wifi-menu

Устанавливаем соединение, затем вбиваем:

# cd /etc/netctl
# ls

Имя профиля будет начинаться на wlp.



Теперь вбиваем:

# netctl enable имя_профиля

и наслаждаемся автоматическим подключением.

Для справки: сейчас наша система занимает всего 1,5 гигабайта. Неплохо, да?

4. Установка графического окружения


На этом моменте у меня вылетел Parallels, в последствие отказавшийся запускать виртуальную машину, так что я был вынужден мигрировать на VirtualBox. Ничего не поменялось, кроме как таблица разделов на диске стала DOS.

Установим xorg (X Window Manager).

# pacman -S xorg xorg-xinit xorg-twm xterm

Если вам интересно, мы можем запустить окружение командой startx или xinit и посмотреть, что будет:



Это только «фундамент» нашел будущего всего.

Кстати, давайте сделаем пользователя для себя следующей командой и дальше будем работать через него с помощью sudo.

# useradd -m -g users -G wheel,games <i>my_user</i>

Настроим доступ к sudo для пользователей. Введем команду visudo, найдем закоментированную строку
# %wheel ALL=(ALL) ALL

Раскомментируем ее, нажмем esc, затем ":wq" и нажмем Enter. Теперь перейдем в наше окружение пользователя командой su my_user и далее будем работать из-под него.

Я буду использовать Plasma для работы, вы можете выбрать любой DE, который вам понравится.
Установлю его командой:

# sudo pacman -S plasma-desktop plasma-meta sddm
# sudo pacman -S breeze-gtk breeze-kde4 kde-gtk-config 
# sudo pacman -S kde-applications networkmanager plasma-nm powerdevil

Последний будет устанавливаться очень долго (он скачает 700 мегабайт пакетов и установит примерно 2 гигабайта), так что можете отправится пить чай.

Важно
Если вам нужно легкое рабочее окружение, то установите lxde и lxdm.

После установки пропишем следующее:

 
# echo "exec startkde" > ~/.xinitrc
# systemctl enable sddm
# systemct disable dhcpcd
# sudo reboot

После перезагрузки нам откроется окно входа SDDM, введя пароль попадем в наше рабочее окружение.

 # systemctl enable NetworkManager 
# systemctl start NetworkManager

На этом все. The end.

комментарии (9)

+4
overmind88 ,  
Мне не так давно понадобилось ставить арчик на ноут, так я его ставил с livecd manjaro linux. Можно читать вики из браузера, удобно копипастить команды, есть gparted, можно параллельно смотреть ютубчик. Плюсы установки из манжары, перед установкой из убунты — пакет arch-install-scripts есть в репозитории. Минусы — всё время напевал песню Филиппа Киркорова про Килиманджаро >_<
0
+1 –1
Nathan_Foxy ,  
Орнул
0
mgremlin ,  
Ну, песню мог бы и получше напевать. 8-)
такую например: Феллини
+8
Sirikid ,  
Для начала я хотел бы ответить на стандартный вопрос всех тех, кто ни разу не встречался с данным дистрибутивом: «Зачем?».

А теперь ответьте на стандартный вопрос всех тех, кто встречался с данным дистрибутивом хотя бы раз: "Чем ваш пост лучше ArchWiki?"

–3
+1 –4
Nathan_Foxy ,  
Поверь, есть люди которые ниасилили арчвики. Лично знаю таких.
+3
HaruAtari ,  
Тогда зачем им арчи?
0
Xo4yBce3HaTb ,  
На моей памяти, даже на минимальной системе раз в год нужно вручную помогать обновиться системе(glibc, filesystem, сейчас вот ca-certificates-utils). Для каждого этого случая тоже будите статью переводить с archwiki?
0
bano-notit ,  

И что? Арчвики не осилили, а Вы думаете, что они на хабр тогда полезут? Да нифига, эти люди скорее найдут какой-нибудь форум или всё же с 3 раза осилят вики, чем полезут искать статьи на хабре.

+1
Wimbo ,  
Какой на дворе год?