03.09.12

Установка Arch Linux 2012.07.15 и более новых сборок, в том числе 2012.08.04

Оригинал взят здесь (правка своя:) )

Подготовка к установке

Если кто не знает, дистрибутив лежит тут — http://www.archlinux.org/download/. Качайте только релиз, не пытайтесь пользоваться снапшотами, если не готовы самостоятельно решать самые неожиданные проблемы.
Исошник лучше всего записать на CD, это почти гарантированно спасёт от косяков, которые встречаются при попытке установки с флешек. Если CD-привода нет — копируйте дистрибутив на флешку при помощи команды (для июльской сборки 2012 года):
dd if=archlinux-2012.07.15-netinstall-dual.iso of=/dev/sdX
где X — буквенное обозначение девайса флешки, например sdb. Номер раздела указывать не нужно, только букву. Будьте внимательны! Ошибётесь буквой — можете затереть данные на винчестере! В целях предосторожности dd стоит выполнять от пользователя, а не от рута.

Загрузка

Тут всё элементарно — вставляете флешку, выбираете архитектуру и загружаетесь (для 32-битных процессоров в меню будет всего 1 пункт с архитектурой, для 64-битных — 2 пункта, выберите нужный). После загрузки попадёте в рутовую консоль.

Поднятие сети, выход в интернет

Тут я вам не большой помощник, потому что подключение у каждого своё. Не стоит бояться поднимать интернет из консоли, это не так сложно, как кажется. Читайте допосинения просветления wiki.archlinux.org или меня: PPPoE в Arch Linux3G модем в Arch Linux.
Приведу инструкцию для самого простого случая — установки в виртуальной машине. Обычно виртуалка подводит в запущенной в ней ОС «локальную сеть», через которую можно достучаться до всемирной паутины (если, конечно, к интернету подключена основная ОС, в которой эта виртуалка стоит; в противном случае установка просто не имеет смысла, т.к. теперь для инсталляции Arch Linux обязательно нужен интернет).
Начиная со сборки 2012.08.04 локальная сеть должна подниматься и настраиваться самостоятельно, но на всякий случай вот команда для получения настроек по DHCP:
dhcpcd
Команду стоит запомнить, возможно она пригодится вам в дальнейшем.

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

На первый раз очень рекомендую вам поставить Арч на один раздел. Даже место под swap в общем-то не обязательно выделять, если железо достаточно мощное. За всё время использования Арча подкачка у меня работала один или два раза, при том, что у меня всего 2Гб оперативки.
Будем считать добавление swap-раздела «домашней работой». Если решили её выполнить, не забудьте оставить место на диске и прописать swap в /etc/fstab (к его редактированию мы обратимся, когда будем настраивать уже установленную систему).

Разметка

Для разметки удобно использовать cfdisk. Пользоваться программой предельно просто — запускаем:
cfdisk /dev/sda
(если ставите на реальное железо и имеете 2 HDD, убедитесь, что имя девайса соответствует выбранному диску, иначе рискуете потерять данные), жмём New, выбираем основной (primary) вид раздела, ставим флагbootable и записываем изменения при помощи Write и выходим — Quit.
Рекомендуется оставить несколько мегабайт пустого пространства в начале диска, потому что загрузчик GRUB2 «немного толстоват»  и в служебную область иногда не умещается. О том, как это сделать, написано в отдельной статье.
На будущее хочу заметить, что создавать отдельный раздел /boot, как иногда советуют в Wiki, глупо и вредно. Не делайте этого, если не хотите проблем с загрузкой системы. Конечно, здесь могут быть исключения, но они касаются только тех, кто реально отдаёт себе отчёт в том, зачем ему нужен отдельный /boot и может самостоятельно разобраться с соответствующими настройками.

Форматирование

Разметить диск мало, надо ещё создать на нём файловую систему. Сам я использую везде ext4, поэтому команду приведу для неё. Команды для создания других файловых систем и swap-а ищите в Wiki (а лучше просто напишите в консоли mk и пару раз нажмите Tab, по предлагаемым вариантам сами всё поймёте).
Итак, для форматирования первого (и, в нашем случае, единственного) раздела пишем:
mkfs.ext4 /dev/sda1

Установка базовых пакетов

Монтирование раздела и создание директорий

Перед тем как ставить пакеты, нам нужно смонтировать в директорию /mnt только что созданный раздел и создать на нём основные директории.
Монтирование и создание директорий делается при помощи команд:
mount /dev/sda1 /mnt
mkdir -p /mnt/{dev,proc,sys,run,tmp,etc}
mkdir -p /mnt/var/lib/pacman
А проверить результат можно командой:
ls /mnt

Выбор зеркала

Теперь нам нужно выбрать зеркало, с которого будут загружаться пакеты. Пишем:
vi /etc/pacman.d/mirrorlist
и оставляем в файле только один адрес. Я пользуюсь зеркалом Яндекса, ну а вы выбирайте по вкусу.
Если не умеете пользоваться viто вы сами себе злобные буратины можете попробовать nano, он намного проще.
Или, что ещё удобнее, можно просто записать нужное зеркало через echo, примерно так:
echo 'Server = http://mirror.yandex.ru/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist

Загрузка пакетов

Команды для установки пакетов при инсталляции дистрибутива отличаются от обычных только тем, что пакетному менеджеру дополнительно указывается корневая директория устанавливаемого дистрибутива. Мы её, если помните, смонтировали в /mnt.
Сначала нам нужно обновить нашу базу данных с информацией о пакетах:
pacman -r /mnt -Sy
После этого можно загружать и устанавливать любые пакеты. Обязательными для установки являются базовые пакеты и загрузчик (os-prober нужен для автоматического обнаружения систем на других разделах):
pacman -r /mnt -S base grub-bios os-prober
В принципе, на этом этапе можно установить любые пакеты: хоть файловый менеджер Midnight Commander, хоть погодный информер для KDE. Однако, я рекомендую ограничиться минимальным набором пакетов, т.к. не исключено, что в процессе дальнейшей установки вы что-нибудь сломаете и будете всё устанавливать заново.
Внимание! При загрузке пакетов убедитесь, что вы устанавливаете всё необходимое, чтобы иметь возможность поднять интернет из устанавливаемой системы. Особенно это касается тех, кто использует «сложные» методы подключения (VPN, Wi-Fi, USB-модемы) или скрипты для автоматической настройки сети, такие как pptpsetup.

Переключение в устанавливаемую систему

После установки пакетов нам предстоит переключиться в устанавливаемую систему, чтобы сделать некоторые настройки непосредственно из неё. Но, так как эта система у нас, можно сказать, «новорожденная», нам придётся сначала прикрутить к ней «органы чувств» той системы, в который мы сейчас работаем.
Для этого «биндим» (это особый вид монтирования) нужные директории:
mount -o bind /dev /mnt/dev
mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
После этого можно переключаться:
chroot /mnt bash
Внимание! Все дальнейшие действия производятся в устанавливаемой системе! Выходить из chroot нужно будет только после завершения всех настроек — для перезагрузки!

Настройка

Сразу скажу, что настраивать мы будет только то, без чего система вообще толком работать не сможет. Настройку пакетного менеджера (в том числе настройку обработки подписей для пакетов) вы произведёте самостоятельно уже после установки. Особо сложного там ничего нет, читайте Wiki.
Писать полную команду на открытие конфигов я не буду, не забывайте перед именем файлов писать viили nano. Настройки будут идти в том же порядке, что и в man archlinux. Настройки — штука не постоянна я не всегда очевидная, если вы испытываете какие-то проблемы — читайте маны и спрашивайте в комментариях. На Wiki сейчас (в июле 2012) большой надежды нет, т.к. полностью привести её в порядок ещё не успели.

Настройка /etc/rc.conf

Открываем файл и прописываем сетевые параметры:
# Network
#
interface=eth0
address=
netmask=
gateway=
При такой конфигурации локальная сеть будет подниматься по DHCP. Если DHCP нет — прописывайте ещё адрес, маску и шлюз. Если DHCP есть, но такой конфиг не работает — попробуйте поменять eth0 наeth1 (имя зависит от того, как определяется сетевая карта).

Настройка имени хоста

Открываем /etc/hostname, пишем туда имя хоста, например myhost или arch.

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

Открываем файл /etc/locale.gen (в мануале этот файл называется locale-gen, может быть это ошибка, а может быть файл скоро будет переименован, будьте внимательны), и стираем решетку перед локальюru_RU.UTF-8 UTF-8.
Запускаем генератор локалей:
locale-gen
Теперь открываем файл /etc/locale.conf и пишем туда следующее:
LANG=ru_RU.UTF-8
LC_MESSAGES=ru_RU.UTF-8
LC_COLLATE=C

Настройки вируальной консоли

Открываем файл /etc/vconsole.conf и пишем туда:
KEYMAP=us
CONSOLEFONT=UniCyr_8x16
В принципе, параметр KEYMAP для английской раскладки можно не задавать, а вот наличие указанного шрифта в /usr/share/kbd/consolefonts лучше проверить.

Настройка времени

Генерируем файл /etc/adjtime и указываем свой часовой пояс командами:
hwclock -w --localtime
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Если у вас другой часовой пояс — ищите свой файл в /usr/share/zoneinfo/ и командуйте аналогичным образом.

Настройка автомонтирования

Теперь нам необходимо открыть файл /etc/fstab и прописать туда наш корневой раздел, иначе система не сможет загрузиться. Указать на нужный раздел можно несколькими способами (подробности в Wiki), я выбрал самый простой — по имени девайса:
/dev/sda1 / ext4 defaults 0 1

Генерация initramfs

Теперь переходим к настоящему (но очень простому) шаманству. Пишем команду:
mkinitcpio -p linux
Не буду грузить вас подробностями про initrd (потому что я их и сам не знаю), скажу только, что без выполнения приведённой выше команды ваша новая система загружаться не сможет, так что не следите за опечатками.

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

Тут всё предельно просто. Ставим загрузчик:
grub-install /dev/sda
и запускаем автоматическую настройку:
grub-mkconfig -o /boot/grub/grub.cfg
Если вы не сделали чего-нибудь эдакого — всё заработает самостоятельно и без ошибок.

?????

После этого нужно ещё раз проверить правильность всех настроек, выйти из устанавливаемой системы и перезагрузиться:
exit
reboot

PROFIT!

Если после всех наших манипуляций у вас всё-таки получится загрузить свежеустановленную систему, может себя поздравить. Теперь вы вполне себе Ъ-красноглазик. Осталось совсем не много: поставить дрова на видео, иксы, какую-нибудь DE, и всё это настроить... Но это уже совсем другая история — история для самостоятельного сочинения :)