Categories: linux

archlinux-install/

В последнее время я стал замечать, что Ubuntu как-то не особо мотивирует меня разбираться в том, как работает система. Я просто кликаю мышкой, и все работает. А почему оно работает — этого я не понимаю. Другое дело FreeBSD. Но в последнее время FreeBSD разочаровывает меня большим количеством багов, проявляющихся на десктопе (список можно найти в конце этого поста ). После недолгой консультации с коллегами, я решил попробовать Arch Linux. Этот дистрибутив в чем-то напоминает FreeBSD (минимализмом, наличием как бинарных пакетов, так и своего аналога портов) и вполне заслуженно славится своим прекрасным wiki-сайтом , который регулярно показывается мне в выдаче Google.

Примечание: Как чуть более сложную, но и более гибкую, альтернативу без бинарных пакетов мне предлагали Gentoo. Этот дистрибутив мне тоже нравится, и я даже когда-то его немного использовал. Возможно, когда-нибудь я поставлю его прямо рядом с Arch Linux, для разнообразия. Следует также отметить, что Arch работает только на x86/x64, а Gentoo можно запустить практически на любом CPU. И кстати, говорят, что для особо тяжелых приложений, вроде Chromium, бинарные пакеты в Gentoo все-таки есть.

Установка

Все эксперименты проводились на моем многострадальном Fujitsu Lifebook E733 .

Качаем iso-образ системы , проверяем его контрольные суммы, записываем на установочную флешку, загружаемся с нее — тут все как обычно. После загрузки попадаем в обычную консоль (используется zsh ), никакого инсталлятора не предусмотрено. Ethernet-сеть подключилась и настроилась по DHCP сама, тут мне ничего настраивать не пришлось.

Закатываем рукава. Первым делом нужно разбить диск, на который мы поставим систему. Находим нужный диск — в моем случае это был /dev/sda:

lsblk

Создаем новые разделы, используя таблицу разделов GPT:

gdisk / dev / sda

Введите ? для вывода списка доступных команд, затем n для создания нового раздела, p для вывода текущего списка разделов, w для записи таблицы разделов и q для выхода. Не бойтесь, тот все и вправду очень просто!

В Arch Wiki приводятся некоторые рекомендации по размеру разделов . Кстати, зачем так заморчиваться по поводу разделов? Почему нельзя просто свалить все в один большое корень? В принципе, можно, но лучше не стоит. В случае с серверами разделы можно раскидать по разным физическим дискам, распределив нагрузку по IO. На десктопе разделы гарантируют, что из-за пользователя, накачавшего слишком много торрентов, система не встанет колом. И так далее.

В моем случае размер диска составляет 238.5 Гб (речь о «правильных» гигабайтах, на самом диске написано, что это 250 Гб). Я выделил 300 Мб под /boot, как рекомендует Wiki, 200 Гб под /home, мне этого должно более чем хватить, еще 20 Гб отдал под корень, а оставшиеся ошметки (18.2 Гб) достались /var. На swap я забил, в будущем при жалении можно будет отжать немного у /var.

Важно! Забегая вперед, хочу заметить, что может иметь смысл зарезервировать несколько мегабайт для нужд загрузчика. См пример установки GRUB далее.

На созданных разделах создаем файловые системы и монтируем их в /mnt. Я использовал старую-добрую ext4, но кто-то предпочитает xfs. Помимо них в Arch также доступна btrfs, reiserfs и другие.

mkfs.ext4 / dev / sda1
mkfs.ext4 / dev / sda2
mkfs.ext4 / dev / sda3
mkfs.ext4 / dev / sda4

mount / dev / sda3 / mnt
cd / mnt
mkdir boot home var
mount / dev / sda1 / mnt / boot
mount / dev / sda2 / mnt / home
mount / dev / sda4 / mnt / var

Ставим группу пакетов base в /mnt:

pacstrap / mnt base

Генерируем файл /etc/fstab:

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

Делаем chroot в нашу новую систему:

arch-chroot / mnt

