CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
29.03.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: Archlinux & CRUX

CRUX: инсталляция

http://alv.me/

Вот мы и подошли к волнующему моменту — установке CRUX'а. В принципе, все необходимые сведения по этому вопросу содержатся в официальном Handbook'е, существующем и в русском переводе (правда, не последней версии, да и сайт этот часто бывает недоступен). Однако, как уже неоднократно отмечалось, Handbook рассчитан на пользователей с определённым опытом, и потому кое-какие детали в нём остаются за кадром. В настоящей заметке я постараюсь восполнить эти пробелы — в надежде, что CRUX'ом могут заинтересоваться и не столь многоопытные пользователи.

Предлагаю договориться, что CRUX будет установлен на более или менее современную машину с достаточным количеством оперативной памяти (1 Гбайт или более), дисковым интерфейсом SATA и соответствующим винчестером, на котором он будет единственной системой: методы "расчистки" дискового пространства, занятого иной ОС, и обеспечения мультисистемной загрузки были достаточно подробно рассмотрены в недавних апгрейдах книжки про Zenwalk, и от дистрибутива не зависят ни в малейшей степени.

Итак, для начала нам надо получить файл образа дистрибутивного носителя с одного из зеркал. "Авторский" вариант его последней версии (crux-X.Y.iso) находится в каталоге crux/latest/iso/ (символическая ссылка на каталог crux/crux-X.Y). Это 32-битная сборка под архитектуру i686 и выше. Для более старых машин надо скачать соответствующую сборку из каталога crux/latest/contrib/ — файл её образа называется crux-i586-X.Y.iso. Кроме того, с сайта самостоятельного проекта доступна и 64-битная сборка, поддерживаемая Ханнесом Майером (Hannes Mayer). Однако за её работоспособность на любых конфигурациях я бы не поручился: у меня она просто отказалась загружаться напрочь. Дальше речь пойдёт только об "авторском" варианте.

Получив образ диска, следует "сболванить" его любым доступным способом, вставить в привод и перезагрузить машину. После чего перед нами предстанет список доступных образов ядра и приглашение к вводу одного из них. Впрочем, необходимости вводить что-либо нет: достаточно нажать Enter для загрузки ядра с поддержкой стандартной текстовой консоли. Если же хочется воспользоваться красотами консоли графической — к вашим услугам фреймбуфер с разрешениями от 1280x1024 до 640x480:

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

boot: fb1280
Не понадобится, скорее всего, и указывать какие-либо опции загрузки. При необходимости в оных — если ядро не грузится умолчальным образом — придётся почитать и (или) подумать. В большинстве случаев требуется указание опций типа noapic и (или) noacpi, но все возможные случаи предусмотреть невозможно. И поэтому оставляю их на рассмотрение заинтересованным лицам.

По окончании загрузки на первой виртуальной консоли будет предложено авторизоваться root'ом (без пароля). Одновременно станут доступны и остальные виртуальные консоли в количестве пяти штук, на которые можно перейти посредством комбинации клавиш Alt+F#. На одной из них (также предварительно авторизовавшись, как root) есть резон открыть с компакт-диска Handbook, содержащий руководство по установке. Это простой текстовый файл, так что просмотреть его можно таким образом:

# less /cdrom/crux/handbook.txt
и выполнить разбиение диска посредством программ fdisk или cfdisk. Поскольку на эту тему говорилось недавно и подробно, описание процедуры, опять же, пропущу. Напомню лишь наиболее целесообразную, как мне кажется ныне, схему:
  • /boot — /dev/sda1, 50 Мбайт;
  • swap — /dev/sda2, 1 Гбайт;
  • / — /dev/sda3, 2-3 Гбайт или более, в зависимости от потребности в дополнительном софте;
  • /home — /devsda4, сколько осталось.
