Перейти к содержимому


Фото
- - - - -

Загрузка Livecd через сеть (pxe)


  • Please log in to reply
46 ответов в этой теме

#21 Peacemaker

Peacemaker

    Newbie

  • Members
  • 1 Сообщений:

Отправлено 01 Сентябрь 2011 - 16:46

Ближе всего к ответу я подобрался тут:
http://www.syslinux.org/wiki/index.php/MEMDISK#ISO_images

Однако пока загрузить образ не смог, по всей видимости у меня неверный синтаксис PXELINUX.CFG/default
Нужно как-то подсунуть ему ISO, после того как INITRD перехватил инициативу у pxelinux.0

#22 VladimirN

VladimirN

    Member

  • Posters
  • 133 Сообщений:

Отправлено 26 Сентябрь 2011 - 09:04

Ближе всего к ответу я подобрался тут:
http://www.syslinux.org/wiki/index.php/MEMDISK#ISO_images

Однако пока загрузить образ не смог, по всей видимости у меня неверный синтаксис PXELINUX.CFG/default
Нужно как-то подсунуть ему ISO, после того как INITRD перехватил инициативу у pxelinux.0


У меня в default прописано так:

label drweb
MENU LABEL Drweb 6.0 LiveCD
KERNEL /memdisk
APPEND iso
INITRD /images/antivirus/drweb-livecd-600.iso

Доходит до экрана с картинкой DrWeb и дальше не загружается.

#23 anonymous0

anonymous0

    Newbie

  • Posters
  • 4 Сообщений:

Отправлено 10 Февраль 2012 - 15:30

Тема всё ещё актуальна. Хотелось бы комментариев официальной стороны о нынешнем статусе. Есть ли какой-либо workaround?

#24 anonymous0

anonymous0

    Newbie

  • Posters
  • 4 Сообщений:

Отправлено 13 Февраль 2012 - 19:33

Попытался покопаться во внутренностях, а именно в файлике initrd. Итак, чего я там не нашёл:
  • клиента для настройки сети по DHCP (dhclient/dhcpcd). Т.е., не получится передать параметр ip=dhcp
  • утилит для работы с NFS, например, nfsmount.
  • в скриптах вроде /sbin/find_root или /linuxrc нет и намёка об обработке /dev/nfs и возможного монтирования. Есть только упоминание в одной строке в файле /sbin/find_root, но дальше идёт попытка работать с /dev/nfs как с блочным устройством, но оно вообще отсутствует. Судя по логу, полученном через COM-порт (могу выложить, если кто попросит), никаких попыток обрабатывать параметры ядра, касающиеся NFS до момента запуска /sbin/find_root вообще не производится.
Об опциях ядра вроде root=/dev/nfs, netboot=nfs или nfsroot= можно забыть, соответственно, получить загрузку по сети невозможно без кардинального допиливания initrd.

Теперь для тех, кто хотел грузить ISO-образ через MEMDISK.
Внимательно читаем http://www.syslinux....p/MEMDISK#Linux


И тут встает вопрос - а не проще ли собрать initrd самому? Только надо туда перенести некоторые специфичные участки скриптов.

Но в любом случае надо приложить много усилий, что на фоне игнорирования специалистами Dr.WEB'а кажется нецелесообразным. И, к глубокому сожалению, но даже для
Kaspersky RescueCD есть рабочие мануалы.

// такое впечатление, что LiveCD вообще не развивается. Ядро старое, драйвера не обновляются. Sergey Trubin последний раз проявлял активность ещё в мае 2011 года.

#25 dr.gopher

dr.gopher

    Newbie

  • Members
  • 1 Сообщений:

Отправлено 19 Июнь 2012 - 16:21

Тут сатья по загрузке любого лайв сд http://thin.kiev.ua/linux-/177-ltsp.html

Я делал сетевую закрузку лайв сд Убунты. Пробовал и другие лайв сд, но с переменным успехом.

#26 anonymous0

anonymous0

    Newbie

  • Posters
  • 4 Сообщений:

Отправлено 06 Ноябрь 2012 - 07:24

В свете релизнувшегося LiveCD DrWeb 6.0.2 решил бампнуть тему.

Есть ли продвижения в этом направлении?

Сообщение было изменено Chaser: 06 Ноябрь 2012 - 07:25


#27 VladimirN

VladimirN

    Member

  • Posters
  • 133 Сообщений:

Отправлено 25 Ноябрь 2012 - 20:45

Chaser,
Присоединяюсь к вопросу, но что-то мне подсказывает что ответа мы можем и не дождаться... :blush:

#28 Mikhail Khokhlov

Mikhail Khokhlov

    Member

  • Dr.Web Staff
  • 299 Сообщений:

Отправлено 27 Ноябрь 2012 - 11:12

Ответ простой - ничего не изменилось в этом направлении.

#29 anonymous0

anonymous0

    Newbie

  • Posters
  • 4 Сообщений:

Отправлено 28 Ноябрь 2012 - 04:00

Ответ простой - ничего не изменилось в этом направлении.

Очень жаль. Когда-то Sergey Trubin сказал, что стоит ждать PXE. К сожалению, ожидания были тщетны.

А можно узнать, почему? Это невыгодно компании или просто никто не хочет этим заниматься?

#30 Mikhail Khokhlov

Mikhail Khokhlov

    Member

  • Dr.Web Staff
  • 299 Сообщений:

Отправлено 28 Ноябрь 2012 - 12:12

А можно узнать, почему?

потому что работа была сфокусирована на других вещах, в частности на работе с реестром.

#31 adriano32

adriano32

    Newbie

  • Members
  • 1 Сообщений:

Отправлено 30 Ноябрь 2012 - 22:03

В свете релизнувшегося LiveCD DrWeb 6.0.2 решил бампнуть тему.

Есть ли продвижения в этом направлении?


Chaser, привет тебе от adriano32 ;)

Собственно не понимаю, зачем беспокоишь ребят из DrWeb, дай им сосредоточится на разработке антивирусного ПО, сделай сам! Так сказать, кесарю - кесарево, а слесарю - слесарево:
* загружаешь свой любимый live-linux дистрибутив с поддержкой squashfs в ядре по сети;
* получаешь доступ к ISO-образу DrWeb Live CD (загружаешь из интернет или с локального веб-сервера или монтируешь по CIFS или NFS)
* монтируешь ISO-образ DrWeb Live CD на петлевом устройстве;
* монтируешь четыре squashfs-образа из boot/modules каждый в отдельный каталог, например /mnt/_white, /mnt/flash, /mnt/firmware, /mnt/drweb_bases тоже на петлевом устройстве;
* создаёшь tmpfs в пятый каталог, например, /mnt/config, кладёшь туда boot/config на всякий случай;
* собираешь при помощи mhddfs или unionfs-fuse все пять каталогов в один, например, /mnt/chroot причём /mnt/config с tmpfs первым и RW, остальные ясен пень RO;
* предварительно смонтировав dev, proc, sys, dev/pts и захватив копию /etc/resolv.conf chroot'ишься в этот каталог /mnt/chroot

Готовый для использования в некоммерческих целях, но загруженный по сети, экземпляр DrWeb Live CD с 100% работающим обновлением баз и консольным антивирусником готов для эксплуатации. Остаётся лишь собрать всё вышеперечисленное в скрипт, чтоб не делать вручную.
Что касается работы GUI, я не интересовался этим, но могу попробовать на досуге.

#32 MarvinD

MarvinD

    Newbie

  • Posters
  • 27 Сообщений:

Отправлено 20 Декабрь 2012 - 21:27

Незачем мудрить, образ и так сделали легче, был 900 метров, стал чуть больше 230,
Грузим iso в память через pxe, даже tftpd ненужен, можно средствами dnsmasq обойтись.
Завтра приду на работу и проверю, дома отдыхать над.
Если попрёт, то выложу конфиги,
ЗЫ
Полигон на OpenSuse 12.2

#33 and1

and1

    Newbie

  • Members
  • 2 Сообщений:

Отправлено 26 Март 2013 - 17:24

Всем привет. Недавно на http://habrahabr.ru появилась статья как запустить Веба по сети. Вот статья:

 

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

Ещё в далеком 2009-м году пользователи начали интересоваться, когда же Доктор Вэб добавит загрузку по сети. Но, как видно, за неполные пять лет пожелания пользователей так и не сумели достичь ушей разработчиков.

Всё же унывать не стоит! Существуют же дистрибутивы, готовые грузиться чуть ли не с балалайки… Поэтому возьмем в руки напильник и доведем дело до конца.

