ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] libguestfs
@ 2014-11-18 15:48 Alexey Shabalin
  2014-11-20  7:16 ` Alexey Gladkov
  0 siblings, 1 reply; 24+ messages in thread
From: Alexey Shabalin @ 2014-11-18 15:48 UTC (permalink / raw)
  To: ALT Linux Team development discussions, Michael Shigorin, legion,
	Валентин
	Росавицкий,
	Anton Gorlov

Вечер добрый.
Опишу прогресс над адаптацией libguestfs для ALTLinux.
И прошу знатоков подсказать где я могу ошибаться.

В двух словах, как работают утилиты из состава libguestfs.
Для работы утилит, запускается виртуальная машина с помощью qemu, в
параметрах которой указывается ядро и образ initrd, внутри которого
установлена минимальная система и утилиты для работы с файловыми
системами (fsck.*, resizefs и т.п.). Внутри этой виртуалки также
запускается демон guestfsd который принимает указания снаружи от
утилит и выполняет необходимые действия.
Основная проблема - подготовить этот самый initrd (appliance).
В fedora для изготовления appliance используется проект supermin
(бывший febootstrap). В принципе я адаптировал supermin для работы с
apt-rpm, но решил отказаться от этого. Мне больше понравился подход
opensuse, где initrd (appliance) генерируется с помощью
mkinitrd(правда модифицированных).

Что сделано:
- используется make-initrd из master
git://git.altlinux.org/people/legion/packages/make-initrd.git
- для нового  make-initrd также нужен и новый sysvinit-initramfs из
master git://git.altlinux.org/people/legion/packages/sysvinit.git

- копируем текущее ядро в /usr/lib64/guestfs/vmlinuz.x86_64
- chmod 644 /usr/lib64/guestfs/vmlinuz.x86_64
- изготавливаем initrd:
   в /etc/initrd.mk.d/guestfs.mk
--------
IMAGEFILE = /usr/$(LIBNAME)/guestfs/initramfs.$(ARCH).img
FEATURES += guestfs
--------

  в /usr/share/make-initrd/features/guestfs/config.mk
--------
DISABLE_FEATURES += plymouth
FEATURES += devmapper qemu # в дальнейшем также понадобятся mdadm lvm btrfs
GUESTFS_DATADIR = \
        $(FEATURESDIR)/guestfs/data


GUESTFS_FILES   = \
        /usr/sbin/guestfsd \
        /usr/sbin/parted \
        $(wildcard /sbin/mount*) \
        $(wildcard /sbin/fsck*) \
        $(wildcard /sbin/mkfs*) \
        $(wildcard /sbin/*resize*) \
        $(wildcard /sbin/*disk)
--------

  в /usr/share/make-initrd/features/guestfs/rules.mk

--------
MODULES_ADD += drivers/scsi/ drivers/ata/ fs/

guestfs:
        @echo "Adding guestfs support ..."
        @put-tree "$(ROOTDIR)" $(GUESTFS_DATADIR)
        @put-file "$(ROOTDIR)" $(GUESTFS_FILES)

pack: guestfs
--------

в /usr/share/make-initrd/features/guestfs/data/etc/rc.d/init.d/guestfsd
--------
#!/bin/sh
### BEGIN INIT INFO
# Provides:            guestfsd
# Required-Start:      uevent
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:       3 4 5
# Default-Stop:
# Short-Description:   guestfsd daemon
### END INIT INFO

. /etc/init.d/template

NAME=guestfsd
PIDFILE=/var/run/$NAME.pid
LOCKFILE=/var/lock/subsys/$NAME

start() {

#       start_daemon --lockfile "$LOCKFILE" --pidfile "$PIDFILE"
--displayname "$NAME" -- $NAME
        start_daemon --displayname "$NAME" -- $NAME
        RETVAL=$?
        return $RETVAL

}

stop()
{
        stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE"
--no-announce -- $NAME
        RETVAL=$?
        return $RETVAL
}

restart()
{
        stop
        start
}

switch "${1-}"

--------

  в /usr/share/make-initrd/features/guestfs/data/etc/udev/rules.d
-----------
# For libguestfs, create /dev/disk/guestfs/<serial>
# and /dev/disk/guestfs/<serial><partnum>

KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", ENV{ID_SCSI_SERIAL}=="?*", \
  SYMLINK+="disk/guestfs/$env{ID_SCSI_SERIAL}"
KERNEL=="sd*", ENV{DEVTYPE}=="partition", ENV{ID_SCSI_SERIAL}=="?*", \
  SYMLINK+="disk/guestfs/$env{ID_SCSI_SERIAL}%n"

# As written, it's likely the above only works with virtio-scsi
# because ID_SCSI_SERIAL is specific to the output of the 'scsi_id'
# program.  The following will not work because ID_SERIAL contains
# some unwanted text.

#KERNEL=="vd*[!0-9]", ATTRS{serial}=="?*", ENV{ID_SERIAL}="$attr{serial}", \
#  SYMLINK+="disk/guestfs/$env{ID_SERIAL}"
#KERNEL=="vd*[0-9]", ATTRS{serial}=="?*", ENV{ID_SERIAL}="$attr{serial}", \
#  SYMLINK+="disk/guestfs/$env{ID_SERIAL}%n"

-----------

- make-initrd
- chmod 644 /usr/lib64/guestfs/initramfs.x86_64.img

 initrd (appliance) готов. приступаем к тестированию.

export LIBGUESTFS_BACKEND=direct
libguestfs-test-tool
и загрузка виртуалки замерзает на этапе старта udev:
INIT: version 2.88 booting
INIT: Entering runlevel: 3
Mounting filesystem [/dev]: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m ]
Mounting filesystem [/proc]: \x1b[72G[
\x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m ]
Mounting filesystem [/sys]: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m ]
Mounting filesystem [/run]: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m ]
Mounting filesystem [/dev/pts]: \x1b[72G[
\x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m ]
Parsing cmdline arguments: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m ]
Creating /etc/fstab: S30fstab: Root device unspecified.
\x1b[72G[\x1b[1m\x1b[31mFAILED\x1b[39;49m\x1b[0;10m]
Starting lo interface: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m ]
Starting timerd service: \x1b[72G[ \x1b[1m\x1b[32mDONE\x1b[39;49m\x1b[0;10m ]
Loading modules before udev:
\x1b[72G[\x1b[1m\x1b[31mFAILED\x1b[39;49m\x1b[0;10m]
Starting udevd service:  Сигнал таймера

Вот тут я не пойму почему udev не стартует, и прошу подсказки, с чем
это может быть связано.
Хочется для начала добиться работы qemu с указанием ядра и initrd,
хоть и без guestfsd.
/usr/bin/qemu-kvm \
    -global virtio-blk-pci.scsi=off \
    -nodefconfig \
    -enable-fips \
    -nodefaults \
    -display none \
    -cpu host \
    -machine accel=kvm:tcg \
    -m 500 \
    -no-reboot \
    -rtc driftfix=slew \
    -no-hpet \
    -global kvm-pit.lost_tick_policy=discard \
    -kernel /usr/lib64/guestfs/vmlinuz.x86_64 \
    -initrd /usr/lib64/guestfs/initramfs.x86_64.img \
    -device virtio-scsi-pci,id=scsi \
    -drive file=/tmp/.private/shabalin/libguestfsrjal5E/scratch.1,cache=unsafe,format=raw,id=hd0,if=none
\
    -device scsi-hd,drive=hd0 \
    -device virtio-serial-pci \
    -serial stdio \
    -device sga \
    -chardev socket,path=/tmp/.private/shabalin/libguestfsrjal5E/guestfsd.sock,id=channel0
\
    -device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 \
    -append 'panic=1 console=ttyS0 udevtimeout=6000
udev.event-timeout=6000 no_timer_check acpi=off printk.time=1
cgroup_disable=memory selinux=0 guestfs_verbose=1 TERM=xterm'


Проблемы упаковки пока тоже в отдаленном будущем.

-- 
Alexey Shabalin


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-18 15:48 [devel] libguestfs Alexey Shabalin
@ 2014-11-20  7:16 ` Alexey Gladkov
  2014-11-27 12:17   ` Alexey Shabalin
  0 siblings, 1 reply; 24+ messages in thread
From: Alexey Gladkov @ 2014-11-20  7:16 UTC (permalink / raw)
  To: devel

18.11.2014 18:48, Alexey Shabalin пишет:
> export LIBGUESTFS_BACKEND=direct
> libguestfs-test-tool
> и загрузка виртуалки замерзает на этапе старта udev:
> INIT: version 2.88 booting
> INIT: Entering runlevel: 3
> ...
> Вот тут я не пойму почему udev не стартует, и прошу подсказки, с чем
> это может быть связано.

Фикс в make-initrd добавил. Сейчас новый udev должен стартовать.

> Проблемы упаковки пока тоже в отдаленном будущем.

Думаю в будущем это можно будет оформить в виде фичи.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-20  7:16 ` Alexey Gladkov
@ 2014-11-27 12:17   ` Alexey Shabalin
  2014-11-27 12:48     ` Alexey Gladkov
  2014-11-27 13:53     ` Eugene Prokopiev
  0 siblings, 2 replies; 24+ messages in thread
From: Alexey Shabalin @ 2014-11-27 12:17 UTC (permalink / raw)
  To: ALT Linux Team development discussions

20 ноября 2014 г., 10:16 пользователь Alexey Gladkov
<legion@altlinux.ru> написал:
> 18.11.2014 18:48, Alexey Shabalin пишет:
>> export LIBGUESTFS_BACKEND=direct
>> libguestfs-test-tool
>> и загрузка виртуалки замерзает на этапе старта udev:
>> INIT: version 2.88 booting
>> INIT: Entering runlevel: 3
>> ...
>> Вот тут я не пойму почему udev не стартует, и прошу подсказки, с чем
>> это может быть связано.
>
> Фикс в make-initrd добавил. Сейчас новый udev должен стартовать.

Ок, я получил рабочий initrd. Утилиты guestfs работают. Конечно
"сложные" утилиты, типа конвертации, надо проверять на совместимость с
ALTLinux отдельно. Патчи приветствуются.

>> Проблемы упаковки пока тоже в отдаленном будущем.
>
> Думаю в будущем это можно будет оформить в виде фичи.

А вот теперь возникают проблемы упаковки.
Наш make-initrd не предполагает запуска в сборочнице. Возможен запуск
только в живой системе и от root.
Если переложить проблемы создания initrd на пользователя, то
пользователю придется установить в систему множество "ненужных"
пакетов, которые нужны внутри initrd для guestfs, но не нужны самому
пользователю.
Конечно самый простой способ, это сгенерировать initrd локально,
скопировать ядро и уложить это все в src.rpm.
Но было бы хорошо, если для make-initrd можно было указать корневую
ФС, путь для генерируемого initrd, путь к конфигу, тогда получится
сгенерировать в сборочнице.

-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 12:17   ` Alexey Shabalin
@ 2014-11-27 12:48     ` Alexey Gladkov
  2014-11-27 13:53     ` Eugene Prokopiev
  1 sibling, 0 replies; 24+ messages in thread