При объеме памяти в 1 Гбайт и более от swap-раздела можно отказаться вообще. Тем более, что у меня, например, после установки он категорически отказался активизироваться, хотя причина тому, видимо — в особенностях сборки ядра, о чём я скажу далее.

Тем не менее, если раздел под swap всё-таки создаётся, его нужно определить посредством команды

# mkswap /dev/sda2
После чего на остальных разделах создать файловые системы, ext2fs — под будущий каталог /boot и ext3fs — под корневой и домашний каталоги:
# mkfs.ext2 /dev/sda1
# mkfs.ext3 /dev/sda3
# mkfs.ext3 /dev/sda4
Почему именно так — подробно рассказывалось в книжке про Zenwalk, здесь замечу только, что делается это в преддверии обретения файловой системой btrfs — светлым будущим всего линуксоидного человечества — статуса стабильной.

Теперь будущий корневой каталог надо подмонтировать к файловой системе, загруженной с компакт-диска:

# mount /dev/sda3 /mnt
А уже внутри неё следует смонтировать раздел под грядущий загрузочный каталог, предварительно создав точку монтирования:
# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot
Будущий домашний каталог пока можно не монтировать — на стадии инсталляции он не понадобится. Зато надлежит активизировать раздел подкачки, если таковой создавался:
# swapon /dev/sda2
При ядре, загруженном с компакт-диска, это должно пройти нормально.

А где же инсталлятор? — вправе спросить читатель. Ведь все описанные процедуры были проделаны вручную. Вот теперь наступает время для его запуска. Делается это командой

# setup
которая запускает простой шелл-сценарий с псевдографическим интерфейсом (основанным на ncurces), обеспечивающим выбор пакетов, их распаковку и установку в будущую корневую файловую систему на диске. Вся работа скрипта становится понятной из соответствующих скриншотов. К сожалению, как я говорил в заметке о виртуальных машинах, в VirtualBox'е CRUX у меня устанавливаться отказался. Поэтому приводимые ниже скриншоты заимствованы с соответствующего раздела сайта проекта, хотя они и относятся к одной из предыдущих версий.

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

Далее спрашивается, желаем мы установить CRUX или проагрейдить уже установленный до свежей версии. Ответ представляется очевидным.

Затем предлагается определить целевой каталог для установки — тот, куда мы предварительно смонтировали предназначенный для этого дисковый раздел, то есть /mnt:

После этого нас спросят, какие из категорий пакетов — core, opt и xorg — мы хотим установить, причём по умолчанию отмечена только первая. В целях максимально быстрого развертывания лучше выбрать все категории, если же нет напряга со временем, с момента выхода установочного диска прошло достаточно времени, и есть желание получить максимально свежую систему, можно ограничиться только core, а всё недостающее доустановить потом из портов (как — расскажу в своё время). Тем не менее, для начала здесь будет рассмотрен первый случай.

После того как мы закажем установку всех трёх категорий, нас спросят — желаем ли мы выбирать пакеты индивидуально? Даже если желания выбирать нет — потому что ставится самый минимум-миниморум, какой только возможен — всё равно лучше предпочесть выбор: по крайней мере, для ознакомления (хотя по умолчанию отмечен как раз противоположный вариант). Если сделать так — на следующей стадии будут последовательно выводиться списки пакетов по категориям (на скриншоте этого не видно, так как он относится к одной из предыдущих версий):

По умолчанию для установки отмечены все наличествующие пакеты. Поскольку их не так много, никаким особенным выбором их можно не заниматься, за исключением случаев твердой уверенности в ненужности чего-либо. В частности, в категории xorg есть смысл вычеркнуть драйвера для всех видеокарт, кроме той, что имеется в наличии.

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

Далее без всякого перехода начинается установка пакетов. Поскольку формат их очень прост (обычные архивы tar.gz без всякой метаинформации), а число не велико, процедура эта не займёт много времени:

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

