Установка ArchLinux для новичков. Установка программ ArchLinux. Установка Steam на ArchLinux. Установка Arch Linux для самых маленьких Установка archlinux

Установка, сборка и первоначальная настройка Arch Linux в качестве десктопа

Вот и добрался я наконец-то до Arch Linux . Система для меня нова, но не думаю, что будет чем-то сильно отличаться от себе подобных. Поскольку нельзя просто так взять и поставить Arch с первого раза, то я подготовил рабочий мануал непосредственно под себя. Сразу хочу предупредить, что любителям EFI придется несладко. Манипуляции с GRUB на EFI вызывали во мне приступы истерического смеха. На сервер с обычным BIOS все установилось с первого раза.

Подготовка образа

Загрузим образ дистрибутива c официального сайта разработчика и запишем его на флешку:

А также изменим консольный шрифт на тот, который поддерживает кириллицу:

Обновим текущую локаль системы:

locale-gen
export LANG=ru_RU.UTF-8

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

При установке системы наличие подключения к интернету обязательно.
Служба DHCP уже запущена при загрузке для найденных Ethernet -адаптеров. Для беспроводных сетевых адаптеров запустите wifi-menu . Если необходимо настроить статический IP или использовать другие средства настройки сети, остановите службу DHCP командой systemctl stop dhcpcd.service и используйте netctl .

Создание разделов на жестком диске

Для управления разделами на жестком диске в процессе установки рекомендую использовать программу fdisk . Также настоятельно рекомендую удалить MBR или GPT таблицы командой sgdisk --zap-all /dev/sdX

Создаем разделы на диске:

  • (1) 512Mb под /boot; (dev/sdX1)
  • (2) SWAP под файл подкачки; (dev/sdX2)
  • (3) FREE_SPACE под корень; (dev/sdX3)

Создаем пустую таблицу разделов

Создаем 2 раздел (swap)

Добавляем флаг загрузки для первого раздела:

Для раздела подкачки (swap):

Для корневого раздела используем зашифрованный LVM :

Задаем формат для созданных разделов:

Монтирование разделов (продолжение)

Смонтируем корневой раздел:

Смонтируем загрузочный раздел:

Выбираем зеркало для pacman

Для более быстрой загрузки пакетов настроим зеркала. Поставим российское зеркало Яндекса выше всех остальных:

После выполнения команды и выбора всех пакетов загрузятся последние версии необходимых пакетов.

Важно: если ведется установка по Wi-Fi , то необходимо установить пакеты netctl , dialog и wpa_supplicant:

Если устанавливаем 32-х битную систему, то используем пакет grub-efi-i386 .

Первичная настройка системы

Сгенерируем fstab, для этого используем следующую команду

Перейдём в установленную систему

Обновим текущую локаль системы

Добавим нового пользователя

Установим загрузчик (для BIOS)

Обновим grub.cfg

Отмонтируем ранее монтируемые разделы:

Установим время

Настроим pacman (только для x86_64 ):

Отключаем IPv6

Для этого создадим новый файл /etc/sysctl.d/10-ipv6.conf с содержимым:

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

Запустим службу:

Обновим базы данных пакетов:

(если используется тачпад или тачскрин, то установим xf86-input-synaptics)

Установим драйвер для видеокарты:

Пакеты lib32-* нужно устанавливать только на x86_64 системы.

Xfce + SDDM

Приступим к установке и настройке графического окружения Xfce с менеджером входа SDDM :

Теперь можно перезагрузить систему командой

sudo systemctl reboot

Если все было выполнено правильно и без ошибок, то получаем готовую рабочую систему Arch Linux с Xfce на борту.

Важно: если у вас не вводятся символы в поле ввода, то попробуйте изменить раскладку с помощью комбинации клавиш: левый shift + правый shift . Чтобы установить английскую раскладку по умолчанию откройте файл /etc/X11/xorg.conf.d/00-keyboard.conf и в строке Option «XkbLayout» «ru,us» поменяйте ru и us местами.
После перезагрузки и первом входе в систему, выберите пункт настроек по умолчанию, затем я советую зайти в Меню приложений -> Настройки -> Внешний вид -> Шрифты и выбрать любимый шрифт, я предпочитаю Helvetica. После этого добавьте на панель элемент раскладки клавиатуры и настройте его.

Установим необходимые пакеты для работы

Pacman - это отличный пакетный менеджер, который намного удобнее apt-get из семейства Debian систем. Начнем с того что он безо всяких aptitude может самостоятельно заниматься поиском, установкой, удалением пакетов, удовлетворением зависимостей, синхронизацией репозиториев и обновлением системы, имея при этом довольно простой и логичны консольный интерфейс. Пример нескольких команд:

pacman -S foo # установить пакет foo
pacman -S --asdeps foo # установить пакет foo как зависимость
pacman -Sy # синхронизировать репозитории
pacman -Su # обновить систему
pacman -Syu # синхронизировать репозитории и обновить систему.
pacman -Syu foo # синхронизировать репозитории, обновить систему и установить пакет foo

Для Archlinux вы можете найти любой софт, который вы можете найти вообще для linux . Если вы не найдете какой-то пакет в официальном репозитории, вы наверняка это сделаете в Arch User Repository . Там находятся пакеты опубликованные и сопровождаемые пользователями Archlinux . Там находятся 53 тысячи пакетов против 37,5 тысяч у Debian .

Пакет, с помощью которого GRUB сможет определять все установленные ОС при генерации конфига:

Графика:

FTP-клиент:

Автодополнение

Автодополнение - это очень удобная фича терминала bash . Кнопкой Tab можно существенно облегчить и ускорить ввод команд. Однако такая возможность не предоставляется для таких программ как sudo , pacman и некоторых других. Чтобы исправить эту несправедливость достаточно установить пакет bash-completion .

sudo pacman -S bash-completion

Операционные системы семейства Winows являются лидирующими на компьютерном рынке. Но иногда возникает необходимость в использовании стороннего и бесплатного ПО в силу личных предпочтений или невозможности покупки лицензии для Windows. В этом случае на помощь приходят ОС Linux. Но не все из них отличаются дружелюбными интерфейсами и широкой документацией. А последняя если и присутствует, то зачастую только на английском языке, знанием которого похвастаться могут не все. Зато, в отличие от ПО с закрытым исходным кодом, Linux-системы имеют возможность гораздо более широкой настройки под определенного пользователя. В статье подробно рассказывается об особенностях установки ArchLinux и об этой системе в целом.

ArchLinux. Установка и настройка

Существует очень интересная операционная система из семейства «линуксовых». Называется она ArchLinux. Ее необычность заключается в том, что, в отличие от пакетных «убунтоподобных» систем, ArchLinux можно настроить под себя до последнего «винтика». Правда, это требует недюжинных знаний в данной области, что часто отпугивает новичков. Да и вообще, вся система, в отличие от пакетных дистрибутивов, рассчитана на очень опытного пользователя "линуксоподобных" систем, умеющего работать с командной строкой и терминалом. Установка и настройка ArchLinux во многом отличается от процесса установки прочих ОС. И в этой статье мы разберем все этапы инсталляции ОС ArchLinux.

Общая информация об ArchLinux

ArchLinux является ответвлением от очень минималистичной ОС CRUX. Эта ОС была популярна у любителей собирать систему из исходников и максимально «затачивать» ее под себя. В отличие от «родительской» ОС, ArchLinux не требует от пользователя умения компилировать ядра и строить зависимости. Ее можно установить, используя обычный графический менеджер. Хотя начинается инсталляция ArchLinux с Но об этом чуть ниже.

На данный момент существует две ветки развития ОС ArchLinux: stable и current. В stable используется стабильная версия операционной системы с проверенными программами. Однако обновления для нее приходится ждать очень долго. Для любителей всего самого «свежего» существует ветка current. Здесь обновления не опаздывают, однако стабильность системы несколько хромает. ArchLinux в ней также вызывает некоторые трудности и ошибки. Бывалые «арчеры» (так на сленге называют пользователей ArchLinux) советуют использовать stable-версию ОС. Пусть она будет не совсем актуальна, но стабильность - превыше всего.