From: Alexey Gladkov @ 2014-11-27 12:48 UTC (permalink / raw)
  To: devel

27.11.2014 15:17, Alexey Shabalin пишет:
> Но было бы хорошо, если для make-initrd можно было указать корневую
> ФС, путь для генерируемого initrd, путь к конфигу, тогда получится
> сгенерировать в сборочнице.

Всё равно не получится т.к. /lib/modules имеет права 700. Ты не
сможешь скопировать модули ядра для ФС.

Указать место куда положить образ и указать конфиг можно:

-c, --config=FILE      set custom config file;
-b, --bootdir=DIR      set boot directory (default: /boot);

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 12:17   ` Alexey Shabalin
  2014-11-27 12:48     ` Alexey Gladkov
@ 2014-11-27 13:53     ` Eugene Prokopiev
  2014-11-27 14:15       ` Alexey Shabalin
  2014-11-27 14:50       ` Alexey Gladkov
  1 sibling, 2 replies; 24+ messages in thread
From: Eugene Prokopiev @ 2014-11-27 13:53 UTC (permalink / raw)
  To: ALT Linux Team development discussions

> А вот теперь возникают проблемы упаковки.
> Наш make-initrd не предполагает запуска в сборочнице. Возможен запуск
> только в живой системе и от root.

А как же тогда он умудряется работать в профиле mkimage -
http://git.altlinux.org/people/enp/packages/mkimage-profile-live-minimal-example.git?p=mkimage-profile-live-minimal-example.git;a=blob;f=scripts.d/01-make-initrd;h=203ed81e28505f13a780a435fb81162ed68290ac;hb=460d1033becf9ca5c5be48126354c1e2244543b0
?

> Если переложить проблемы создания initrd на пользователя, то
> пользователю придется установить в систему множество "ненужных"
> пакетов, которые нужны внутри initrd для guestfs, но не нужны самому
> пользователю.

А какова конечная цель? Генерить готовые образы для запуска в
виртуальной среде или делать пакеты с initrd внутри?

-- 
WBR,
Eugene Prokopiev

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 13:53     ` Eugene Prokopiev
@ 2014-11-27 14:15       ` Alexey Shabalin
  2014-11-27 14:29         ` Michael Shigorin
  2014-11-27 18:04         ` Eugene Prokopiev
  2014-11-27 14:50       ` Alexey Gladkov
  1 sibling, 2 replies; 24+ messages in thread