Ничего нового в способах загрузки не изобретено:
 

  1. Запуск ядра
  2. Запуск initrd, выполнение предварительной инициализации
  3. Загрузка Dr.Web Gentoo Linux
  4. Запуск Gnome
  5. Запуск антивируса


Вся суть предварительной инициализации фактически сводится к тому, что производится поочередное монтирование всех доступных устройств и поиск модулей Dr.Web в них. Как только модули найдены, они собираются посредством aufs в единую файловую систему, после чего выполняется chroot.

Собственно это всё, так как здесь становится ясно, чего не хватает в загрузчике. Способов решения — множество. Я предпочел скопировать весь образ LiveCD в память, а там посредством losetup создать новое устройство. Его имя я скормлю процедуре инициализации так, что она будет думать, что мы грузимся с обычного компакт-диска.

Для этого необходимо:



  • Скопировать модули сетевых карт c LiveCD в initrd
  • Добавить в initrd DHCP-клиент (/bin/ipconfig + /lib/klibc-*.so)
  • Перекомпилировать пакет BusyBox и включить в него всё необходимое: tftp, wget, losetup и т.д.
  • Написать код управления сетевыми утилитами

Так как всё уже давно изобретено до нас, то код управления сетью и DHCP-клиент мы возьмем из GParted. Модули сетевых карт — из образа загрузочного диска Dr.Web. Ну а BusyBox сконфигурируем так, чтобы в нем остались все старые утилиты и добавилась парочка новых. Для того, чтобы знать, как разработчики Dr.Web сконфигурировали BusyBox и от чего отталкиваться, воспользуемся bbconfig, который можно найти в исходном initrd.



drweb-initrd/sbin/find_root DIFF
drweb-initrd/linuxrc DIFF
BusyBox .config DIFF
BusyBox .config FULL
 


Нехитрые манипуляции по внесению изменений и сборке BusyBox оставим читателю в качестве домашнего упражнения. Готовый же InitRD находится здесь.

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



LABEL drweb
  KERNEL drweb-vmlinuz
  APPEND ID=sP0pZH5mhSy0kCAC root=/dev/ram0 init=/linuxrc init_opts=4 \
         quiet initrd=drweb-initrd splash=verbose CONSOLE=/dev/tty1 \
         fetch=tftp://A.B.C.D/drweb-livecd-602.iso

 

Вот ссылка на полную статью http://habrahabr.ru/sandbox/59811/ там есть скрипты необходимые.

 

У меня на Centos 6.4 так и не получилось запустить сие чудо, у кого получится отпишитесь как.



#34 schdenis

schdenis

    Newbie

  • Members
  • 1 Сообщений:

Отправлено 08 Апрель 2013 - 14:26

У меня на Centos 6.4 так и не получилось запустить сие чудо, у кого получится отпишитесь как.

 

В строке параметров загрузки InitRD поправьте ID, чтобы соответствовал BOOT_ID в файле boot/modules в ISO.

Это проверка на то, что InitRD соответствует содержимому ISO.



#35 and1

and1

    Newbie

  • Members
  • 2 Сообщений:

Отправлено 14 Апрель 2013 - 00:49

У меня на Centos 6.4 так и не получилось запустить сие чудо, у кого получится отпишитесь как.

 

В строке параметров загрузки InitRD поправьте ID, чтобы соответствовал BOOT_ID в файле boot/modules в ISO.

Это проверка на то, что InitRD соответствует содержимому ISO.

Спасибо да действительно не заметил, может еще подскажите вот тут

fetch=tftp://A.B.C.D/drweb-livecd-602.iso

вместо A.B.C.D должен быть ip адрес сервера, и вроде как в браузере должна открываться ссылка tftp://адрес сервера



#36 Mikhail Khokhlov

Mikhail Khokhlov

    Member

  • Dr.Web Staff
  • 299 Сообщений:

Отправлено 15 Апрель 2013 - 16:17

вместо A.B.C.D должен быть ip адрес сервера

A.B.C.D - адрес сервера в вашей локальной сети, где доступен tftp-сервер.

 

и вроде как в браузере должна открываться ссылка tftp://адрес сервера

нет, в браузере не должен открываться, если только ваш браузер вдруг не научился работать с протоколом tftp (tftp и ftp - это не одно и то же)



#37 RealVaVa

RealVaVa

    Newbie

  • Members
  • 1 Сообщений:

Отправлено 23 Май 2013 - 15:36

Пытался адаптировать под WDS, под который подсунут pxelinux по ману отсюда http://habrahabr.ru/post/171329/ , поднимал отдеьный tftp сервер на tftp32

 

 

7173176_drweblivecdpxe.jpg



#38 alexpopov

alexpopov

    Newbie

  • Members
  • 1 Сообщений:

Отправлено 26 Сентябрь 2013 - 00:15

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


Сообщение было изменено SergM: 26 Сентябрь 2013 - 00:18
Я Ваше безобразии с рекламой удалил.


#39 Kolesov.O

Kolesov.O

    Newbie

  • Members
  • 2 Сообщений:

Отправлено 16 Май 2016 - 14:15

реанимируем  тему :)
live cd версии 9 та что построена на ubuntu
у нас  сделано так :

- каталог drweb расшарен по NFS(имя общего ресурса  тоже drweb) , в него скопирован каталог с содержимым casper (c LiveCD)
- 192.168.20.30 - ip адрес сервера NFS
 

LABEL drweb
MENU LABEL --- Dr Web Live CD
TEXT HELP
           Dr Web Live CD
 !!! после запуска выбрать консоль(console)
 и ввести команду dhclient
 для обновления сетевых настроек
ENDTEXT
KERNEL    ../drweb/casper/vmlinuz
INITRD    ../drweb/casper/initrd.lz
APPEND    root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.20.30:/drweb language=ru locale=ru_RU.UTF-8  quiet splash noapic --


#40 Mad Butcher

Mad Butcher

    Newbie

  • Members
  • 1 Сообщений:

Отправлено 22 Июнь 2016 - 19:14

И поддерживаем в теме активность)

 

NFS у меня-извращенца нет, хотел грузиться с netboot=cifs, но не прокатило, полез в initramfs ковырять скрипты casper'а, долез до выпиленного  /sbin/mount.cifs, и стало мне грустно и лениво...

В итоге сделал что-то вроде fetch'a, итак:

 

Создаём рабочую папку и скачиваем LiveDisk:
mkdir /tmp/drweb && cd /tmp/drweb

wget -nc -c  -q --show-progress http://download.geo.drweb.com/pub/drweb/livedisk/drweb-livedisk-900-cd.iso

 

Ставим genisoimage и извлекаем из LiveDisk'а содержимое папки casper:

sudo apt install genisoimage -y

isoinfo -Jf -i drweb-livedisk-900-cd.iso | sed -n "s/^\/casper\///p" | while read x; do isoinfo -J -x /casper/$x -i drweb-livedisk-900-cd.iso > $x; done && rm drweb-livedisk-900-cd.iso

 

Патчим initramfs:

lzma -dc -S .lz initrd.lz | cpio -id && rm initrd.lz
sed -i '/# Scan local devices for the image/,/done/ {
/#/ i\
        # Configuring network and fetching squashfs\
        ipconfig eth0\
        livefs_root=/cdrom\
        mkdir -p ${livefs_root}/casper\
        for x in drweb-10bin drweb-25key drweb-50bases filesystem\
            do wget http://192.168.0.1/PXE/Dr.Web/$x.squashfs -P ${livefs_root}/casper\
        done
d
}' scripts/casper
find -mindepth 1 | grep -ve "vmlinuz\|initrd.lz\|\.squashfs" | cpio --quiet --dereference -o -H newc | lzma -9 > initrd.lz
find -mindepth 1 -maxdepth 1 | grep -ve "vmlinuz\|initrd.lz\|\.squashfs" | xargs rm -r

 

Вот собственно и всё, осталось скопировать содержимое папки /tmp/drweb на PXE-сервер, и грузить через pxelinux можно как-то так:

KERNEL http://192.168.0.1/PXE/Dr.Web/vmlinuz
APPEND initrd=http://192.168.0.1/PXE/Dr.Web/initrd.lz boot=casper

 

P.S. Метод в сравнении NFS конечно проигрывает, так как и грузится до-о-о-льше и оперативки лишней 650MB отжирает...




Читают тему: 0

0 пользователей, 0 гостей, 0 скрытых