Бедой ArchLinux является отсутствие документации по установке в самом дистрибутиве. Там имеются только общие рекомендации, предназначенные для продвинутых пользователей ОС семейства Linux. Причем все они на английском. Правда, некоторые из них переводятся энтузиастами. Так что установка ArchLinux для новичков - довольно непростое занятие, разберем его чуть подробнее.

Подготовка к процедуре

Первым делом необходимо создать загрузочную USB-флешку с дистрибутивом ArchLinux. Для этого нам нужно скачать ISO-образ ОС с официального сайта проекта. Образ с ArchLinux бывает двух типов: полный и базовый. Отличие состоит в размере образа и количестве программ, доступных «из коробки». Полный образ «весит» около 600 Мб, а базовый - всего 200 Мб. Лучше использовать полный вариант установочного диска.

После скачивания нужно выбрать программу для записи дистрибутива на USB-носитель. Если вы используете Windows, то лучшим вариантом для этой цели будет взять программу Rufus. Ее можно скачать совершенно бесплатно, установки она не требует. Запускаем Rufus и выбираем скачанный образ диска с ОС. Нажимаем кнопку «Начать». В процессе записи USB-носитель будет отформатирован и переименован в ArchLinux. Установка на флешку, в принципе, закончена. Теперь можно перезагружаться и пробовать инсталлировать ОС на компьютер.

Запуск установщика

После всех манипуляций с порядком загрузки в BIOS мы начинаем загрузку ArchLinux с флешки. Как уже говорилось выше, пошаговая установка ArchLinux во многом отличается от такого же процесса пакетных ОС. Поэтому здесь важно рассмотреть все детали и особенности.

Первое, что мы увидим, - командная строка. Чтобы запустить графический установщик, нужно набрать команду $/arch/setup. После этого появится окно установщика. Здесь есть пункты меню, отражающие все этапы процесса инсталляции:

  • подготовка диска;
  • выбор пакетов;
  • установка пакетов;
  • установка ядра;
  • конфигурирование системы;
  • установка загрузчика;
  • выход.

Если с большинством разделов меню справится даже новичок, то с пунктом «Установка ядра» придется попотеть даже продвинутым пользователям. Именно поэтому установка ArchLinux - для новичков дело непростое.

Подготовка диска

Процесс «разбивки» диска для ArchLinux несколько отличается от требований разделов прочих пакетных ОС семейства Linux. Проще всего позволить программе самой распределить диск на разделы. В этом случае автоматика лучше знает, что конкретно нужно для системы. Однако если на HDD имеются нужные файлы, то придется заняться ручной разметкой, дабы не утратить их навсегда. Установка ArchLinux начинается именно с этого.

При ручной разбивке диска нужно создать следующие разделы:

  • корневой раздел с меткой /;
  • раздел /usr;
  • раздел /opt;
  • раздел /var;
  • раздел /var/abs;
  • раздел /var/cache/pkg;
  • раздел /var/cache/src;
  • раздел «/home».

Теперь рассмотрим, для чего они все нужны.

Корневой раздел должен составлять как минимум один гигабайт. Именно в него и производится установка ArchLinux. Раздел /usr является «свопом» - для улучшения производительности системы. Поэтому он должен быть равен объему установленной оперативной памяти, умноженному на два.

Раздел /opt служит для размещения таких объемных файлов как библиотеки QT, «иксы» и прочие файлы рабочей оболочки ОС. Размер его должен составлять примерно 4 Гб.

Разделы с пометкой /var, используются для помещения различной системной информации с целью недопущения захламления корневого.

Ну а раздел /home используется для хранения личных данных пользователя. Предпочитаемая файловая система всех разделов - ext3.

Установка системы

Установка ArchLinux разделяется на несколько этапов. Первый - это выбор и настройка пакетов. Если вы не имеете понятия, какие из них нужно отметить именно для вашего компьютера, то просто оставьте все значения по умолчанию. Проведя анализ «железа», программа сама решит, что нужно, а что нет. В процессе инсталляции пакетов также будет установлен загрузчик. В ArchLinux таковым по умолчанию является GRUB.

Следующим этапом является установка ядра системы. Здесь тоже лучше положиться на автоматический выбор и настройку. Единственное, что надо будет отметить самостоятельно, это тип ядра под ваше «железо». Если у вас ПК с поддержкой технологии SCSI, то нужно выбрать именно такой тип.

После успешной инсталляции ядра придет время конфигурирования ОС. Здесь вам предлагается настроить систему, используя правку текстовых файлов конфигурации. Этого лучше не делать, поскольку можно запросто «повесить» систему еще во время инсталляции. Настройка ArchLinux после установки является наиболее приемлемым вариантом, так как гораздо проще все сделать с использованием графического окружения.

Настройка ArchLinux

После перезагрузки системы требуется определить ее основные параметры. Предпочтительным рабочим окружением для ArchLinux является KDE. Именно его мы и поставим. Для этого в командной строке нужно набрать pacman -S kde. После загрузки графической оболочки настройка системы пойдет шустрее. Теперь нам нужно установить хотя бы браузер Mozilla Firefox для получения знаний о тонкой заточке ArchLinux после установки. Для этого выполняем следующую команду: pacman -S firefox. Теперь запросто можно узнать о секретах параметров ОС у «великого и могучего» Google.

Установка программ

Здесь не все так просто. Поскольку ArchLinux не поддерживает графический установщик пакетов программ, инсталлировать их придется вручную через командную строку с помощью инструмента pacman. Благодаря некоторым командам можно будет получить весь необходимый софт. Итак, основная команда для установки программ - pacman -S имя_пакета. Для обновления уже установленных нужно ввести команду pacman -Syi. Именно так происходит установка программ. ArchLinux в этом плане намного сложнее «убунтоподобных» систем.

ArchLinux и Steam

Steam - это рабочее окружение для покупок и установки игр под Linux. Он доступен и для ОС Windows. В программе Steam можно покупать и устанавливать различные игры. Причем имеются и «нативные» версии для Linux. Установка Steam на ArchLinux требует некоторых дополнительных манипуляций, которые мы с вами сейчас и разберем.

Проблема состоит в том, что в Steam нет официальной поддержки ArchLinux. Поэтому перед выполнением команды установки нужно сначала добавить некоторые репозитории и шрифты. Если у вас система на 64 бита, то нужно загрузить репозиторий multilib, а после него - шрифт Arial, так как Steam использует именно его. Получить его можно с помощью команды pacman -S ttf-liberation. После этого можно начинать установку самого "Стима" с помощью команды pacman -S steam.

Заключение

Теперь мы с вами знаем, как правильно устанавливать и настраивать ArchLinux. Конечно, процесс довольно сложный, он требует большого количества свободного времени. Только вам решать, действительно ли нужна подобная операционная система. Более того, мы рассмотрели даже такую «страшную» штуку, как установка Steam на ArchLinux. Конечно, она будет полезна не многим. Но если вы геймер, то эта информация точно пригодится. Вообще ArchLinux - хорошая ОС для пополнения своей базы знаний.

Если вас не пугают трудности в процессе освоения нового, то ArchLinux придется вам по вкусу. И пусть на рынке по-прежнему лидирует детище корпорации Microsoft, ПО с открытым исходным кодом с каждым годом набирает все большую популярность.

Сначала мы установим Archlinux и превратим его в загрузочный сервер. Прямо оттуда подготовим новую компактную систему, в которую добавим минимальное графическое окружение и самый необходимый функционал (на примере Firefox). Научим нашу систему загружаться по сети даже на компьютерах с UEFI. Затем полностью переведём её в режим «только для чтения» (сделаем «живой»), что позволит нам использовать систему одновременно хоть на пол сотне разномастных компьютеров с одним единственным загрузочным сервером. Это всё будет работать даже внутри дешёвой 100-Мб сети, которую мы дополнительно «разгоним» в пару раз.

Никакие закладки в жестких дисках будут вам не страшны, потому что дисков у нас не будет. Никакие очумелые ручки пользователей ничего не сломают, т. к. после перезагрузки система вернется в первозданное лично вами состояние. Конечно же, вы научитесь и сможете самостоятельно изменять загружаемую систему таким образом, чтобы в ней содержался только нужный вам функционал и ничего лишнего. Между делом мы выясним, как и в каком порядке загружается Linux, а также из чего он состоит. Знания, как известно, - бесценны, поэтому я делюсь ими даром.

Постараюсь без долгих рассуждений пояснять происходящее, иногда забегая немного вперёд, но впоследствии обязательно раскладывая всё по полочкам. Чтобы у вас вообще не возникало проблем с пониманием, предполагаю, что вы уже работали с каким-нибудь готовым дистрибутивом Linux, пробовали писать простые скрипты с помощью nano или другого текстового редактора. Если вы новичок в ArchLinux, то узнаете много нового, а если «старичок», то узнаете поменьше, но, надеюсь, что в любом случае вы ещё сильнее полюбите Linux.

Информации оказалось очень много. И по устоявшейся голливудской традиции впереди вас ждёт сериал в нескольких частях:
продолжение ;
окончание .

Сейчас мы установим Archlinux в VirtualBox, который можно будет клонировать и запускать практически на любом компьютере с legacy BIOS без каких-либо дополнительных настроек. Между делом мы познакомимся с основными приёмами работы с systemd, а также узнаем как его использовать для запуска произвольных служб и программ во время загрузки. Ещё мы увидим, какие этапы проходит Linux при загрузке, и напишем собственный обработчик (hook), который поместим в initramfs. Не знаете что такое initramfs? Тогда заходите под кат.

Есть много причин, по которым выбор пал именно на Archlinux. Первая причина: он мой давний изворотливый приятель и верный помощник. Gentoo, как пишут на просторах Интернета, ещё более изворотлив, но собирать систему из исходников не хочется. Вторая причина: в готовых сборках всегда содержится много лишнего, а перекачивание больших объемов данных может критично сказаться на производительности сети, да и ничего не видно за широкой спиной «автоматического инсталлятора» - это третья причина. Четвертая: systemd постепенно проникает во все дистрибутивы и даже в Debian , так что мы сможем хорошенько покопаться в грядущем готовых дистрибутивов на примере Archlinux. При всём при этом, систему, которую мы позднее подготовим, можно будет загружать по сети не только сервера, работающего в виртуальной машине, но и с обычного компьютера, например, с Raspberry Pi, и даже с Western Digital My Cloud (проверено), который работает под Debian.

Подготовительные работы

Скачиваем свежий образ по ссылке с официального сайта . В Москве с серверов Яндекса, например, загрузка происходит очень быстро, и если у вас процесс затянулся - просто попробуйте качать в другом месте. Рекомендую запомнить в каком, т. к. эта информация нам ещё пригодится.

В VirtualBox создаем новую виртуальную машину (например, с 1 Гб оперативной памяти и 8 Гб накопителем). В настройках сети необходимо выбрать тип подключения «сетевой мост» и подходящий сетевой адаптер с доступом к сети Интернет. Подключаем скаченный образ к CD-ROM"у. Если не терпится начать работать с железом, то берите флешку и записывайте образ с помощью (если работаете под Windows), а потом загружайте будущий сервер прямо с неё.

Включаем машину, дожидаемся появления командной строки и устанавливаем пароль, без которого SSH работать не будет:

Passwd
Запускаем сервер SSH командой:

Systemctl start sshd
Остается узнать IP адрес машины, изучив вывод команды:

Ip addr | grep "scope global"
Адрес будет указан сразу после «inet».

Теперь пользователи Windows смогут подключиться к машине с помощью putty , а потом будут копировать отсюда команды и вставлять их и нажатием правой кнопки мыши.

Базовая установка

Дальше максимально коротко опишу стандартную установку Archlinux. Если появятся вопросы, то ответы на них вы, вероятно, найдете в . Wiki просто замечательная, а англоязычная wiki даже актуальная, так что старайтесь пользоваться именно ей.

Подготавливаем носитель с помощью cfdisk (это консольная утилита с простым и понятным интерфейсом). Нам достаточно одного раздела, только не забудьте пометить его как загрузочный:

Cfdisk /dev/sda
Форматируем в ext4 и устанавливаем метку, например HABR:

Mkfs.ext4 /dev/sda1 -L "HABR"
Будущий корневой раздел монтируем в /mnt:

Export root=/mnt mount /dev/sda1 $root
Archlinux обычно устанавливается через интернет, поэтому сразу после установки у вас будет самая новая и актуальная версия. Список репозиториев находится в файле /etc/pacman.d/mirrorlist. Постарайтесь вспомнить, откуда скачивали дистрибутив и перенесите эти серверы в самое начало списка - так вы серьезно сэкономите время на следующем шаге. Обычно это серверы, географически расположенные там же, где вы сейчас находитесь.

Nano /etc/pacman.d/mirrorlist
Устанавливаем базовый набор пакетов и набор для разработчиков:

Pacstrap -i $root base base-devel
Теперь воспользуемся командой arch-chroot, которая позволяет временно подменить корневой каталог на любой другой, в котором есть структура корневой файловой системы Linux. При этом программы, которые мы оттуда запустим, не будут знать о том, что снаружи ещё что-то существует. Мы практически окажемся в нашей новой системе с правами администратора:

Arch-chroot $root
Обратите внимание, как поменялось приглашение командной строки.

Выбираем языки, которые планируем использовать. Предлагаю оставить en_US.UTF-8 UTF-8 и ru_RU.UTF-8 UTF-8. В текстовом редакторе нужно просто снять комментарии напротив них:

Nano /etc/locale.gen
Теперь генерируем выбранные локализации:

Если всё прошло хорошо, то вы увидите примерно такой текст:

Generating locales... en_US.UTF-8... done ru_RU.UTF-8... done Generation complete.
Устанавливаем язык, который будет использоваться по-умолчанию:

Echo LANG=ru_RU.UTF-8 > /etc/locale.conf
А также раскладку и шрифт в консоли:

Echo -e "KEYMAP=ru\nFONT=cyr-sun16\nFONT_MAP=" > /etc/vconsole.conf

Указываем часовой пояс (я использую московское время):

Ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Придумываем название для нашего будущего сервера:

Echo "HabraBoot" > /etc/hostname
Теперь установим пароль администратора. Делаем мы это в первую очередь из-за того, что SSH не позволит нам подключиться к системе без пароля. Тему неразумности использования системы, незащищенной паролем, здесь мы развивать не будем.

Passwd
Дважды вводим пароль и убеждаемся, что password updated successfully .

Добавим нового пользователя с именем username (можете выбрать любое), наделим его правами администратора и зададим ему пароль из тех же соображений, а ещё и из-за того, что под root в текущей версии Arch мы не сможем собирать пакеты из AUR (Arch User Repository - это репозиторий от сообщества пользователей Arch Linux с программами, которые не вошли в основной репозиторий):

Useradd -m username
Редактируем файл настроек /etc/sudoers с помощью nano:

EDITOR=nano visudo
Добавив в него сразу после строки «root ALL=(ALL) ALL» ещё одну строчку:

Username ALL=(ALL) ALL
И задаём пароль для пользователя username:

Passwd username
Теперь нужно установить загрузчик на внутренний накопитель, чтобы система смогла самостоятельно с него загрузиться. В качестве загрузчика предлагаю использовать GRUB, потому что позже он нам снова пригодится. Устанавливаем пакеты с помощью стандартного для Archlinux менеджера пакетов pacman:

Pacman -S grub
Записываем загрузчик в MBR (Master Boot Record) нашего внутреннего накопителя.

Grub-install --target=i386-pc --force --recheck /dev/sda
Если всё прошло нормально, то вы увидите Installation finished. No error reported .

Выходим из chroot:

Exit
И замечаем, как поменялось приглашение командной строки.

Мы будем использовать метки дисков, подробное объяснение этого утверждения последует позже.

Снимите комментарий со строки GRUB_DISABLE_LINUX_UUID=true , чтобы не использовались UUID накопителей:

Nano $root/etc/default/grub
Генерируем файл конфигурации загрузчика, снова используя arch-chroot. Будет произведён вход, выполнение одной единственной команды, и последует автоматический выход:

Arch-chroot $root grub-mkconfig --output=/boot/grub/grub.cfg
Нам нужно заменить все упоминания /dev/sda1 на LABEL=HABR в файле конфигурации:

Mv $root/boot/grub/grub.cfg $root/boot/grub/grub.cfg.autoconf && cat $root/boot/grub/grub.cfg.autoconf | sed "s/\(root=\)\/dev\/sda1/\1LABEL=HABR/g" > $root/boot/grub/grub.cfg
Если поменять в этом же файле строку set lang=en_US на set lang=ru_RU , то загрузчик будет общаться с нами на великом и могучем.

Генерируем файл fstab с ключом -L, который заставит генератор использовать метки дисков:

Genfstab -p -L $root > $root/etc/fstab
На этом базовая установка ArchLinux закончена. Система будет загружаться самостоятельно и встретит вас приветливым русскоязычным интерфейсом командной строки. Если после этого мы введем команду dhcpcd, то скорее всего даже Интернет заработает. Но мы пока не будем торопиться с перезагрузкой.

Запуск при загрузке с помощью systemd на примере NTP и SSH

Поскольку наша система будет общаться с другими компьютерами, нам потребуется синхронизировать время. Если время на сервере и клиенте будет отличаться, то существует большая вероятность того, что они вообще не смогут соединиться друг с другом. В свою очередь sudo может начать просить пароль после каждого действия, думая, что таймаут авторизации давно истёк. И кто знает, с чем нам ещё предстоит столкнуться? Перестрахуемся.

Чтобы синхронизировать время с серверами через Интернет по протоколу NTP, нам нужно установить недостающие пакеты. Можно воспользоваться arch-root, но но мы обойдёмся ключами, которые сообщат новое место для установки менеджеру пакетов:

Pacman --root $root --dbpath $root/var/lib/pacman -S ntp
Настроим получение точного времени с российских серверов:

Mv $root/etc/ntp.conf $root/etc/ntp.conf.old && cat $root/etc/ntp.conf.old | sed "s/\(\).*\(.pool.ntp.org\)/\1.ru\2/g" | tee $root/etc/ntp.conf

Нам достаточно синхронизировать время один раз при загрузке. Раньше мы бы записали запуск службы точного времени в файл rc.local, но сейчас появился менеджер системы и служб systemd, который старается запускать службы (в оригинале они называются unit) параллельно для уменьшения времени загрузки системы. Естественно, что работоспособность одной службы может зависеть от функционирования другой. Например, нам бесполезно пытаться синхронизировать время через Интернет до того, как у нас на компьютере заработает сеть. Чтобы описать все эти взаимосвязи, уже недостаточно простого указания имени исполняемого файла, поэтому запуск посредством systemd стал весьма нетривиальным занятием. Для этой цели были созданы специальные файлы с расширением ".service". В них указаны зависимости, имена исполняемых файлов и другие параметры, которые нужно учитывать для успешного запуска. В частности, для управления этапами загрузки в systemd используются цели (target), которые по возлагаемым на них задачам схожи с уровнями запуска (runlevel). Подробности читайте в вики .

К радости новичков, вместе с пакетом ntp поставляется уже готовый ntpdate.service. Все файлы, описывающие запуск служб, находятся в папке $root/usr/lib/systemd/system/, и их можно открыть в любом текстовом редакторе или посмотреть обычным образом. Вот, например, $root/usr/lib/systemd/system/ntpdate.service:

Description=One-Shot Network Time Service After=network.target nss-lookup.target Before=ntpd.service Type=oneshot PrivateTmp=true ExecStart=/usr/bin/ntpd -q -n -g -u ntp:ntp WantedBy=multi-user.target
В блоке в строке Description указывается краткое описание службы, и при каких условиях она должна быть запущена (в данном случае, после запуска сети, но до перед запуском сервера NTP, который мы вообще не планируем запускать). Запрос точного времени происходит единственный раз во время загрузки, и за это отвечает строка Type=oneshot из блока . В этом же блоке в строке ExecStart указаны действия, которые необходимо выполнить для запуска сервиса. В блоке в нашем случае указано, что запуск нашей службы необходим для достижения цели multi-user.target. Рекомендуется использовать такое же содержание блока для запуска самодельных служб.

В качестве первого практического примера мы немного расширим функциональность ntpdate.service, попросив его дополнительно исправлять время на аппаратных часах. Если после этого, на этом же самом компьютере вы загрузите Windows, то увидите время по Гринвичу, так что не пугайтесь.

Изменение стандартного поведения любой службы systemd производится следующим образом: сначала в папке /etc/systemd/system/ создается новый каталог с полным именем службы и расширением ".d", куда добавляется файл с произвольным именем и расширением ".conf", и уже там производятся нужные модификации. Приступим:

Mkdir -p $root/etc/systemd/system/ntpdate.service.d && echo -e "\nExecStart=/usr/bin/hwclock -w" > $root/etc/systemd/system/ntpdate.service.d/hwclock.conf
Здесь просто говорится о том, что во сразу после запуска службы выполнить команду "/usr/bin/hwclock -w", которая переведёт аппаратные часы.

Добавляем службу ntpdate в автозагрузку (синтаксис стандартен для всех служб):

Arch-chroot $root systemctl enable ntpdate Created symlink from /etc/systemd/system/multi-user.target.wants/ntpdate.service to /usr/lib/systemd/system/ntpdate.service.
Как видите, в каталоге multi-user.target.wants создалась обыкновенная символическая ссылка на файл ntpdate.service, а упоминание о цели multi-user.target мы видели в блоке этого самого файла. Получается для того, чтобы система достигла цели multi-user.target, должны быть запущены все службы из каталога multi-user.target.wants.

Теперь устанавливаем пакет SSH аналогичным способом (в ArchLinux он называется openssh):

Pacman --root $root --dbpath $root/var/lib/pacman -S openssh
Но на этот раз для автозапуска мы будем использовать сокет, чтобы сервер SSH стартовал только после поступления запроса на подключение, а не висел мёртвым грузом в оперативной памяти:

Arch-chroot $root systemctl enable sshd.socket
Мы не поменяли стандартный 22-й порт и не включили принудительное использование Protocol 2 - пусть это останется на моей совести.

Забегая вперед или знакомимся с обработчиками (hooks)

Чтобы мы могли не глядя подключиться к нашему будущему серверу, нам нужно знать его IP адрес. Будет намного проще, если этот адрес - статический. Обычные способы, о которых говорится в вики, нам не подходят. Проблема в том, что сетевые адаптеры в современном мире именуются согласно своему физическому расположению на материнской плате. Например, имя устройства enp0s3 означает, что это сетевой адаптер ethernet, который расположен на нулевой шине PCI в третьем слоте (подробности ). Сделано так для того, чтобы при замене одного адаптера другим, имя устройства в системе не поменялось. Такое поведение нам не желательно, т. к. на разных моделях материнских плат положение сетевой карты может быть разным, и когда мы попытаемся перенести наш загрузочный сервер из VirtualBox на реальное железо, нам скорее всего придётся загружаться с клавиатурой и монитором, чтобы правильно настроить сеть. Нам нужно, чтобы имя сетевого адаптера стало более предсказуемым, например, eth0 (это место зарезервировано смайликом).

Почему будем делать так?

Не сомневаюсь, что существуют более изящные решения проблемы имён устройств, но приведённый далее вариант оказался весьма подходящим для демонстрации общего принципа загрузки Linux. Пожалуйста, не забывайте в комментариях знакомить сообщество с проверенными вами способами.


Устанавливаем пакет mkinitcpio-nfs-utils, и у нас появится обработчик (hook) под названием «net»:

Pacman --root $root --dbpath $root/var/lib/pacman -S mkinitcpio-nfs-utils

По-умолчанию, все файлы обработчика попадают в /usr/lib/initcpio/. Обычно это парные файлы с одинаковым названием, один из которых окажется в подкаталоге install, а другой - в hooks. Сами файлы являются обычными скриптами. Файл из папки hooks обычно попадает внутрь файла initramfs (позже мы о нём всё узнаем) и выполняется при загрузке системы. Второй файл из пары попадает в папку install. Внутри него есть функция build(), в которой находятся сведения о том, какие действия нужно выполнить во время генерации файла initramfs, а также функция help() с описанием того, для чего предназначен данный обработчик. Если запутались, то просто читайте дальше, и всё сказанное в этом абзаце встанет на свои места.

Папка initcpio также присутствует в каталоге /etc, и в ней тоже есть подкаталоги install и hooks. При этом она имеет безусловный приоритет над /usr/lib/initcpio, т. е. если в обеих папках окажутся файлы с одинаковыми названиями, то при генерации initcpio будут использоваться файлы из /etc/initcpio, а не из /usr/lib/initcpio.

Нам нужно немного поменять функциональность обработчика net, поэтому просто скопируем файлы из /usr/lib/initcpio в /etc/initcpio:

Cp $root/usr/lib/initcpio/hooks/net $root/etc/initcpio/hooks/ && cp $root/usr/lib/initcpio/install/net $root/etc/initcpio/install/
Приводим файл hooks/net к следующему виду:

Cat $root/etc/initcpio/hooks/net # vim: set ft=sh: run_hook() { if [ -n "$ip" ] then ipconfig "ip=${ip}" fi } # vim: set ft=sh ts=4 sw=4 et:

Теперь откроем файл $root/etc/initcpio/install/net и увидим, что в функции help() отлично написано, что из себя должна представлять переменная «ip»:
ip=::::::
Останется просто установить значение переменной, чтобы задать статический IP адрес и название сетевого устройства, например так «192.168.1.100::192.168.1.1:255.255.255.0::eth0:none» (здесь и далее используйте подходящие для себя настройки сети). В следующем разделе вы узнаете, где именно задаётся значение.

А пока уберём всё лишнее из файла $root/etc/initcpio/install/net. Оставляем загрузку модулей сетевых устройств, программу ipconfig, которую использовали выше, и, естественно, сам скрипт из папки hooks, выполняющий всю основную работу. Получится примерно следующее:

Cat $root/etc/initcpio/install/net #!/bin/bash build() { add_checked_modules "/drivers/net/" add_binary "/usr/lib/initcpio/ipconfig" "/bin/ipconfig" add_runscript } help() { cat < Когда во время загрузки менеджер устройств systemd-udevd попробует переименовать наше сетевое устройство в привычное ему predictable network interface name, например, в enp0s3, то у него ничего не получится. Почему - читайте дальше.

Как происходит загрузка системы

Для простоты рассмотрим обычные BIOS. После включения и инициализации, BIOS начинает по порядку идти по списку загрузочных устройств, пока не найдет загрузчик, которому передаст дальнейшее управление загрузкой.

Как раз такой загрузчик мы записали в MBR нашего накопителя. Мы использовали GRUB, в настройках которого (файл grub.cfg) указали, что корневой раздел находится на диске с меткой HABR. Вот эта строка целиком:

Linux /boot/vmlinuz-linux root=LABEL=HABR rw quiet
Здесь упомянут файл vmlinuz-linux, который является ядром системы, а указатель на корневую систему является его параметром. Мы просим искать корневую систему на устройстве с меткой HABR. Здесь также мог бы быть уникальный для каждого накопителя UUID, но в этом случае при переносе системы на другой диск нам несомненно пришлось бы его изменить. Если бы мы указали положение корневой системы привычным для линуксоидов образом: /dev/sda1, то не смогли бы загрузиться с USB накопителя, т. к. это имя USB накопитель бы получил только будучи единственным накопителем в компьютере. Маловероятно, что в компьютере окажется ещё один накопитель с меткой HABR, но не стоит об этом забывать.

Здесь же устанавливается значение глобальной переменной «ip» для нашего обработчика «net» (не забудьте поменять адреса на используемые в вашей сети):

Linux /boot/vmlinuz-linux root=LABEL=HABR rw quiet ip=192.168.1.100::192.168.1.1:255.255.255.0::eth0:none

В соседней строке есть упоминание файла initramfs, с которым я обещал разобраться:

Название initramfs образовано от initial ram file system. Это на самом деле обычная корневая файловая система Linux, упакованная в архив. Она разворачивается в оперативной памяти во время загрузки и предназначена для того, чтобы найти и подготовить корневую файловую систему нашего linux, который мы пытаемся загрузить в итоге. В initramfs есть всё необходимое для этих целей, ведь это настоящий «маленький линукс», который может выполнять многие обычные команды. Его возможности расширяются с помощью обработчиков (hooks), которые помогают сформировать новую корневую файловую систему нашего linux.

После того, как программы из initramfs выполнят свою работу, управление дальнейшей загрузкой передается процессу init подготовленной корневой файловой системы. В качестве процесса init Archlinux использует systemd.

Менеджер устройств systemd-udevd является частью systemd. Он, как и его старший брат, старается обнаруживать и настраивать все устройства в системе параллельно. Он начинает свою работу одним из первых, но уже после того, как наш обработчик net инициализирует сетевую карту ещё на на этапе работы initramfs. Таким образом, systemd-udevd не может переименовать используемое устройство, и имя eth0 сохраняется за сетевой картой в течение всего времени работы.

Обязательно убираем обработчик autodetect. Он проверяет устройства установленные в данном конкретном компьютере, и оставляет только необходимые для них модули в initramfs. Нам этого не нужно, поскольку мы изначально рассматриваем возможность дальнейшего переноса системы на другой компьютер, который аппаратно скорее всего будет отличаться от используемой виртуальной машины.

Достаточный для наших целей список обработчиков включая созданный нами net выглядит следующим образом:
HOOKS="base udev net block filesystems"
вставляем эту строку в файл mkinitcpio.conf, а старую комментируем:
nano $root/etc/mkinitcpio.conf

На базе стандартного пресета linux создаем свой пресет habr:

Cp $root/etc/mkinitcpio.d/linux.preset $root/etc/mkinitcpio.d/habr.preset

И приводим его к такому виду:
cat $root/etc/mkinitcpio.d/habr.preset ALL_config="/etc/mkinitcpio.conf" ALL_kver="/boot/vmlinuz-linux" PRESETS=("default") default_image="/boot/initramfs-linux.img"

Нам не нужна ветка "fallback", которая удаляет из обработчиков autodetect, ведь мы его уже сами убрали, и нам не нужно дважды генерировать одинаковый файл initramfs с разными названиями.

Генерируем новый initramfs с помощью пресета habr:

Arch-chroot $root mkinitcpio -p habr

Пишем службу обновления DNS для использования с systemd

Наша сетевая карта получает все настройки для того, чтобы работала сеть и Интернет. Но названия сайтов переводиться в IP адреса не будут, т. к. наша система не знает, какие серверы DNS следует для этого использовать. Напишем собственную службу для этих целей, которую при загрузке будет запускать systemd. А чтобы узнать что-то новое и не заскучать от однообразия, передадим информацию о названии сетевого устройства в качестве параметра, а список DNS серверов сохраним во внешнем файле.

Обновлением информации о DNS серверах занимается resolvconf. Нам идеально подходит синтакскис:

Resolvconf [-m metric] [-p] -a interface В импортируемом здесь файле IP адрес каждого сервера указывается в новой строке после ключевого слова nameserver. Можно указать сколько угодно серверов, но использоваться будут только первые 3 из них. В качестве примера воспользуемся серверами Яндекс. В этом случае файл, передаваемый в resolvconf, должен выглядеть вот так:

Nameserver 77.88.8.8 nameserver 77.88.8.1
Нам нужно получать информацию о DNS серверах до того, как система будет уверена, что сеть полностью работает, т. е. до достижения цели network.target. Будем считать, что информацию о серверах нам достаточно обновлять один раз во время загрузки. И стандартно скажем, что нашу службу требует цель multi-user.target. Создаём файл запуска службы в каталоге со следующим содержанием:

Cat $root/etc/systemd/system/[email protected] Description=Manual resolvconf update (%i) Before=network.target Type=oneshot EnvironmentFile=/etc/default/dns@%i ExecStart=/usr/bin/sh -c "echo -e "nameserver ${DNS0}\nnameserver ${DNS1}" | resolvconf -a %i" WantedBy=multi-user.target
В строке ExecStart мы выполняем команду echo, на лету генерирующую файл со списком серверов, который через конвейер передаем resolvconf. Вообще, в строке ExecStart нельзя использовать несколько команд и тем более нельзя использовать конвейеры, но мы снова всех обманули, передав эти команды в качестве параметра -c для /usr/bin/sh.

Обратите внимание, что в названии файла [email protected] используется символ @, после которого можно указать переменную, и она попадёт внутрь файла, заменив собой "%i". Таким образом строка EnvironmentFile=/etc/default/dns@%i превратится в EnvironmentFile=/etc/default/dns@eth0 - именно это название внешнего файла, мы будем использовать для хранения значения переменных DNS0 и DNS1. Синтаксис как в обычных скриптах: «название переменной=значение переменной». Создадим файл:

Nano $root/etc/default/dns@eth0
И добавим следующие строки:

DNS0=77.88.8.8 DNS1=77.88.8.1

Теперь добавляем службу в автозагрузку не забывая указать имя сетевой карты после @:

Arch-chroot $root systemctl enable [email protected]
Только что мы написали универсальный файл, обеспечивающий запуск службы. Универсальность заключается в том что, если в нашей системе окажется несколько сетевых адаптеров, то для каждого из них мы сможем указать свои собственные DNS серверы. Нужно будет просто подготовить набор файлов со списком серверов для каждого из устройств и запускать службу для каждого адаптера в отдельности указывая его имя после @.

Перед первым запуском

На этом первоначальная настройка закончена. Нам нужно загрузить установленный ArchLinux с внутреннего накопителя, чтобы произведённые нами изменения вступили в силу.

Отключаем готовую корневую систему:

Umount $root
И выключаем виртуальную машину:
initramfs Добавить метки

Arch — Linux дистрибутив, который очен простой и гибкий в обслуживании с поддерживающей архитектурой i686 и x86-64 созданный Джаддом Винетом. Данный дистрибутив включает в себе, все последние стабильные версии ПО. Арчи не подойдет для новичка и рассчитан на опытного юзверя. Процесс установки arch linux выполняется по сети, по этому, он имеет самое актуальное ПО которое выгрузили разработчики в интернет. Все действия по установки вы выполняете сами в консоле (нет графического интерфейса с установкой, и вместо его, используется набор сприптов -Arch Install Scripts). По этому, данный дистрибутив, немного похож на Slackware, но в последней версии — имеется контроль зависимостей для пакетов и которой облегчает жизнь. Все бинарники для арчи, собираются для i686 и x86-64 архитектур и обеспечивают большую производительность (но существуют бинарники и для других архитектур, для примера — PowerPC).

Документация имеется в большом виде, которая поддерживается розрабами дистра и сообществом. Графический интерфейс отсутствует, но вы можете использовать (установить сами) — GNOME, KDE, XFCE и может другие.

Arch линукс — это «from scratch» дистрибутив — который не основан на другом дистрибутиве. На его вдохновение, сподвиг CRUX и что он основан на нем — ОШИБОЧНО! На арче основаны — ArchBang, Arch Hurd, Chakra, ConnochaetOS, linuX-gamers, Manjaro и другие.

Установка Arch Linux

Первое что нужно сделать, — это пойти на официальный сайт и выкачать дистрибутив. Я уже скачал его, по этому, идем далее. Я буду использовать виртуальную машину (VMware) для своей установки. Это не столь важно, можете использовать ваш ноутбук или ПК, но для этого прийдется записать загрузочный диск или флешку.

Для моих тестов, я выделил Arch Linux следующие параметры:

  • 2 — Процессора
  • 2048 — RAM
  • 15 Гб — диск

Думаю таких параметров хватит. И так, запускаю свою машину:

Выбираем 1-ю строку — «Boot Arch Linux (x86_64)» и нажимаем «enter». Это позволит загрузить командную строку и выполнить дальнейшие шаги по установки данного дистрибутива. Это моя первая установка и по этому, я постараюсь расписать как можно больше.

В корне директории, лежит install.txt файл, можно прочитать установку:

# cat install.txt| less

Перед тем как начать установку, проверяем, есть ли подключение к интернету:

# ping ya.ru

Если все хорошо, вы получите пинг.

Обновим системные часы:

# timedatectl set-ntp true

Чтобы проверить статус, выполните:

# timedatectl status

Разбиение диска для установки arch linux

Чтобы идентифицировать блочные устройства (таким как /dev/sda), используйте lsblk или fdisk — результаты, заканчивающиеся на rom, loop или airoot, могут игнорироваться:

# fdisk -l

У меня имеется такой вывод:

Как и ожидалось, у меня имеется 15 Гб. И сейчас нужно его разбить на разделы.

PS: Вот полезное чтиво по данной теме:

Если хотите использовать LVM или RAID, то можно сделать и это — все в ваших руках. В арче, используется parted, я создам разделы именно с помощью его.

Запускаем parted:

# parted /dev/sda

Я приведу разметку для нескольких типов:

  1. BIOS/MBR
  2. UEFI/GPT

Чтобы создать раздел, используйте команду вида:

(parted) mkpart part-type fs-type start end

  • part-type — Данный аргумент принимает значение: primary (первичный), extended (расширенный) или logical (логический).
  • fs-type — Данный аргумент принимает значение: ext2, ext3, ext4 и другие чтобы задать тип ОС.
  • start- Данный аргумент принимает значение которое задает начало позиции (создаваемого раздела) относительно 0-го байта. Можно задавать в байтах, но лучше всего (так проще) указывать — 100M/1G.
  • end -Данный аргумент принимает значение которое задает конец позиции (создаваемого раздела) относительно 0-го байта. Можно задавать в байтах, но лучше всего (так проще) указывать — 100M/1G, 100%.

Примеры для BIOS/MBR

Если вы хотите использовать MBR разметку для систем с BIOS, то выполните команду:

(parted) mklabel msdos

И так, для того чтобы создать 1 раздел и который будет занимать все пространство (и так же, будет использоваться для загрузки ОС), выполните:

(parted) mkpart primary ext4 2M 100% (parted) set 1 boot on

Можно создать корневой раздел, предположим на 15Gb но вынести домашнюю директорию (/home) на отдельный раздел, используйте:

(parted) mkpart primary ext4 1M 15G (parted) set 1 boot on (parted) mkpart primary ext4 15G 100%

Можно создать /boot раздел, которому выделить 100Mb для загрузки загрузчика, так же — создать swap, который будет 2 Гб. Так же, под /root раздел, я выделил 8Гб а все остальное — будет для /home раздела:

(parted) mkpart primary ext4 1M 100M (parted) set 1 boot on (parted) mkpart primary linux-swap 100M 2.1G (parted) mkpart primary ext4 2.1G 8.1G (parted) mkpart primary ext4 8.1G 100%

Я выбрал последний вариант:

Не очень сложные операции.

Примеры для UEFI/GPT

Если вы хотите использовать GPT разметку для систем с UEFI, то выполните команду:

(parted) mklabel gpt

PS: Если вы используете UEFI/GPT для 2-й (допустим, уже установлена Windows ОС), то запомните — ЧТО НЕЛЬЗЯ УДАЛЯТЬ УЖЕ ИМЕЮЩИЙСЯ UEFI РАЗДЕЛ!. Иначе, больше не запустите Windows.

И так, для того чтобы создать 1 раздел и который будет занимать 100Мб, выполните:

(parted) mkpart ESP fat32 1M 100M (parted) set 1 boot on

А для остального, я выделю еще 1 раздел который заполню всем оставшимся местом:

(parted) mkpart primary ext4 100M 100%

Допустим, нужно создать было не все место, а только его часть. Например, под сам корень, я выделю 50.5Гб, а для домашней папки — остальное имеющееся:

(parted) mkpart primary ext4 100M 50.5G (parted) mkpart primary ext4 50.5G 100%

Иногда, нужно создать swap, а выполнить это можно:

(parted) mkpart primary ext4 100M 50.5G (parted) mkpart primary linux-swap 50.5G 8.5G (parted) mkpart primary ext4 58.5G 100%

В последнем примере, я создал 3 раздела (не включая раздела с загрузкой).

Установка АРЧА

Смотрим какие разделы имеются:

# fdisk -l

У меня это выглядит следующим образом:

Отформатируем созданные разделы:

# mkfs.ext4 /dev/sda1 -L boot # mkfs.ext4 /dev/sda3 -L root # mkfs.ext4 /dev/sda4 -L home # mkswap /dev/sda2 -L swap

Ну а сейчас, монтируем файловую систему (ФС):

# mount /dev/sda3 /mnt

Создаем точки монтирования для любых оставшихся разделов:

# mkdir /mnt/{home,boot}

Монтируем их:

# mount /dev/sda1 /mnt/boot # mount /dev/sda4 /mnt/home

Т.к у меня имеется свап, то его нужно подключить:

# swapon /dev/sda2

Позже genfstab обнаружит смонтированные файловые системы и swap.

Уже почти готово и можно выполнять установку пакетов и чтобы они устанавливались быстрей, необходимо прописать (выбрать) ближайшее зеркало и прописать его:

# vi /etc/pacman.d/mirrorlist

PS: Я ничего не менял и не добавлял, буду использовать все стандартное.

Установим пакеты:

# pacstrap -i /mnt base base-devel

Установка займет некоторое время. Данное действие, загрузит около 250 мб пакетов и установит их.

Создайте файл fstab (используйте -U или -L, чтобы определить UUID или lables, соответственно):

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

Чтобы проверить, используем следующую команду:

# cat /mnt/etc/fstab

Если имеются какие-либо ошибки, отредактируйте его.

Перейдем в установленную ОС:

# arch-chroot /mnt

# arch-chroot /mnt /bin/bash

Установка часового пояса:

# ln -sf /usr/share/zoneinfo/Region/City /etc/localtime

  • Region — ваш регион.
  • City — ваш город.

У меня данная команда, выглядела:

# ln -sf /usr/share/zoneinfo/Europe/Zaporozhue /etc/localtime

Запустите hwclock для генерации /etc/adjtime:

# vi /etc/locale.gen

И добавляем:

En_US.UTF-8 UTF-8 ru_RU.UTF-8 UTF-8

Установите переменную LANG:

# vi /etc/locale.conf

И вставляем:

#LANG=en_US.UTF-8 LANG=ru_RU.UTF-8 LC_MESSAGES=ru_RU.UTF-8

Если вы установили раскладку клавиатуры, сделайте изменения:

# vi /etc/vconsole.conf

Например:

LOCALE="ru_RU.UTF-8" KEYMAP="ru" HARDWARECLOCK="UTC" TIMEZONE="Europe/Zaporozhue" FONT="cyr-sun16" CONSOLEFONT="cyr-sun16" CONSOLEMAP=""

И, создайте их с помощью:

# locale-gen

Добавим hostname:

Заходим под root и изменяем следующие данные в системе на свои.

Пропишем имя компьютера (для примера возьму — arch-linux):

# hostnamectl set-hostname arch-linux

Так же, можно прописать в хостах:

# vi /etc/hosts

И прописываем:

127.0.0.1 localhost.localdomain localhost::1 localhost.localdomain localhost

PS: я тут ничего не буду менять, оставлю пока что как есть.

Установим пароль для рута:

# passwd

Установка загрузчика Grub

Установим загрузчик для BIOS:

# pacman -S grub-bios

$ grub-install /dev/sda

И создаем конфигурационный файл:

$ grub-mkconfig -o /boot/grub/grub.cfg

Установим загрузчик для EFI:

# grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=grub

Вам понадобиться обычный пользователь для работы в системе. Для его создания выполните:

$ useradd -m -g users -G wheel -s /bin/bash captain

Теперь создадим пароль для этого пользователя:

$ passwd captain

Вводим 2 раза свой пароль.

В некоторых статьях, нужно выполнить демонтирование папок. Я бы не стал этого делать, из-за одной причины — после рестарта ОС, все это и так выполнится.

После чего, выполняем:

# exit && reboot

После перезагрузки, пропала сеть. Сейчас нужно исправить все это дело.

По дефолту, в арче не имеется утилиты ifconfig, но ничего страшного — имеется ip, и сейчас воспользуемся ею. Для начала, просмотрим что имеется в ОС:

# ip addr

Чтобы просмотреть что открыто (я за соединения), можно заюзать:

# ss -tuwpln

и так, когда узнали интерфейс, открываем:

# vim /etc/systemd/network/ethernet.network

Пропишем, использование DHCP:

Name=ens32 DHCP=yes

Включим использование сети:

# systemctl enable systemd-networkd # systemctl start systemd-networkd # systemctl status systemd-networkd

# systemctl enable dhcpcd # systemctl start dhcpcd

Для просмотра логов, используйте:

# journalctl -u systemd-networkd

проверяем пинг, если он пойдет, то все гуд).

Поставим софт:

$ pacman -S dnsutils net-tools vim

В новой установочной среде по умолчанию не активировано сетевое подключение. Для настройки беспроводной сети установите пакеты:

# pacman -S wpa_supplicant dialog

Создание нового initramfs обычно не требуется, поскольку mkinitcpio запускался при установке пакета linux с pacstrap.
Для специальных конфигураций измените:

# vim /etc/mkinitcpio.conf

И заново создайте образ initramfs:

# mkinitcpio -p linux

Устанавливаем sudo:

# pacman -S sudo

Чтобы настроить, выполняем:

# visudo

Находим строку:

# %wheel ALL=(ALL) ALL

Приводим к виду:

%wheel ALL=(ALL) ALL

Как-то так.

Установка графической среды (GUI) для Arch Linux

И так, ОС уже имеется, но без графического режима (GUI) и сейчас я, это исправлю….

Обновим пакеты в ОС:

# pacman -Syy && pacman -Su

Для графического окружения, я установлю KDE 5 plasma. Я описывал установку в теме:

По установке других GUI я расскажу немного позже.

А на этом, у меня все. Статья «Установка Arch Linux» завершена.

На сегодняшний день операционные системы семейства Windows занимают лидирующее положение на рынке. Однако в некоторых случаях возникает необходимость использования стороннего бесплатного программного обеспечения в силу личных предпочтений или невозможности приобрести лицензию для операционной системы Windows. На помощь в данном случае приходят операционные системы Linux. Однако не все данные системы отличаются наличием доступной документации и дружелюбным интерфейсом. Как правило, описание таких систем имеется только на английском языке, а его знанием сегодня могут похвастаться не все. Но зато в отличие от операционных системы с закрытым кодом, Linux системы имеют возможность более широкой настройки под конкретного пользователя. В данной статье будет подробно сказано об особенностях установки системы ArchLinux, а также приведена общая информация о данной системе в целом.

ArchLinux: настройка и установка

В семействе ОС Linux существует одна очень интересная операционная система под названием ArchLinux. Особенность данной операционной системы состоит в том, что в отличие от пакетных «убунтоподобных» операционных систем, пользователь может настроить ArchLinux под себя целиком и полностью. Правда такая настройка требует определенных знаний, что нередко отпугивает новичков от использования данной системы. Вообще, данная система рассчитана на опытных пользователей Linux-систем, которые имеют работать с терминалом и командной строкой. В этом состоит ее отличие от пакетных дистрибутивов. Во многом настройка и установка ArchLinux отличается от процесса установки других операционных систем. В этой статье будут подробно рассмотрены все этапы установки операционной системы ArchLinux.

ArchLinux: общая информация

Операционная система ArchLinux представляет собой своеобразное ответвление от минималистичной системы CRUX. Данная ОС пользовалась популярностью у любителей собирать операционную систему из исходников и максимально «затачивать» ее под свои требования. В отличие от родительской операционной системы ArchLinux не требует от пользователя умений строить зависимости и компилировать ядра. Установить ее можно при помощи обычного графического менеджера. Начинается процесс установки ArchLinux с использования командной строки.

Об этом будет сказано далее. На данный момент существует всего две ветви развития операционной системы ArchLinux. Это Current и Stable. В операционной системе Stable используется стабильная версия операционной системы с проверенным программным обеспечением. Однако обновления для такой системы придется ждать очень долго. Для любителей постоянных обновлений и самого свежего ПО существует ветвь Current. В такой системе обновления происходят регулярно, однако это сказывается на стабильности системы. Также установка программ в таких системах может вызывать ошибки и определенные трудности. Бывалые пользователи ArchLinux советуют использовать версию Stable. Возможно она не совсем актуальна, но стабильность важнее.

Значительным недостатком операционной системы ArchLinux является отсутствие в самом дистрибутиве документации по установке. Там имеются только общие рекомендации, которые предназначены для продвинутых пользователей операционных систем семейства Linux. Но и они все приведены на английском языке. Однако, в интернете можно найти переводы, выполненные энтузиастами. Таким образом, для новичков установка операционной системы ArchLinux может стать очень непростым занятием. Разберемся более подробно с этим сложным процессом.

ArchLinux: подготовка к установке

Прежде всего, необходимо создать загрузочный USB-накопитель с дистрибутивом операционной системы ArchLinux. Для этого необходимо скачать с официального сайта проекта ISO образ операционной системы. Образ операционной системы ArchLinux может быть двух типов: базовый и полный. Отличие заключается только в размере образа и числе доступных программ. Полная версия образа весит примерно 600 Мб. Базовый комплект весит примерно 200 Мб. Лучше отдавать предпочтение полному варианту установочного диска. После скачивания необходимо выбрать программу для записи дистрибутива на носитель USB. Если вы пользуйтесь операционной системой Windows, то лучше будет взять для этой цели программу Rufus. Скачать данную программу можно совершенно бесплатно. Ей не требуется установка. Запустите Rufus и выберите скачанный образ диска с операционной системой. После этого нажмите на кнопку «Начать». USB-накопитель в процессе записи будет отформатирован и переименован в ArchLinux. В принципе, на этом установка на флэшку закончена. Теперь можно выполнить перезагрузку и пытаться выполнить установку операционной системы на компьютер.

Запуск установщика

После выполнения всех манипуляций, связанных с порядком загрузки BIOS, начинаем загрузку операционной системы ArchLinux с флэш-накопителя. Как было сказано выше, во многом пошаговая установка ArchLinux сильно отличается от того же процесса для пакетных операционных систем. Здесь важно учитывать все особенности и детали. Первое, что бросается в глаза, это командная строка. Для того, чтобы запустить графический установщик, необходимо ввести команду $/arch/setup. Затем должно появится окно установщика. Здесь приведены все пункты меню, которые отражают этапы процесса установки: подготовка диска, выбор пакетов, инсталляция пакетов, установка ядра, конфигурирование системы, установка загрузчика, выход. Если новичок легко сможет справится с большинством разделом меню, то над пунктом «Установка ядра» придется попотеть. Именно по этой причине установка операционной системы ArchLinux считается непростым процессом.

Подготовка диска

Процесс разбивки диска для установки ArchLinux немного отличается от требований для других пакетных операционных систем семейства Linux. Проще всего будет позволить системе самостоятельно поделить диск на разделы. Автоматика в этом случае лучше знает, что нужно системе. Если на жестком диске присутствуют нужные файлы, то необходимо заняться ручной разметкой, чтобы не утратить их. Именно с этой процедуры и начинается установка ArchLinux. В случае ручной разбивки диски необходимо создать следующие разделы: корневой раздел с меткой /; раздел /usr; раздел /opt; раздел /var; раздел /var/abs; раздел /var/cache/pkg; раздел /var/cache/src; раздел «/home». Рассмотрим, для чего нужен каждый из этих разделов. Корневой раздел должен составлять минимум 1 Гб. Именно в данный раздел устанавливается операционная система ArchiLinux. Раздел /usr является так называемым «свопом».

Он выполняет роль файла подкачки для улучшения производительности системы. По объему он должен равняться размеру установленной оперативной памяти, умноженному на два. Раздел /opt используется для размещения таких объемных файлов, как QT библиотеки, «Иксы» и другие файлы рабочей оболочки операционной системы. Размер данного раздела должен составлять приблизительно 4 Гб. Разделы с пометкой /var применяются для размещения системной информации различного рода с целью исключения вероятности захламления корневого раздела. Раздел /home применяется для хранения личных данных пользователя. Для всех разделов предпочтительной формой файловой системы является ext3.

Установка системы

Установка операционной системы ArchLinux происходит в несколько этапов. На первом этапе происходит выбор и настройка пакетов. Если вы не знаете, какой из данных пунктов следует отметить именно для вашего компьютера, тогда просто оставьте значения, выбранные по умолчанию. Программа, проведя анализ «железа», сама решит, что нужно, а что нет. В процессе установки пакетов будет инсталлирован загрузчик. В системе ArchLinux загрузчиком по умолчанию является GRUB. На следующем этапе осуществляется установка ядра системы. В данном случае лучше будет положиться на автоматический выбор и настройку параметров. Единственное, что будет необходимо самостоятельно отметить пользователю, это тип ядра под компоненты вашего компьютера.

Если вы используйте компьютер с поддержкой технологии SCSI, то вам необходимо выбрать такой тип. Когда инсталляция ядра будет успешно завершена, наступит время конфигурирования операционной системы. В данном случае вам предлагается выполнить настройку системы путем правки текстовых файлов конфигурации. Однако лучше этого не делать, так как это может привести к зависанию системы еще в процессе установки. Наиболее приемлемым вариантом будет настройка ArchLinux после установки. С использованием графической среды сделать все будет гораздо проще.

Настройка ArchLinux

После выполнения перезагрузки системы, пользователю необходимо определить некоторые основные параметры. Для ArchLinux предпочтительным рабочим окружением является KDE. Именно его и следует выбрать. В командной строке набираем команду pacman -S KDE. Когда графическая оболочка загрузится, настройка системы будет осуществляться быстрее. Теперь необходимо установить какой-нибудь интернет-браузер, чтобы получить более подробную информацию о настройке ArchiLunux после установки. Для этого необходимо выполнить команду pacman – S firefox. Здесь при помощи Google вы сможете найти всю интересующую вас информацию.