Выбираем таймзону:

ln -s / usr / share / zoneinfo / Europe / Moscow / etc / localtime

Генерируем /etc/adjtime (системные часы должны быть в UTC, если это не так — переведите их после перезагрузки):

hwclock —systohc —utc

Сейчас уже можно доустановить дополнительных пакетов, например:

pacman -S vim

Раскомментируем строчку en_US.UTF-8 UTF-8 в /etc/locale.gen, затем говорим:

locale-gen
echo LANG =en_US.UTF- 8 > / etc / locale.conf

Настраиваем имя хоста:

echo e733 > / etc / hostname

Также дописываем в /etc/hosts что-то вроде:

127.0.1.1   e733.localdomain   e733

Создаем initial ramdisk (он требуется для загрузки ядра ):

mkinitcpio -p linux

Наконец, нам нужен загрузчик. Я выбрал GRUB:

pacman -S grub gdisk
# GRUB’у нужен небольшой раздел с типом ef02 (BIOS boot partition)
# к счастью, gdisk выравнивает сектора, за счет чего как раз остается
# около 1 Мб лишнего места в начале диска, нам этого хватит
gdisk / dev / sda
grub-install —target =i386-pc / dev / sda
grub-mkconfig -o / boot / grub / grub.cfg

Меняем пароль пользователя root командой passwd , выходим из chroot командой exit , делаем umount всех разделов нашей новой системы, а затем говорим reboot . Если все было сделано правильно, система загрузится, и в этот раз уже не с флешки:

Проверяем, что все разделы на месте, что системное время правильное, и так далее. Поздравляю, теперь у вас есть предельно минималистичная инсталляция Linux. Остался последний штрих — настроить хоть какую-то сеть. Это быстро.

Подключение к сети по витой паре

Большим шоком для меня было то, что в Arch Linux задепрекейтили пакет net-tools . Поэтому, скажем, команды ifconfig в системе по дэфолту попросту нет. Чтобы посмотреть имена доступных интерфейсов, нужно воспользоваться утилитой ip:

ip addr

А вместо netstat теперь нужно использовать утилиту ss:

ss -tuwpln

Выяснив имя интерфейса, в /etc/systemd/network/ethernet.network пишем что-то вроде:

[Match]
Name=enp0s25
[Network]
DHCP=yes

Включаем systemd-networkd:

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

Логи конкретного сервиса в systemd можно посмотреть так:

journalctl -u systemd-networkd
# следить за обновлениями, как делает утилита tail
journalctl -u systemd-networkd -f

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

systemctl enable systemd-resolved
systemctl start systemd-resolved
rm / etc / resolv.conf
ln -s / var / run / systemd / resolve / resolv.conf / etc / resolv.conf

Заметьте, что по умолчанию systemd-resolved слушает порт 5355 на всех интерфейсах. На мой взгляд это как-то стремно. На форуме Arch Linux удалось найти решение этой проблемы, не требующее использования фаервола .

В /etc/systemd/resolved.conf дописываем:

LLMNR=no

Затем рестартуем сервис:

systemctl restart systemd-resolved

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

Заключение

Как видите, установка и настройка Arch Linux — это безудержное веселье. Если во время установки что-то вдруг пошло не так, вы всегда можете заново загрузиться с флешки и донастроить систему. В любой непонятной ситуации читайте маны, а также официальную wiki , она правда очень классная!

Забегая вперед, отмечу, что в целом впечатления от данного дистрибутива у меня исключительно положительные. Arch Linux очень похож на FreeBSD, только нормально работает на десктопе.

Дополнение: Также вас могут заинтересовать посты Управление пакетами в Arch Linux с помощью ABS и pacman , Пример настройки десктоп-окружения в Arch Linux и Шифрование жесткого диска в Linux при помощи dm-crypt .

admin

Share
Published by
admin
Tags: Linux

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

1 месяц ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

1 месяц ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

1 месяц ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

1 месяц ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

1 месяц ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

1 месяц ago