From: Alexey Shabalin @ 2014-11-27 14:15 UTC (permalink / raw)
  To: ALT Linux Team development discussions

27 ноября 2014 г., 16:53 пользователь Eugene Prokopiev <enp@itx.ru> написал:
>> А вот теперь возникают проблемы упаковки.
>> Наш make-initrd не предполагает запуска в сборочнице. Возможен запуск
>> только в живой системе и от root.
>
> А как же тогда он умудряется работать в профиле mkimage -
> http://git.altlinux.org/people/enp/packages/mkimage-profile-live-minimal-example.git?p=mkimage-profile-live-minimal-example.git;a=blob;f=scripts.d/01-make-initrd;h=203ed81e28505f13a780a435fb81162ed68290ac;hb=460d1033becf9ca5c5be48126354c1e2244543b0
> ?

Я как бы всех тонкостей не знаю, вот и выясняю, как запустить
make-initrd внутри хэшера на сборочном сервере.

>> Если переложить проблемы создания initrd на пользователя, то
>> пользователю придется установить в систему множество "ненужных"
>> пакетов, которые нужны внутри initrd для guestfs, но не нужны самому
>> пользователю.
>
> А какова конечная цель? Генерить готовые образы для запуска в
> виртуальной среде или делать пакеты с initrd внутри?

Конечная цель - получить в директории %_libdir/guestfs два файлика:
vmlinuz.${ARCH}
initramfs.${ARCH}.img
мне кажется самым удобным упаковать их в rpm-пакет guestfs-appliance

-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 14:15       ` Alexey Shabalin
@ 2014-11-27 14:29         ` Michael Shigorin
  2014-11-27 14:36           ` Alexey Shabalin
  2014-11-27 18:04         ` Eugene Prokopiev
  1 sibling, 1 reply; 24+ messages in thread
From: Michael Shigorin @ 2014-11-27 14:29 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Thu, Nov 27, 2014 at 06:15:12PM +0400, Alexey Shabalin wrote:
> >> Наш make-initrd не предполагает запуска в сборочнице.
> >> Возможен запуск только в живой системе и от root.
> > А как же тогда он умудряется работать в профиле mkimage - ?
> Я как бы всех тонкостей не знаю, вот и выясняю, как запустить
> make-initrd внутри хэшера на сборочном сервере.

Как вариант, в %post при установке libguestfs?

-- 
 ---- WBR, Michael Shigorin / http://altlinux.org
  ------ http://opennet.ru / http://anna-news.info


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 14:29         ` Michael Shigorin
@ 2014-11-27 14:36           ` Alexey Shabalin
  0 siblings, 0 replies; 24+ messages in thread
From: Alexey Shabalin @ 2014-11-27 14:36 UTC (permalink / raw)
  To: ALT Linux Team development discussions

27 ноября 2014 г., 17:29 пользователь Michael Shigorin
<mike@altlinux.org> написал:
> On Thu, Nov 27, 2014 at 06:15:12PM +0400, Alexey Shabalin wrote:
>> >> Наш make-initrd не предполагает запуска в сборочнице.
>> >> Возможен запуск только в живой системе и от root.
>> > А как же тогда он умудряется работать в профиле mkimage - ?
>> Я как бы всех тонкостей не знаю, вот и выясняю, как запустить
>> make-initrd внутри хэшера на сборочном сервере.
>
> Как вариант, в %post при установке libguestfs?
Так я и говорю, тогда в системе должно стоять много лишних пакетов
(поддержка всех возможных ФС и т.п.). Поэтому хотелось бы запустить
make-initrd в сборочнице, и результат упаковать в rpm.

-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 13:53     ` Eugene Prokopiev
  2014-11-27 14:15       ` Alexey Shabalin
@ 2014-11-27 14:50       ` Alexey Gladkov
  2014-11-27 17:38         ` Eugene Prokopiev
  1 sibling, 1 reply; 24+ messages in thread
From: Alexey Gladkov @ 2014-11-27 14:50 UTC (permalink / raw)
  To: devel

27.11.2014 16:53, Eugene Prokopiev пишет:
>> А вот теперь возникают проблемы упаковки.
>> Наш make-initrd не предполагает запуска в сборочнице. Возможен запуск
>> только в живой системе и от root.
> 
> А как же тогда он умудряется работать в профиле mkimage -
> http://git.altlinux.org/people/enp/packages/mkimage-profile-live-minimal-example.git?p=mkimage-profile-live-minimal-example.git;a=blob;f=scripts.d/01-make-initrd;h=203ed81e28505f13a780a435fb81162ed68290ac;hb=460d1033becf9ca5c5be48126354c1e2244543b0
> ?

Обратите внимание на строчки 3 и 4.

Что из модулей положит make-initrd, если autodetect выключен и явно
никаких модулей не перечислено ? :)

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 14:50       ` Alexey Gladkov
@ 2014-11-27 17:38         ` Eugene Prokopiev
  2014-11-27 18:05           ` Alexey Gladkov
  0 siblings, 1 reply; 24+ messages in thread
From: Eugene Prokopiev @ 2014-11-27 17:38 UTC (permalink / raw)
  To: ALT Linux Team development discussions

27 ноября 2014 г., 17:50 Alexey Gladkov написал:

> Что из модулей положит make-initrd, если autodetect выключен и явно
> никаких модулей не перечислено ? :)

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

Ну а в приведенном выше примере это проблемы пропагатора, которому все
равно приходится скармливать список модулей. Так что если бы
make-initrd еще умел монтировать корень из файла на предварительно
смонтированном разделе, от пропагатора во многих случаях можно было бы
отказаться - и мы как-то это уже обсуждали :)

-- 
WBR,
Eugene Prokopiev

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 14:15       ` Alexey Shabalin
  2014-11-27 14:29         ` Michael Shigorin
@ 2014-11-27 18:04         ` Eugene Prokopiev
  2014-11-27 18:15           ` Alexey Gladkov
  1 sibling, 1 reply; 24+ messages in thread
From: Eugene Prokopiev @ 2014-11-27 18:04 UTC (permalink / raw)
  To: ALT Linux Team development discussions

27 ноября 2014 г., 17:15 Alexey Shabalin написал:

> Я как бы всех тонкостей не знаю, вот и выясняю, как запустить
> make-initrd внутри хэшера на сборочном сервере.

Вообще-то я поторопился: make-initrd использует hasher внутри себя и
именно поэтому все работает.

Проблема похожа на ту, что была в ALTSP: можно было бы не тащить с
собой сборочный инструментарий, если бы клиентский чрут можно было бы
заранее опакетить. Решение: не пакетить чрут, а собирать
соответствующий образ на этапе сборки дистрибутива ALTSP. Ограничение:
нужен именно отдельный дистрибутив, на набор пакетов он уже не
раскладывается.

-- 
WBR,
Eugene Prokopiev

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 17:38         ` Eugene Prokopiev
@ 2014-11-27 18:05           ` Alexey Gladkov
  2014-11-28 16:54             ` Alexey Shabalin
  0 siblings, 1 reply; 24+ messages in thread
From: Alexey Gladkov @ 2014-11-27 18:05 UTC (permalink / raw)
  To: devel

27.11.2014 20:38, Eugene Prokopiev пишет:
> 27 ноября 2014 г., 17:50 Alexey Gladkov написал:
> 
>> Что из модулей положит make-initrd, если autodetect выключен и явно
>> никаких модулей не перечислено ? :)
> 
> Виртуальное железо не так разнообразно, как настоящее, и поэтому
> список необходимых модулей можно подобрать заранее.

Речь как раз о том, что модули невозможно от пользователя скопировать.

> Ну а в приведенном выше примере это проблемы пропагатора, которому все
> равно приходится скармливать список модулей. Так что если бы
> make-initrd еще умел монтировать корень из файла на предварительно
> смонтированном разделе, от пропагатора во многих случаях можно было бы
> отказаться - и мы как-то это уже обсуждали :)

Опишите пожалуйста ещё раз (я этого обсуждения не видел), какую схему
монтирования корня хочется получить ? Лучше прямо по шагам.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 18:04         ` Eugene Prokopiev
@ 2014-11-27 18:15           ` Alexey Gladkov
  2014-11-27 18:31             ` Eugene Prokopiev
  0 siblings, 1 reply; 24+ messages in thread
From: Alexey Gladkov @ 2014-11-27 18:15 UTC (permalink / raw)
  To: devel

27.11.2014 21:04, Eugene Prokopiev пишет:
> 27 ноября 2014 г., 17:15 Alexey Shabalin написал:
> 
>> Я как бы всех тонкостей не знаю, вот и выясняю, как запустить
>> make-initrd внутри хэшера на сборочном сервере.
> 
> Вообще-то я поторопился: make-initrd использует hasher внутри себя и
> именно поэтому все работает.

Надеюсь вы описались о make-initrd. Он не использует hasher совсем :)

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 18:15           ` Alexey Gladkov
@ 2014-11-27 18:31             ` Eugene Prokopiev
  0 siblings, 0 replies; 24+ messages in thread
From: Eugene Prokopiev @ 2014-11-27 18:31 UTC (permalink / raw)
  To: ALT Linux Team development discussions

27 ноября 2014 г., 21:15 Alexey Gladkov написал:

> Надеюсь вы описались о make-initrd. Он не использует hasher совсем :)

Да, прошу прощения, хотел сказать mkimage :)

-- 
WBR,
Eugene Prokopiev

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-27 18:05           ` Alexey Gladkov
@ 2014-11-28 16:54             ` Alexey Shabalin
  2014-11-28 17:02               ` Alexey Gladkov
  2014-11-28 17:03               ` Dmitry V. Levin
  0 siblings, 2 replies; 24+ messages in thread
From: Alexey Shabalin @ 2014-11-28 16:54 UTC (permalink / raw)
  To: ALT Linux Team development discussions

27 ноября 2014 г., 21:05 пользователь Alexey Gladkov  написал:
> 27.11.2014 20:38, Eugene Prokopiev пишет:
>> 27 ноября 2014 г., 17:50 Alexey Gladkov написал:
>>
>>> Что из модулей положит make-initrd, если autodetect выключен и явно
>>> никаких модулей не перечислено ? :)
>>
>> Виртуальное железо не так разнообразно, как настоящее, и поэтому
>> список необходимых модулей можно подобрать заранее.
>
> Речь как раз о том, что модули невозможно от пользователя скопировать.

Я вот даже опасаюсь делать запрос в багзиле на пакет filesystem с
просьбой дать доступ пользователю на чтение /boot и /lib/modules.
Простого пользователя туда действительно страшно пускать?


-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-28 16:54             ` Alexey Shabalin
@ 2014-11-28 17:02               ` Alexey Gladkov
  2014-11-28 17:03               ` Dmitry V. Levin
  1 sibling, 0 replies; 24+ messages in thread
From: Alexey Gladkov @ 2014-11-28 17:02 UTC (permalink / raw)
  To: devel

28.11.2014 19:54, Alexey Shabalin пишет:
> Я вот даже опасаюсь делать запрос в багзиле на пакет filesystem с
> просьбой дать доступ пользователю на чтение /boot и /lib/modules.
> Простого пользователя туда действительно страшно пускать?

За спрос денег не берут :)

По крайней мере вопрос про /lib/modules поднимался уже несколько раз.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-28 16:54             ` Alexey Shabalin
  2014-11-28 17:02               ` Alexey Gladkov
@ 2014-11-28 17:03               ` Dmitry V. Levin
  2014-11-29 21:34                 ` Alexey Gladkov
  2014-11-29 23:37                 ` [devel] libguestfs Alexey Shabalin
  1 sibling, 2 replies; 24+ messages in thread
From: Dmitry V. Levin @ 2014-11-28 17:03 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 906 bytes --]

On Fri, Nov 28, 2014 at 08:54:35PM +0400, Alexey Shabalin wrote:
> 27 ноября 2014 г., 21:05 пользователь Alexey Gladkov  написал:
> > 27.11.2014 20:38, Eugene Prokopiev пишет:
> >> 27 ноября 2014 г., 17:50 Alexey Gladkov написал:
> >>
> >>> Что из модулей положит make-initrd, если autodetect выключен и явно
> >>> никаких модулей не перечислено ? :)
> >>
> >> Виртуальное железо не так разнообразно, как настоящее, и поэтому
> >> список необходимых модулей можно подобрать заранее.
> >
> > Речь как раз о том, что модули невозможно от пользователя скопировать.
> 
> Я вот даже опасаюсь делать запрос в багзиле на пакет filesystem с
> просьбой дать доступ пользователю на чтение /boot и /lib/modules.
> Простого пользователя туда действительно страшно пускать?

https://bugzilla.altlinux.org/show_bug.cgi?id=5969

Одного только номера достаточно, чтобы все стало ясно. :)


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-28 17:03               ` Dmitry V. Levin
@ 2014-11-29 21:34                 ` Alexey Gladkov
  2014-11-29 23:47                   ` [devel] /lib/modules/ access permissions (was: libguestfs) Dmitry V. Levin
  2014-11-29 23:37                 ` [devel] libguestfs Alexey Shabalin
  1 sibling, 1 reply; 24+ messages in thread
From: Alexey Gladkov @ 2014-11-29 21:34 UTC (permalink / raw)
  To: devel

28.11.2014 20:03, Dmitry V. Levin пишет:
> https://bugzilla.altlinux.org/show_bug.cgi?id=5969

Времена меняются и modutils и module-init-tools у нас не используются.
Сейчас модули грузятся libkmod, которая не использует fcntl.

Я думаю, что описанная в баге проблема должна быть обсуждена ещё раз.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-28 17:03               ` Dmitry V. Levin
  2014-11-29 21:34                 ` Alexey Gladkov
@ 2014-11-29 23:37                 ` Alexey Shabalin
  2014-12-05 22:59                   ` Dmitry V. Levin
  1 sibling, 1 reply; 24+ messages in thread
From: Alexey Shabalin @ 2014-11-29 23:37 UTC (permalink / raw)
  To: ALT Linux Team development discussions

28 ноября 2014 г., 20:03 пользователь Dmitry V. Levin
<ldv@altlinux.org> написал:
> On Fri, Nov 28, 2014 at 08:54:35PM +0400, Alexey Shabalin wrote:
>> 27 ноября 2014 г., 21:05 пользователь Alexey Gladkov  написал:
>> > 27.11.2014 20:38, Eugene Prokopiev пишет:
>> >> 27 ноября 2014 г., 17:50 Alexey Gladkov написал:
>> >>
>> >>> Что из модулей положит make-initrd, если autodetect выключен и явно
>> >>> никаких модулей не перечислено ? :)
>> >>
>> >> Виртуальное железо не так разнообразно, как настоящее, и поэтому
>> >> список необходимых модулей можно подобрать заранее.
>> >
>> > Речь как раз о том, что модули невозможно от пользователя скопировать.
>>
>> Я вот даже опасаюсь делать запрос в багзиле на пакет filesystem с
>> просьбой дать доступ пользователю на чтение /boot и /lib/modules.
>> Простого пользователя туда действительно страшно пускать?
>
> https://bugzilla.altlinux.org/show_bug.cgi?id=5969
>
> Одного только номера достаточно, чтобы все стало ясно. :)

я правильно понимаю, что на текущий момент есть два выхода:
1) "на секундочку" сделать доступными /boot и /lib/modules с помощью
пакета, типа rpm-build-guestfs, где в %post будет
chmod 644 /boot
chmod 644 /lib/modules

или
2) сделать своё ядро kernel-image-vm-def для работы внутри гостевых
систем, и на этапе сборки готовить initrd-имидж для guestfs, пока в
сборочнице есть доступ к ядру и модулям.

-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] /lib/modules/ access permissions (was: libguestfs)
  2014-11-29 21:34                 ` Alexey Gladkov
@ 2014-11-29 23:47                   ` Dmitry V. Levin
  2014-11-30  1:15                     ` [devel] /lib/modules/ access permissions Alexey Gladkov
  2014-12-05 13:14                     ` [devel] /lib/modules/ access permissions (was: libguestfs) Alexey Shabalin
  0 siblings, 2 replies; 24+ messages in thread
From: Dmitry V. Levin @ 2014-11-29 23:47 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 833 bytes --]

On Sun, Nov 30, 2014 at 12:34:32AM +0300, Alexey Gladkov wrote:
> 28.11.2014 20:03, Dmitry V. Levin пишет:
> > https://bugzilla.altlinux.org/show_bug.cgi?id=5969
> 
> Времена меняются и modutils и module-init-tools у нас не используются.
> Сейчас модули грузятся libkmod, которая не использует fcntl.

Да, libkmod не занимается блокировкой файлов модулей, там все просто:
	open O_RDONLY
	mmap PROT_READ MAP_PRIVATE
	finit_module
(с разновидностями вида gzdopen/gzread с последующим init_module,
если поддерживаются сжатые модули).

В ушедшем module-init-tools тоже на авось:
	open O_RDONLY
	read в цикле
	init_module

> Я думаю, что описанная в баге проблема должна быть обсуждена ещё раз.

Давайте обсудим.  Очевидно, что потенциальный DoS путем блокировки файла
модуля сейчас уже не реализуем.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] /lib/modules/ access permissions
  2014-11-29 23:47                   ` [devel] /lib/modules/ access permissions (was: libguestfs) Dmitry V. Levin
@ 2014-11-30  1:15                     ` Alexey Gladkov
  2014-12-05 13:14                     ` [devel] /lib/modules/ access permissions (was: libguestfs) Alexey Shabalin
  1 sibling, 0 replies; 24+ messages in thread
From: Alexey Gladkov @ 2014-11-30  1:15 UTC (permalink / raw)
  To: devel

30.11.2014 02:47, Dmitry V. Levin пишет:
> Да, libkmod не занимается блокировкой файлов модулей, там все просто:
> 	open O_RDONLY
> 	mmap PROT_READ MAP_PRIVATE
> 	finit_module
> (с разновидностями вида gzdopen/gzread с последующим init_module,
> если поддерживаются сжатые модули).
> 
> В ушедшем module-init-tools тоже на авось:
> 	open O_RDONLY
> 	read в цикле
> 	init_module
> 
>> Я думаю, что описанная в баге проблема должна быть обсуждена ещё раз.
> 
> Давайте обсудим.  Очевидно, что потенциальный DoS путем блокировки файла
> модуля сейчас уже не реализуем.

Сейчас я не могу придумать зачем могут быть нужны ограничения на этот
каталог. Там есть дополнительная информация о том, какие модули
находится в ядре, но с другой стороны эту же информацию можно
почерпнуть в /proc/config.gz, который доступен на чтение.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] /lib/modules/ access permissions (was: libguestfs)
  2014-11-29 23:47                   ` [devel] /lib/modules/ access permissions (was: libguestfs) Dmitry V. Levin
  2014-11-30  1:15                     ` [devel] /lib/modules/ access permissions Alexey Gladkov
@ 2014-12-05 13:14                     ` Alexey Shabalin
  2014-12-05 22:52                       ` Dmitry V. Levin
  1 sibling, 1 reply; 24+ messages in thread
From: Alexey Shabalin @ 2014-12-05 13:14 UTC (permalink / raw)
  To: ALT Linux Team development discussions

30 ноября 2014 г., 2:47 пользователь Dmitry V. Levin <ldv@altlinux.org> написал:
> On Sun, Nov 30, 2014 at 12:34:32AM +0300, Alexey Gladkov wrote:
>> 28.11.2014 20:03, Dmitry V. Levin пишет:
>> > https://bugzilla.altlinux.org/show_bug.cgi?id=5969
>>
>> Времена меняются и modutils и module-init-tools у нас не используются.
>> Сейчас модули грузятся libkmod, которая не использует fcntl.
>
> Да, libkmod не занимается блокировкой файлов модулей, там все просто:
>         open O_RDONLY
>         mmap PROT_READ MAP_PRIVATE
>         finit_module
> (с разновидностями вида gzdopen/gzread с последующим init_module,
> если поддерживаются сжатые модули).
>
> В ушедшем module-init-tools тоже на авось:
>         open O_RDONLY
>         read в цикле
>         init_module
>
>> Я думаю, что описанная в баге проблема должна быть обсуждена ещё раз.
>
> Давайте обсудим.  Очевидно, что потенциальный DoS путем блокировки файла
> модуля сейчас уже не реализуем.

Привели ли обсуждения к каким-нибудь результатам? Ждать ли каких-либо
изменений в пакете filesystem?


-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] /lib/modules/ access permissions (was: libguestfs)
  2014-12-05 13:14                     ` [devel] /lib/modules/ access permissions (was: libguestfs) Alexey Shabalin
@ 2014-12-05 22:52                       ` Dmitry V. Levin
  0 siblings, 0 replies; 24+ messages in thread
From: Dmitry V. Levin @ 2014-12-05 22:52 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1471 bytes --]

On Fri, Dec 05, 2014 at 05:14:36PM +0400, Alexey Shabalin wrote:
> 30 ноября 2014 г., 2:47 пользователь Dmitry V. Levin <ldv@altlinux.org> написал:
> > On Sun, Nov 30, 2014 at 12:34:32AM +0300, Alexey Gladkov wrote:
> >> 28.11.2014 20:03, Dmitry V. Levin пишет:
> >> > https://bugzilla.altlinux.org/show_bug.cgi?id=5969
> >>
> >> Времена меняются и modutils и module-init-tools у нас не используются.
> >> Сейчас модули грузятся libkmod, которая не использует fcntl.
> >
> > Да, libkmod не занимается блокировкой файлов модулей, там все просто:
> >         open O_RDONLY
> >         mmap PROT_READ MAP_PRIVATE
> >         finit_module
> > (с разновидностями вида gzdopen/gzread с последующим init_module,
> > если поддерживаются сжатые модули).
> >
> > В ушедшем module-init-tools тоже на авось:
> >         open O_RDONLY
> >         read в цикле
> >         init_module
> >
> >> Я думаю, что описанная в баге проблема должна быть обсуждена ещё раз.
> >
> > Давайте обсудим.  Очевидно, что потенциальный DoS путем блокировки файла
> > модуля сейчас уже не реализуем.
> 
> Привели ли обсуждения к каким-нибудь результатам? Ждать ли каких-либо
> изменений в пакете filesystem?

Слегка обсудили только один вопрос (о блокировках файлов модулей)
и пришли к выводу, что блокировок уже нет.

Вопрос о доступе к vmlinuz (и полученному из него System.map) и модулям
с точки зрения автоматизации атаки на ядро не обсуждался совсем.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [devel] libguestfs
  2014-11-29 23:37                 ` [devel] libguestfs Alexey Shabalin
@ 2014-12-05 22:59                   ` Dmitry V. Levin
  0 siblings, 0 replies; 24+ messages in thread
From: Dmitry V. Levin @ 2014-12-05 22:59 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1827 bytes --]

On Sun, Nov 30, 2014 at 03:37:58AM +0400, Alexey Shabalin wrote:
> 28 ноября 2014 г., 20:03 пользователь Dmitry V. Levin
> <ldv@altlinux.org> написал:
> > On Fri, Nov 28, 2014 at 08:54:35PM +0400, Alexey Shabalin wrote:
> >> 27 ноября 2014 г., 21:05 пользователь Alexey Gladkov  написал:
> >> > 27.11.2014 20:38, Eugene Prokopiev пишет:
> >> >> 27 ноября 2014 г., 17:50 Alexey Gladkov написал:
> >> >>
> >> >>> Что из модулей положит make-initrd, если autodetect выключен и явно
> >> >>> никаких модулей не перечислено ? :)
> >> >>
> >> >> Виртуальное железо не так разнообразно, как настоящее, и поэтому
> >> >> список необходимых модулей можно подобрать заранее.
> >> >
> >> > Речь как раз о том, что модули невозможно от пользователя скопировать.
> >>
> >> Я вот даже опасаюсь делать запрос в багзиле на пакет filesystem с
> >> просьбой дать доступ пользователю на чтение /boot и /lib/modules.
> >> Простого пользователя туда действительно страшно пускать?
> >
> > https://bugzilla.altlinux.org/show_bug.cgi?id=5969
> >
> > Одного только номера достаточно, чтобы все стало ясно. :)
> 
> я правильно понимаю, что на текущий момент есть два выхода:
> 1) "на секундочку" сделать доступными /boot и /lib/modules с помощью
> пакета, типа rpm-build-guestfs, где в %post будет
> chmod 644 /boot
> chmod 644 /lib/modules

Если сделать 644 на каталоги, то лучше точно не станет. :)
Тогда уж a+x.

> или
> 2) сделать своё ядро kernel-image-vm-def для работы внутри гостевых
> систем, и на этапе сборки готовить initrd-имидж для guestfs, пока в
> сборочнице есть доступ к ядру и модулям.

Не стоит собирать свое ядро - оно протухнет.

Еще один вариант, если доступа к каталогам /boot и /lib/modules нет -
скопировать (cp -al) оттуда нужные файлы в %post соответствующего пакета.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2014-12-05 22:59 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-18 15:48 [devel] libguestfs Alexey Shabalin
2014-11-20  7:16 ` Alexey Gladkov
2014-11-27 12:17   ` Alexey Shabalin
2014-11-27 12:48     ` Alexey Gladkov
2014-11-27 13:53     ` Eugene Prokopiev
2014-11-27 14:15       ` Alexey Shabalin
2014-11-27 14:29         ` Michael Shigorin
2014-11-27 14:36           ` Alexey Shabalin
2014-11-27 18:04         ` Eugene Prokopiev
2014-11-27 18:15           ` Alexey Gladkov
2014-11-27 18:31             ` Eugene Prokopiev
2014-11-27 14:50       ` Alexey Gladkov
2014-11-27 17:38         ` Eugene Prokopiev
2014-11-27 18:05           ` Alexey Gladkov
2014-11-28 16:54             ` Alexey Shabalin
2014-11-28 17:02               ` Alexey Gladkov
2014-11-28 17:03               ` Dmitry V. Levin
2014-11-29 21:34                 ` Alexey Gladkov
2014-11-29 23:47                   ` [devel] /lib/modules/ access permissions (was: libguestfs) Dmitry V. Levin
2014-11-30  1:15                     ` [devel] /lib/modules/ access permissions Alexey Gladkov
2014-12-05 13:14                     ` [devel] /lib/modules/ access permissions (was: libguestfs) Alexey Shabalin
2014-12-05 22:52                       ` Dmitry V. Levin
2014-11-29 23:37                 ` [devel] libguestfs Alexey Shabalin
2014-12-05 22:59                   ` Dmitry V. Levin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git