LXC на SE 1.6

Skye

New member
Сообщения
3
#1
Доброго дня.

Есть SE 1.6, установлены все пакеты, требуемые для LXC. Настройки сети сделаны по мануалу. Возникло несколько вопросов:

1. При создании контейнера не находятся скрипты checkroot.sh, umountfs, hwclockfirst.sh, если с последним понятно (попытка действий со службами, которых нет), то про первые два непонятно почему так. Код ниже, в п.2.

2. При создании контенера не подтягивается sources.list корректно:
Код:
$ sudo lxc-create -t astralinux-se -n container-2
debootstrap является /usr/sbin/debootstrap
Checking cache download in /var/cache/lxc/astra/rootfs-smolensk-amd64 ...
Copying rootfs to /var/lib/lxc/container-2/rootfs...Generating locales (this might take a while)...
  en_US.UTF-8... done
  ru_RU.UTF-8... done
Generation complete.
update-rc.d: error: cannot find a LSB script for checkroot.sh
update-rc.d: error: cannot find a LSB script for umountfs
update-rc.d: error: cannot find a LSB script for hwclockfirst.sh

Current default time zone: 'Etc/UTC'
Local time is now:      Thu Oct 17 08:39:09 UTC 2019.
Universal Time is now:  Thu Oct 17 08:39:09 UTC 2019.

Пол:1 file:/mnt/iso smolensk InRelease
Игн:1 file:/mnt/iso smolensk InRelease
Пол:2 file:/mnt/iso2 smolensk InRelease
Игн:2 file:/mnt/iso2 smolensk InRelease
Пол:3 file:/mnt/iso smolensk Release
Игн:3 file:/mnt/iso smolensk Release
Здесь нужно добавить, что репозиторий обоих дисков лежит на физически другой машине в виде iso и примонтирован в fstab по nfs. Конфиг sources.list:
Код:
deb file:///mnt/iso smolensk contrib main non-free
deb file:///mnt/iso2 smolensk contrib main non-free
Конфиг fstab:
Код:
192.168.250.11:/mnt/iso /mnt/iso        nfs,iso9660 user,noauto 0 0
192.168.250.11:/mnt/iso2 /mnt/iso2      nfs,iso9660 user,noauto 0 0
Если делать просто apt-get update, ошибок не возникает:
Код:
$ sudo apt-get update
Пол:1 file:/mnt/iso smolensk InRelease
Игн:1 file:/mnt/iso smolensk InRelease
Пол:2 file:/mnt/iso2 smolensk InRelease [5 258 B]
Пол:2 file:/mnt/iso2 smolensk InRelease [5 258 B]
Пол:3 file:/mnt/iso smolensk Release [5 014 B]
Пол:3 file:/mnt/iso smolensk Release [5 014 B]
Чтение списков пакетов… Готово
Далее, после автоматического удаления лишних пакетов имеется такая ошибка:
Код:
/bin/bash: /usr/sbin/pdp-init-fs: Нет такого файла или каталога
Соответственно, при попытке запуска контейнера:
Код:
$ sudo lxc-start -n container-2
lxc-start: monitor.c: lxc_monitor_open: 218 Failed to connect to monitor socket. Retrying in 10 ms.
lxc-start: monitor.c: lxc_monitor_open: 218 Failed to connect to monitor socket. Retrying in 50 ms.
lxc-start: monitor.c: lxc_monitor_open: 218 Failed to connect to monitor socket. Retrying in 100 ms.
lxc-start: monitor.c: lxc_monitor_open: 223 Failed to connect to monitor socket: Connection refused.
lxc-start: tools/lxc_start.c: main: 366 The container failed to start.
lxc-start: tools/lxc_start.c: main: 368 To get more details, run the container in foreground mode.
lxc-start: tools/lxc_start.c: main: 370 Additional information can be obtained by setting the --logfile and --logpriority options.
Полный вывод во вложении log.txt. Пакеты все установлены с дисков SE, сторонние репозитории не использовались.
 

Вложения

  • 26 КБ Просмотры: 312

Skye

New member
Сообщения
3
#3
Разбираться конкретно с вашими логами - долго.
Посмотрите здесь: контейнеры LXC - может там что-то подскажет.
Статья крутая, мне ее когда то не хватало, спасибо.

Но проблема тут в том, что из шаблона ubuntu контейнер создается верно и корректно (прямо сейчас собрал по Вашей статье):
Код:
$ sudo lxc-info  -n C1
Name:           C1
State:          RUNNING
PID:            5219
IP:             10.10.10.100
CPU use:        1.98 seconds
BlkIO use:      627.09 MiB
Memory use:     96.15 MiB
KMem use:       13.07 MiB
Link:           macvlan0
 TX bytes:      0 bytes
 RX bytes:      876 bytes
 Total bytes:   876 bytes
А вот из шаблона мануала не собирается. Подозреваю, что скрипт шаблона astralinux-se как то не так обрабатывает пути apt-get update, похоже, что именно по причине некорректно указанного репозитория в сети...
 

Skye

New member
Сообщения
3
#4
Ну и маленькое дополнение. Попробовал собрать base image астры se для docker (развернутый на ubuntu 16), debootstrap отработал без ошибок, но при помещении контейнера в докер и попытке его запуска, говорит, что переменная $PATH не определена, соответственно, не запускает контейнер. Показать полную ошибку не смогу, виртуалку снес раньше, чем попал на форум, к сожалению.
 

magrif

New member
Сообщения
11
#5
Я подключал образы дисков следующим скриптом:
Bash:
mkdir /media/{smol,smoldev}
sudo mount -t iso9660 -o loop /devel-smolensk-1.6.iso /media/smoldev/
sudo mount -t iso9660 -o loop /smolensk-1.6.iso /media/smol
echo "deb file:///media/smol smolensk contrib main non-free" >> /etc/apt/sources.list
echo "deb file:///media/smoldev smolensk contrib main non-free" >> /etc/apt/sources.list
Для успешного создания контейнера я в /usr/share/lxc/templates/lxc-astralinux-se добавил в функции write_sourceslist код, чтобы пакеты успешно находились в контейнере:
Bash:
mkdir ${rootfs}/media/{smol,smoldev}
mount --bind /media/smol/ ${rootfs}/media/smol/
mount --bind /media/smoldev/ ${rootfs}/media/smoldev/
Там же в функции post_process в строчке с DEBIAN_FRONTEND=noninteractive добавил пакет gawk, который в /usr/sbin/pdp-init-fs используется, но изначально не ставится.
Также в /usr/sbin/pdp-init-fs необходимо значение /sys/module/parsec/parameters/max_ilev, которого в момент сборки контейнера нет. Я создал его, добавив строчки перед chroot "${rootfs}" /bin/bash -c "/usr/sbin/pdp-init-fs"
Bash:
chroot "${rootfs}" /bin/bash -c "mkdir -p /sys/module/parsec/parameters/"
chroot "${rootfs}" /bin/bash -c "echo 63 > /sys/module/parsec/parameters/max_ilev"
 

Wasp

New member
Сообщения
6
#6
Я подключал образы дисков следующим скриптом:
Bash:
mkdir /media/{smol,smoldev}
sudo mount -t iso9660 -o loop /devel-smolensk-1.6.iso /media/smoldev/
sudo mount -t iso9660 -o loop /smolensk-1.6.iso /media/smol
echo "deb file:///media/smol smolensk contrib main non-free" >> /etc/apt/sources.list
echo "deb file:///media/smoldev smolensk contrib main non-free" >> /etc/apt/sources.list
Для успешного создания контейнера я в /usr/share/lxc/templates/lxc-astralinux-se добавил в функции write_sourceslist код, чтобы пакеты успешно находились в контейнере:
Bash:
mkdir ${rootfs}/media/{smol,smoldev}
mount --bind /media/smol/ ${rootfs}/media/smol/
mount --bind /media/smoldev/ ${rootfs}/media/smoldev/
Там же в функции post_process в строчке с DEBIAN_FRONTEND=noninteractive добавил пакет gawk, который в /usr/sbin/pdp-init-fs используется, но изначально не ставится.
Также в /usr/sbin/pdp-init-fs необходимо значение /sys/module/parsec/parameters/max_ilev, которого в момент сборки контейнера нет. Я создал его, добавив строчки перед chroot "${rootfs}" /bin/bash -c "/usr/sbin/pdp-init-fs"
Bash:
chroot "${rootfs}" /bin/bash -c "mkdir -p /sys/module/parsec/parameters/"
chroot "${rootfs}" /bin/bash -c "echo 63 > /sys/module/parsec/parameters/max_ilev"

Доброго времени суток!
А не могли бы поделиться скриптом templat-a?
У меня не получается запустить контейнер Astra-linux-se, постоянно возникает ошибка при создании:

dpkg: ошибка при обработке пакета parsec-base (--configure):
подпроцесс установлен сценарий post-installation возвратил код ошибки 2
И дальше всё плывет в :
/usr/sbin/pdpl-file: ошибка получения максимальной метки в системе: Нет такого файла или каталога
 

Wasp

New member
Сообщения
6
#7
UPD:
Я проигнорировал вывод /usr/share/lxc/templates/lxc-astralinux-se , и просто прошел в контейнер :
lxc-attach -n container1

Занимаюсь дальше...