Всё. На этом работа установочного сценария закончена. Но сама по себе инсталляция — ещё нет. Потому что в числе инсталлируемых пакетов не было самого главного компонента — ядра системы, а были лишь его исходники. Из которых нам сейчас предстоит ядро сконфигурировать, собрать и установить самостоятельно, вручную. Делается это в так называемом chroot-окружении, которое представляет собой будущую корневую файловую систему, инсталлированную только что на диск и изолированную от внешнего мира, то есть от файловой системы, загруженной с установочного компакт-диска.

Переход в chroot-окружение потребует некоторых подготовительных мероприятий, которые обеспечат его работоспособность. В первую очередь, это монтирование в будущий корневой каталог CRUX'а виртуальных файловых систем. Их содержимое создаётся динамически в ходе загрузки, после которой взяться ему уже больше некуда. Причём монтирование это должно осуществляться в режиме "разделения", так как они уже смонтированы в корень файловой системы, загруженной с CD:

# mount -o bind /dev /mnt/dev
# mount -o bind /tmp /mnt/tmp
# mount -t proc proc /mnt/proc
# mount -t sysfs none /mnt/sys
Обращаю внимание на опцию bind в первых двух командах — именно она указывает на режим "разделения" для каталога /dev и файловой системы /tmp — и на явное указание типа файловых систем proc и sysfs посредством опции -t — в двух последних. Ни ту, ни другую желательно не забыть.

Теперь выполняем собственно процедуру смены корня командой

# chroot /mnt /bin/bash
где /mnt — новый корневой каталог, а /bin/bash — командная оболочка для нового окружения (путь к её исполняемому файлу указывается уже от нового корня). Если не указать второй аргумент, то будет загружен умолчальный /bin/sh (тот же bash с возможностями, урезанными до стандартного POSIX-шелла), что терпимо, но неудобно (и главное, бессмысленно).

Тут руководство по установке рекомендует задать пароль суперпользователя. Поскольку этого всё равно не избежать — резонно последовать его совету, чтобы не забыть это сделать. Процедура ввода пароля — обычная, без "отсвечивания" ввода, но с повторением.

Теперь окружавшая нас обстановка как бы перестаёт существовать, мы находимся в той самой системе, в которой будем работать в дальнейшем, после окончания установки и перезагрузки. С одним единственным исключением: система наша пока не имеет ядра. А имеет, как уже было сказано, только исходники той его версии, которая включена в текущую версию дистрибутива (на момент, когда пишутся эти строки — linux-2.6.27.8). Именно его предлагается нам собрать и установить официальным руководством.

Но мы так делать не будем. Раз уж всё равно ядро собирать придётся — имеет смысл делать это с материалами поновее. Например, я давеча установил ядро linux-2.6.29-rc4 — ядра 29-й версии, кроме всего прочего, обещают поддержку btrfs. Той самой файловой системы, ради которой мы на всех разделах, кроме загрузочного, применили защиту Филидора... то есть, пардон, файловую систему ext3fs (хотя из всего нативно-стабильного файлового хозяйства Linux'а лучшей я, несмотря ни на что, продолжаю считать ReiserFS).

Для установки ядра, отличного от идущего в комплекте, требуется

  • заблаговременно скачать его исходники (с kernel.org или любого из его зеркал, например, с этого);
  • поместить архив на подходящий носитель, например, флэшку;
  • когда придёт время собирать ядро, подсоединить ее и смонтировать командой
    # mount -t /dev/sdb /mnt
  • перейти в нужный каталог
    # cd /usr/src
  • распаковать архив
    # tar xjvf /mnt/linux-2.6.2X
Напоминаю, что всё это происходит в chroot-окружении, от корня которого и отсчитываются все указанные пути.

Далее переходим в новообразованный каталог /usr/src/linux-2.6.2X, запускаем конфигурационный сценарий

# make menuconfig
и выполняем собственно конфигурирование. На деталях его останавливаться не буду: этот процесс в подробностях будет предметом специальной заметки, а пока с ним можно ознакомиться по фрагментам, собранным здесь.

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

# make bzImage && make modules
установка модулей:
# make modules_install
и копирование ядра с сопутствующими файлами по назначению:
# cp arch/i386/boot/bzImage /boot/vmlinuz
# cp System.map /boot
# cp .config /boot/config
Последовательность этих действий в деталях может различаться, но об этом разговор пойдёт в грядущей специальной заметке.

Теперь остаётся только обеспечить загрузку свежеустановленной системы и монтирование в её ходе необходимых файловых систем. Первое потребует редактирования файла /etc/lilo.conf. Оно выполняется вручную в текстовом редакторе — таковых в нашем распоряжении два, традиционный vim и более простой в использовании (точнее, не требующий предварительных навыков) nano, какой выбрать — дело вкуса и привычки.

Прототип файла /etc/lilo.conf устанавливается вместе с одноимённым пакетом (входящим в категорию core) и выглядит следующим образом:

#
# /etc/lilo.conf: lilo(8) configuration, see lilo.conf(5)
#

lba32 install=text boot=/dev/sda image=/boot/vmlinuz label=CRUX root=/dev/sda3 read-only append="quiet"

# End of file

При установке CRUX'а в качестве единственной системы здесь обязательно нужно проследить за тем, чтобы имя загрузочного устройства (значение параметра boot) и устройства, несущего корневую файловую систему (значение параметра root), соответствовали текущим реалиям (в примере они даны согласно описанной выше схеме разметки диска). При желании внести дополнительные параметры следует обратиться к документации — man lilo.conf — либо к многочисленным описаниям настройки lilo, существующим в природе (например, здесь).

Внеся необходимые изменения в /etc/lilo.conf, необходимо зафиксировать их, запустив команду

# /sbin/lilo
которая запишет все необходимые данные в MBR диска, указанного в конфигурационном файле в качестве загрузочного (в примере — /dev/sda).

Вместо lilo в качестве загрузчика можно использовать и GRUB — при активном экспериментировании с многими операционками или дистрибутивами это по ряду причин предпочтительней. Но здесь мы на этом вопросе останавливаться не будем — он рассмотрен в указанной главе, многочисленных статьях Владимира Попова на CITKIT.ru и во многих других источниках.

Замечу только, что для использования GRUB необходимо установить одноимённый пакет (входит в категорию opt), скопировать и отредактировать его конфигурационный файл, а затем инсталлировать "собственно загрузочную" часть загрузчика в MBR загрузочного устройства.

Разделавшись с загрузкой, займемся монтированием файловых систем. Для этого надо отредактировать (в тех же vim или nano) файл /etc/fstab. Дело это очень простое: файл уже содержит записи для всех виртуальных файловых систем, подлежащих монтированию в обязательном порядке (таким, как proc, sysfs, tmpfs), а также закомментированные строки, отвечающие всем нативным файловым системам при различных типовых схемах дисковой разметки. Остаётся только отыскать строку с нужной файловой системой для корня файловой иерархии и каталога /home, который теперь уже понадобится. В нашем случае они будут такими:

#/dev/#EXT3FS_ROOT#	/	ext3	relatime	0	1
...
#/dev/#EXT3FS_HOME#	/home	ext3	relatime	0	2
снять с них символ комментария (#), вместо шаблона имени устройства вписать реальное — sda3 и sda4 соответственно. А поскольку мы создавали ещё и отдельный загрузочный раздел, добавить строку для него:
/dev/sda1	/boot	ext2	defaults	0	0
При использовании загрузчика GRUB его разработчики настоятельно рекомендуют не монтировать каталог /boot автоматически — дабы воспользоваться их советом, следует указать опцию монтирования noauto. Кстати, и при использовании Lilo она не повредит.

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

/dev/sda3	swap	swap	defaults	0	0
Наконец, для упрощения монтирования обычных CD- и DVD-дисков не худо бы снять ремарки со следующей строки:
/dev/cdrom	/cdrom	iso9660	ro,user,noauto,unhide	0	0
А если есть претензии на использование DVD-дисков с файловой системой UDF — то и со строки
/dev/dvd	/dvd	udf	ro,user,noauto,unhide	0	0
Хотя зачем нынче может понадобиться последняя — не очень представляю.

Если в дальнейшем планируется задействовать механизм HAL (по умолчанию он не используется), раскомментировать указанные строки как раз не нужно. Но уж если это сделали — то надо не забыть создать в корневом каталоге соответствующие точки монтирования, /cdrom и /dvd, по умолчанию их нет.

Вот теперь установку можно считать законченной. Правда, руководство рекомендует отредактировать некоторые инициализационные файлы (на предмет настройки сети, указания часового пояса, шрифтов и клавиатурных раскладок для консоли и так далее). Однако мы этим сейчас заниматься не будем: сиcтема загрузится и с умолчальными настройками, а сама по себе система инициализации CRUX'а и её конфигурирование заслуживает отдельного разговора, который и будет темой одной из ближайших заметок.

Так что спокойно перезагружаем машину, извлекая в процессе установочный компакт, и радуемся новому дистрибутиву.




Комментарии

Страницы комментариев: 1 :: 2 :: следующая

аноним, Sat Mar 7 18:55:51 2009:
После установки Crux-а в Vmware, Crux не грузится, выдает сообщение о невозможности смонтировать корневой раздел hda1, хотя если загрузится с инсталяционного диска раздел отлично монтируется. Устанавливал в качестве загрузчика и lilo и grub. Устанавливать на реальный комп не пробовал.
Гадж, Fri Mar 6 14:40:13 2009:
Не удивлюсь, если это самое быдло год три назад ставила свой первый дистрибутив именно по вашим статьям а теперь почувствовали себя великими спецами. Быдло оно и есть быдло!
Гадж, Fri Mar 6 13:37:29 2009:
Не удивлюсь, если это самое быдло год три назад ставила свой первый дистрибутив именно по вашим статьям а теперь почувствовали себя великими спецами. Быдло оно и есть быдло!
Гадж, Fri Mar 6 13:30:08 2009:
2 Алексей Федорчук
Спасибо. Не обращайте внимание на быдло и продолжайте радовать нас новыми статьями.
grub, Fri Feb 27 11:40:31 2009:
> научился использовать дистрибутивы, не инсталлируя их.
> Поделился бы передовым опытом, а?

известно как! Как подставку под чашку ))
аноним, Thu Feb 26 23:29:04 2009:
>Так всё же, насколько оно ванильно? Много ли "своих" патчей накладывают?

Практически совсем не накладывают. Только чтобы приложение нормально работало.
Алексей Федорчук, Thu Feb 26 19:25:33 2009:
2 Фридрих
я же его не ставил
так что не знаю
Фридрих, Thu Feb 26 18:10:40 2009:
Так всё же, насколько оно ванильно? Много ли "своих" патчей накладывают?
Алексей Федорчук, Thu Feb 26 13:40:21 2009:
2 аноним, четверг, 26 февраля 2009 г. 13:33:55:
Будьте уж точны - более 10 лет.
И я очень рад, что Ваш ржачь сэкономил Вам рублей 40 на сметану в день.
Пересчитайте на срок - пора делиться, аднака...
Так типа по понятиям будет.
аноним, Thu Feb 26 13:33:55 2009:
2Алексей Федорчук

дражайший, когда от вас на протяжении лет пяти видишь "статьи" в 95% случаев про инсталляцию и "первые впечатления", неудивительно что искренне начинаешь ржать, когда видешь ещё один совершенно однотипный "крео ат аффтара")

Страницы комментариев: 1 :: 2 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds