Русский
Русский
English
Статистика
Реклама

Танцуем с cl-build-

Начало

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

Железо купили новенькое, хоть и не мощное, однако имеющийся дистрибутив Calculate в самой своей последней инкарнации CDS на момент сего действа оказался не слишком-то способен распознать новое железо, а именно сетевые интерфейсы. Локальный видит, а вот ethN - нет, постучались в "Телегу" техподдержки, - результат маловнятный. Ну да ладно, решили проверить на других дистрибутивах, из имеющихся был свежий CentOS и gentoo, первый - не смог, второй железо увидел, из чего сделали вывод, что проблема в ядре, в техподдержке намекнули, что ждите дистрибутива или...

...и мы выбрали "или"

Собственно всё нижеследующее - фактически просто протокол работы, то есть то, что мы сделали для того, чтобы создать средствами Calculate Scratch Server (далее CSS) дистрибутив под собственные нужды. Забегая вперёд, скажу, что всё оказалось не так уж и сложно, хоть и не с первого раза, и именно для того, чтобы у нас в последующем и у вас, читатель буде такая нужда возникнет, получилось с первого.

Сходили за образом на https://mirror.lautre.ru/nightly/20201105/ забрали css-20201105-x86_64.iso в вашем случае возможно будет иначе, не суть важно.

Подцепили образ к виртуалке на старом сервере:

qemu-system-x86_64 \-smp 4 \-vnc 192.168.1.240:7 \-m 8192 \-enable-kvm \-boot order=cd,menu=on,reboot-timeout=20 \-hda /mnt/8tb/CSS/CSS-gradient.raw \-cdrom /mnt/8tb/CSS/css-20201105-x86_64.iso

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

qemu-img create -f raw CSS-gradient.raw 40G

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

После загрузки системы в витруалку выполнили подготовку образа системы для модификации под свои нужды:

cl-builder-prepare -d /dev/sda1 --id CSS-Gradient

Система нас оповестила, что подготовка завершена:

Затем выполнили:

cl-builder-update

Внимательно убедившись, что все настройки нас удовлетворяют, конкретно в нашем случае оказались достаточно дефолтных.

Подтвердили введя "Yes" и система обновила образ до последнего, в нашем случае - по минимуму, если образ CSS с которого выполнена загрузка был бы старый, cl-builder подтянул бы необходимое.

После чего:

chroot /run/calculate/mount/CSS-Gradient/ /bin/bash

...и для удобства:

export PS1="(new) ${PS1}"

Просматриваем наличие ядер в системе:

cl-kernel --kver list

* 5.4.57-calculate *

В системе установлено только старое ядро, поэтому будем собирать из исходников, для чего выберем одно из доступных, которое найдём при помощи

eix calculate-sources

В наличии из ветки 5.4 только 5.4.74 как наиболее свежее, поэтому маскируем более ранние, для чего создаём каталог /etc/portage/package.mask и записываем туда файл масок.

mkdir /etc/portage/package.mask

echo "> /etc/portage/package.mask/custom

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

eix calculate-sources

Собственно вот скриншот виртуалки:

Обновляем систему:

cl-update

...и проверяем доступные ядра:

cl-kernel --kver list

* 5.4.72-gentoo

* 5.4.57-calculate *

Но нам нужно ядро calculate, поэтому проверяем доступное ядро:

emerge -s sys-kernel/calculate-sources

По умолчанию предлагается последнее 5.9.3,

которое мы не проверяли на работоспособность, а gentoo-шное 5.4.72 работает без проблем, поэтому в /etc/portage/package.mask/custom добавляем >sys-kernel/calculate-sources-5.4.74, чтобы ограничить выбор одной версией:

nano /etc/portage/package.mask/custom

получилось, что в файле /etc/portage/package.mask/custom содержится вот это:
>sys-kernel/calculate-sources-5.4.74
<sys-kernel/calculate-sources-5.4.74

Нужная версия стала доступной, далее выполняем повторно

cl-update

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

Осталось сгенерировать образ и записать его на флешку. Для этого выходим из окружения создаваемого образа (Ctrl+D) и уже из основной системы выполняем:

cl-builder-image --compress xz --isohybrid ON

Который создаёт образ с именем по умолчанию, который кладёт в каталог по умолчанию, что нам не принципиально.

Поскольку всё действо творится в виртуалке, а ISO-шник с которого мы сию виртуальную машину запустили автоматом не обновляется, да и флешку мы забыли подмонтировать к виртуальной машине, постольку копируем образ на виртуальный диск в какой-нибудь из каталогов, да например /root/, который после перезагрузки останется неизменным. Для этого просто копируем его из оперативки на образ диска, который создал cl-builder-prepare. Ну лентяй я:

cp /var/calculate/linux/css-20201111-x86_64.iso /run/calculate/mount/CSS-Gradient/root/

А потом перезагрузив виртуалку с подцепленной флешкой

qemu-system-x86_64 \-smp 4 \-vnc 192.168.1.240:7 \-m 8192 \-enable-kvm \-boot order=cd,menu=on,reboot-timeout=20 \-hda /mnt/8tb/CSS/CSS-gradient.raw \-hdb /dev/sdd \-cdrom /mnt/8tb/CSS/css-20201105-x86_64.iso

пишем при помощи dd образ на неё (помните флешку /dev/sdd, которая после загрузки виртуалки стала в ней /dev/sdb) из подмонтированного образа сборки, в который ранее мы записали ISO-шник:

mount /dev/sda1 /mnt

cd /mnt/root

dd if=css-20201111-x86_64.iso of=/dev/sdb bs=8MB;sync

Гасим виртуалку (halt -p), вставляем флешку в рабочую машину, которая не хотела работать со штатным диструбутивом CSS и наслаждаемся доступом в сеть.

Финиш

Собственно, как вы могли заметить, ничего особо сложного в данной процедуре не оказалось, CSS внезапно оказался вполне дружелюбен к пользователю и не так страшен, как многие подозревают. На очереди формирование полноценного дистрибутива под собственные нужды, с почтой, DNS и прочими облаками и сервисами, но это уже другая история... ;-)

Использованные источники

https://old.calculate-linux.org/main/ru/calculate-builder

https://wiki.calculate-linux.org/ru/kernel

https://wiki.gentoo.org/wiki/Handbook:X86/Full/Portage/ru

https://wiki.gentoo.org/wiki/Handbook:X86/Full/Installation/ru#Chrooting

Источник: habr.com
К списку статей
Опубликовано: 11.11.2020 14:20:14
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Настройка linux

Системное администрирование

Calculate scratch server

Виртуальная машина

Настройка

Категории

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

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru