Установка дистрибутива CRUX на соседний раздел
Сообщений 1 страница 2 из 2
Поделиться22020-12-26 15:03:54
Установка CRUX в каталог
Дистрибутив CRUX в качестве установщика имеет простой скрипт - setup. Он настолько просто и элегантно написан, что без проблем запускается в любом рабочем дистрибутиве и позволяет установить дистрибутив на соседний с действующей системой раздел. Этим сейчас и займёмся.
Структура ISO-образа дистрибутива
Для начала разберёмся как устроен образ, какие там файлы и каталоги, и зачем они нужны. Для отображения структуры каталогов я воспользовался командой tree, позволяющей показать эту самую структуру в цветной псевдографике:
# tree -d . ├── boot │ ├── grub │ │ ├── fonts │ │ ├── i386-efi │ │ └── x86_64-efi │ └── isolinux ├── crux │ ├── core │ ├── handbook.txt │ ├── kernel │ │ ├── linux-5.4.80.config │ │ ├── linux-5.4.80.defconfig │ │ └── linux-5.4.80.tar.xz │ ├── opt │ ├── releasenotes.txt │ ├── setup.dependencies │ └── xorg ├── crux-media ├── rootfs.tar.xz └── tools └── pkgutils#5.40.7-1.pkg.tar.gz 12 directories
Для большей информативности я добавил вручную в схему структуры каталогов некоторые файлы, представляющие интерес по нашей теме. Теперь о том, что это за каталоги и файлы.
Каталог boot
В каталоге boot находятся системные загрузчики grub и isolinux, которые нужны для загрузки системы с инсталлером с загружаемой флешки или загрузочного cdrom. В нашем случае мы их использовать не собираемся, поэтому просто не обращаем внимания на этот каталог.
Каталог crux
Вот этот каталог нам и будет нужен для установки дистрибутива. Он содержит все нужные нам пакеты дистрибутива CRUX. Краткое описание лучше привести в форме таблицы для наглядности:
core | В этом каталоге находятся пакеты, позволяющие установить минимально самодостаточную систему, с возможностью подключения к интернету и создания пакетов. То есть, система в состоянии скачать исходники и перекомпилировать сама себя. |
kernel | В этом каталоге находится сжатый архив с исходниками для ядра и два конфига для настройки компилирования ядра. Причём конфиг с расширением .defconfig, инсталлер копирует в каталог с распакованными исходниками ядра, с переименованием его в .config. Второй конфиг предлагается как образец с отключенными по максимуму модулями и возможностями. То есть, если очень захотеть покрасноглазить, можно поэтапно конфигурировать ядро, подгоняя его под конфигурацию именно своего компьютера, путём включения модулей и всяких возможностей. |
opt | Каталог предоставляющий дополнительные пакеты. И консольные, и тянущие по зависимостям xorg. То есть, если мы выберем из этого набора пакет браузера firefox-bin, инсталлер автоматом установит минимум пакетов из набора xorg, чтобы обеспечить работу браузера в графическом режиме. |
xorg | В каталоге набор пакетов, обеспечивающий работу графических программ. Набор пакетов обеспечивает работу графики в достаточном плане для большинства компьютеров. Но, хочу предупредить, возможно, для обеспечения нормальной работы какой то конкретной графической программы, потребуется установить дополнительные пакеты из репозитория. Всего не предусмотришь... |
handbook.txt | Классика. Документация по установке и настройке дистрибутива от производителей. Кратко, доступно, но маловато для познания процесса... |
releasenotes.txt | Тут хвастают про достижения в новом выпуске дистра. |
setup.dependencies | Список всех зависимостей. Именно из этого файла инсталлятор черпает инфу, по поводу, какие пакеты дополнительно нужно установить, если Вы наобум выбрали для установки какой нибудь пакет. |
Файл rootfs.tar.xz
В этом файле как раз и находится сжатая файловая система, в которой запускается инсталлятор setup. Мы им позже займёмся.
Каталог tools
В этом каталоге находится пакет с утилитой для установки пакетов дистрибутива CRUX. Это тоже, на всякий случай. Просто надо знать, что эта утилита там есть.
Файл crux-media
Это для любопытствующих. В нём версия выпуска. Другой какой нибудь роли этот текстовый файл не играет.
В принципе, этих сведений достаточно, чтобы приступить к установке дистрибутива на соседний раздел. Поэтому следующий раздел статьи:
Подготовка к установке дистрибутива CRUX
Установку можно производить как с установленной рабочей системы, практически любого дистрибутива linux, так и с livecd дистрибутива. Главное, чтобы был подготовлен для установки раздел на жёстком диске. Большинство действий можно производить с помощью файлового менеджера midnight commander. Очень удобная штука. Команды же приводятся для наглядности процесса, так принято.
Все действия производятся с правами root, мне так удобнее. Вряд ли кто попытается вломиться из интернета в процесс установки. А паранойей я не болею, поэтому только так. Это жене нельзя рассказывать про права root, вот тогда система точно будет сломана. А настоящий мужик должен уметь работать с правами root и не ломать систему. Только так! Чтобы получить права root в консольном окне, в большинстве дистрибутивов достаточно ввести команду:
$ sudo -i
Для начала создадим рабочий каталог для подготовительных действий. Туда мы загрузим iso-образ дистрибутива и распакуем его.
# mkdir -p /work/media
Дополнительно я создал каталог media. Это для скрипта установщика. Он его будет искать, поэтому так. Позже будет понятно.
Переходим в каталог work:
# cd /work
Скачиваем в него образ дистрибутива:
# wget -c http://ftp.morpheus.net/pub/linux/crux/crux-3.6.1/iso/crux-3.6.1.iso
Создадим каталог для монтирования загруженного образа:
# mkdir /work/isoimage
или
# mkdir isoimage
В данный момент действие команд будет иметь одинаковый результат.
Монтируем образ в каталог isoimage:
# mount crux-3.6.1.iso isoimage
можно с абсолютными путями...
# mount /work/crux-3.6.1.iso /work/isoimage
Копируем из примонтированного образа каталог crux со всеми файлами в каталог media:
# cp -r isoimage/crux media
или с абсолютными путями, кому как нравится...
# cp -r /work/isoimage/crux /work/media
Копируем сжатую файловую систему с установщиком в рабочий каталог, именно там этот скрипт находится.
# cp isoimage/rootfs.tar.xz .
или
# cp /work/isoimage/rootfs.tar.xz /work
Нужные файлы мы скопировали, можно за ненадобностью отмонтировать образ и даже удалить его вместе с каталогом isoimage.
# umount isoimage # rm crux-3.6.1.iso # rm -r isoimage
аналогично с абсолютными путями:
# umount /work/isoimage # rm /work/crux-3.6.1.iso # rm -r /work/isoimage
Теперь извлечём сам скрипт-инсталлятор из сжатой файловой системы rootfs.tar.xz.
Можно тупо воспользоваться файловым менеджером mc, войти в архив и просто скопировать нужные файлы:
Но мы не ищем лёгких путей. Интересно же как это будет выглядеть в виде команды. А копировать будем два скрипта - сам инсталлер setup и воспомогательный скрипт (если нужно обновление, а не установка) скрипт setup-helper. Последний скрипт необязателен, он подключается к работе только в случае обновления дистрибутива, в варианте установки с нуля он не нужен. Распаковываем:
# tar -xvf rootfs.tar.xz --strip-components=3 -C . ./usr/bin/setup
или
# tar -xvf rootfs.tar.xz --strip-components=3 -C /work ./usr/bin/setup
Если собираемся обновлять дистрибутив, то нужен будет и второй скрипт:
# tar -xvf rootfs.tar.xz --strip-components=3 -C . ./usr/bin/setup-helper
или
# tar -xvf rootfs.tar.xz --strip-components=3 -C /work ./usr/bin/setup-helper
Аргумент --strip-components=3 показывает уровень вложенности файла в архиве.
Народ делает попроще, простым выводом содержимого архивного файла в новый файл:
# tar -xvf rootfs.tar.xz ./usr/bin/setup -O > setup
В таком случае, файл нужно сделать исполняемым(на всякий случай):
# chmod +x setup
Теперь малость подправим сам скрипт. Всё дело в том, что скрипт по умолчанию будет искать каталог /media, в котором, в свою очередь, должен на находиться каталог crux с пакетами для установки. Так вот скрипт нужно подправить, указать, чтобы он искал свой каталог не по абсолютному пути, а по относительному. Для этого откроем скрипт setup в любом текстовом редакторе и в поисковике слов напишем /media. Поисковик сразу же нас выведет на два места в скрипте, где эта переменная определяется:
Здесь таки указан абсолютный путь, а нам нужен относительный. Поэтому мы приводим этот фрагмент к такому виду:
p=`echo $opt | cut -d= -f2` crux_dir=media/${p}/crux fi done else crux_dir=media/crux fi
Или к такому, как кому нравится:
p=`echo $opt | cut -d= -f2` crux_dir=./media/${p}/crux fi done else crux_dir=./media/crux fi
В любом случае теперь указан относительный путь и скрипт будет искать свой каталог media в каталоге, из которого мы его запустили в работу.
В процессе разбирательства как работает скрипт, я его заодно перевёл на русский язык. Сам я по аглицки не очень, в смысле совсем. Поэтому использовал интернет-переводчики Deepl Translate, Яндекс переводчик и Google переводчик. Кто предпочитает оригинал, пусть будет так. А кому нужен, пусть даже криво переведённый скрипт, можно загрузить отсюда, вместе с этим документом.
Установка дистрибутива CRUX
Пришло время запустить в работу инсталлятор. Для начала приведу скрин, когда я попытался запустить скрипт, ещё не догадываясь, где он будет искать пакеты для установки.
Но теперь всё настроено. Только нужно создать каталог /mnt/crux. Это условие из скрипта. Последуем этой рекомендации.
# mkdir -p /mnt/crux
И предварительно примонтируем его! Скрипт не монтирует раздел для установки дистрибутива, это должен сделать сам пользователь, до запуска инсталлятора.
# mount /dev/sda9 /mnt/crux
Запускаем инсталлятор:
# sh ./setup
Дальше предложение установить или обновить дистрибутив:
Теперь отмечаем наборы пакетов, которые мы собираемся установить. Описание наборов выше по тексту, в таблице. Я выбрал всё. Советую и Вам, если устанавливаете в первый раз.
Далее следует предложение исключить какие либо пакеты из процесса установки. Рекомендуется для продвинутых пользователей, которые осознают, что творят. Я только посмотрел...
Список устанавливаемых пакетов из каталога core:
Список пакетов из каталога opt:
Список пакетов из каталога xorg:
Далее следует предложение установить один из загрузчиков. У меня главной(на первом диске) установлена система из Debian. Я в неё вхожу редко, она мне нужна только для того, что там вменяемо отрабатывается команда update-grub. То есть, нормально регистрирует вновь установленные системы. Российского изготовления системы, поломали grub до неузнаваемости. Этим грешит и Astra-linux и Alt-linux. Их grub не умеет опознавать установленные системы. Какие то опознаёт, а нужные пользователю - нет! Вобщем, я выбрал один загрузчик - syslinux. Он не претендует на установку в mbr, но мне пригодится. Что Вы выберите, решать Вам.
Далее последует проверка на Вашу решимость:
После чего начнётся сам процесс установки пакетов...
В конце процесса радостное сообщение, что всё прошло без ошибок! Значит я не зря выбрал syslinux загрузчиком!
Далее будет статья о первой настройке установленного CRUX под chroot.