Автор Тема: Создание собственного образа LiveCD  (Прочитано 9830 раз)

Alexander7_88

  • Ветеран
  • *****
  • Сообщений: 1514
  • Карма: +217/-4
  • Универсальный поисковый бот
    • Просмотр профиля
Создание собственного образа LiveCD
« : 13 Январь 2012, 23:29:06 »
В качестве справочной информации:

Своя сборка Ubuntu/Mint/Росинка

Подготовка
Во время сборки часто придется выполнять команды с правами рута, поэтому сразу выполним:
sudo -s
Создадим папку, в которой и будем проводить все работы
mkdir ~/MyUbuntu
cd ~/MyUbuntu

Сделаем папку, в которую скопируем все файлы с образа компакт-диска убунты
mkdir myubuntu_iso
mount -o loop /путь/до/образа.iso /mnt
rsync -a /mnt/ myubuntu_iso
umount /mnt

А вот и пришло время распаковать уже сам squashfs-образ livecd, который из себя представляет корневую файловую систему убунты
unsquashfs myubuntu_iso/casper/filesystem.squashfs
mv squashfs-root myubuntu_root

Вход в chroot-окружение

Теперь можно приступить к изменениям. Для этого надо использовать chroot
cp /etc/hosts myubuntu_root/etc/
cp /etc/resolv.conf myubuntu_root/etc/
chroot myubuntu_root

Следующие команды необходимы для нормальной работы некоторых утилит в chroot-окружении, в частности — для самого apt-get, aptitude или synaptic
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

Теперь есть возможность пользоваться консольными утилитами, как и в обычной убунте (nano, vi, apt-get, aptitude, gconftool-2, mv, cp и так далее)

Работа в chroot-окружении (установка пакетов, настройка и т. п.)
Если же хочется воспользоваться графическими утилитами (такими как synaptic, наприме), то в другом терминале запустите эту команду:
Xnest -ac :1
Этот пакет в системе не установлен, нужно установить заранее sudo apt-get install xnest
И у вас появится окошко, в котором и будут работать гуишные проги. В самом-же chroot-окружении нужно указать монитор (то самое окошко xnest’а):
export DISPLAY=localhost:1
И дальше уже можно спокойно запускать synaptic и т. п. Чтобы были рамки окон, тогда еще надо:
metacity &synaptic
Тут уже можно проделывать любые операции как в обычной убунте — будь то установка пакетов, изменение конфигов и т. п.

Выход из chroot-окружения
После проделанных изменений, нужно удалить временные файлы, отмонтировать фс и т. п.:
aptitude clean
rm -rf /tmp/* ~/.bash_history
rm /etc/resolv.conf
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
umount /proc
umount /sys
umount /dev/pts
exit

Подготовка ISO-образа
Если мы изменили состав ПО в сборке, то надо выполнить следующие команды, которые сделают новые списки пакетов:
chmod +w myubuntu_iso/casper/filesystem.manifest
chroot myubuntu_root dpkg-query -W --showformat='${Package} ${Version}\n' > myubuntu_iso/casper/filesystem.manifest
cp myubuntu_iso/casper/filesystem.manifest myubuntu_iso/casper/filesystem.manifest-desktop
sed -i '/ubiquity/d' myubuntu_iso/casper/filesystem.manifest-desktop
sed -i '/casper/d' myubuntu_iso/casper/filesystem.manifest-desktop

Собственно, файлы *.manifest — это список пакетов в системе и файл filesystem.manifest-desktop — это файл только тех пакетов, которые буду устанавливаться на комп. То есть, если вы хотите оставить пакет на livecd, но сделать так, чтобы он не ставился на компьютер во время установки, то просто удалите его упоминание в этом файле.
Если вы поменяли или обновили ядро в chroot-окружении, то это же ядро надо скопировать на сам диск, чтобы могли грузиться модули. Например:
cp myubuntu_root/boot/vmlinuz-2.6.32-22-generic myubuntu_iso/casper/vmlinuz
cp myubuntu_root/boot/initrd.img-2.6.32-22-generic myubuntu_iso/casper/initrd.gz
gzip -dc myubuntu_iso/casper/initrd.gz | sudo lzma -7 > myubuntu_iso/casper/initrd.lz


Теперь необходимо запаковать корневую файловую систему обратно в squashfs-образ:
rm myubuntu_iso/casper/filesystem.squashfs
mksquashfs myubuntu_root myubuntu_iso/casper/filesystem.squashfs
rm -r myubuntu_root# Для экономии можно удалить распакованную корневую фс

Так как в составе диска убунты поменяли файлы, нужно пересоздать файл md5sum.txt
cd myubuntu_iso
rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt

И можно уже приступить к созданию самого iso-образа:

mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../rosinka-11-custom.iso .
Метод нагло "стыбрин" с какого-то сайта, но это было давно не помню с какого точно :-D Работает отлично, проверено не раз.
« Последнее редактирование: 14 Январь 2012, 00:32:41 от Alexander7_88 »

3742

  • Новичок
  • *
  • Сообщений: 34
  • Карма: +3/-0
    • Просмотр профиля
Re: Создание собственного образа LiveCD
« Ответ #1 : 14 Январь 2012, 12:15:10 »
Прошу прощения за то, что "еду в танке", но объясните, пожалуйста, мне - каким образом мне установить и настроить в свой Live-CD драйвер на видеокарту с нестандартным разрешением для монитора, а так же дрова на старый принтер, который в обычной системе без плясок с бубном работать отказывается?

Alexander7_88

  • Ветеран
  • *****
  • Сообщений: 1514
  • Карма: +217/-4
  • Универсальный поисковый бот
    • Просмотр профиля
Re: Создание собственного образа LiveCD
« Ответ #2 : 14 Январь 2012, 14:22:34 »
А как вы их настраиваете в установленной системе?

3742

  • Новичок
  • *
  • Сообщений: 34
  • Карма: +3/-0
    • Просмотр профиля
Re: Создание собственного образа LiveCD
« Ответ #3 : 14 Январь 2012, 16:02:15 »
А как вы их настраиваете в установленной системе?
1. Устанавливаю драйвер рекомендуемый проприетарный драйвер NVIDIA для видеокарты GTS-250,
затем перезагружаюсь, правлю xorg.conf вот таким образом:
[spoiler]# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 260.19.06  (buildd@palmer)  Mon Oct  4 16:01:38 UTC 2010

# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# Note that some configuration settings that could be done previously
# in this file, now are automatically configured by the server and settings
# here are ignored.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
#   sudo dpkg-reconfigure -phigh xserver-xorg

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "ServerFlags"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"

    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 96.0
    VertRefresh     50.0 - 160.0
    ModeLine       "1024x768_100.00" 113.310 1024 1096 1208 1392 768 769 772 814 -hsync +vsync
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTS 250"
EndSection

Section "Screen"
# Removed Option "TwinView" "0"
# Removed Option "TwinViewXineramaInfoOrder" "CRT-0"
# Removed Option "metamodes" "1024x768_100 +0+0"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "1"
    Option         "TwinViewXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "CRT: 1024x768_100 +0+0, DFP: 1360x768_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
[/spoiler]
Снова перезагружаюсь и получаю нормальные параметры работы ЭЛТ-монитора.
2. С принтером я воспользовался инструкцией Kamrad:
[spoiler]дём на официальный сайт и берём свежий драйвер - http://software.canon-europe.com/products/0000524.asp
Распаковываем. Инсталлируем. Затем запускаем терминал и получаем права суперпользователя.

 Далее:

root@user-desktop:/home/user# mkdir /var/ccpd
root@user-desktop:/home/user# mkfifo -m 777 /var/ccpd/fifo0
root@user-desktop:/home/user# /etc/init.d/cups restart
 * Restarting Common Unix Printing System: cupsd                         [ OK ]
root@user-desktop:/home/user# chmod 777 /var/ccpd/fifo0
root@user-desktop:/home/user# cd /usr/share/ppd/
root@user-desktop:/usr/share/ppd# ln -s /usr/share/cups/model/CNCUPSLBP1120CAPTK.ppd
root@user-desktop:/usr/share/ppd# /usr/sbin/lpadmin -p lbp1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
root@user-desktop:/usr/share/ppd# /usr/sbin/ccpdadmin -p lbp1120 -o /dev/usb/lp0
 
 CUPS_ConfigPath = /etc/cups/
 LOG Path        = None
 UI Port         = 39787

 Entry Num  : Spooler   : Backend   : FIFO path      : Device Path    : Status
 ----------------------------------------------------------------------------
     

    *     : lbp1120    : ccp       : /var/ccpd/fifo0    : /dev/usb/lp0 : New!!


root@user-desktop:/usr/share/ppd# /etc/init.d/ccpd start
Starting ccpd: [: 65: =: unexpected operator
[: 65: =: unexpected operator
root@user-desktop:/usr/share/ppd# ln -s /etc/init.d/ccpd /etc/rc1.d/K80ccpd
root@user-desktop:/usr/share/ppd# ln -s /etc/init.d/ccpd /etc/rc2.d/S20ccpd
root@user-desktop:/usr/share/ppd# ln -s /etc/init.d/ccpd /etc/rc3.d/S20ccpd
root@user-desktop:/usr/share/ppd# ln -s /etc/init.d/ccpd /etc/rc4.d/S20ccpd
root@user-desktop:/usr/share/ppd# ln -s /etc/init.d/ccpd /etc/rc5.d/S20ccpd[/spoiler]

Alexander7_88

  • Ветеран
  • *****
  • Сообщений: 1514
  • Карма: +217/-4
  • Универсальный поисковый бот
    • Просмотр профиля
Re: Создание собственного образа LiveCD
« Ответ #4 : 14 Январь 2012, 18:19:26 »
Не могу точно ответить на ваш вопрос.
Драйвер для принтера вшить думаю можно
mkdir /var/ccpd
mkfifo -m 777 /var/ccpd/fifo0
chmod 777 /var/ccpd/fifo0
cd /usr/share/ppd/
ln -s /usr/share/cups/model/CNCUPSLBP1120CAPTK.ppd
/usr/sbin/lpadmin -p lbp1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
ln -s /etc/init.d/ccpd /etc/rc1.d/K80ccpd
ln -s /etc/init.d/ccpd /etc/rc2.d/S20ccpd
ln -s /etc/init.d/ccpd /etc/rc3.d/S20ccpd
ln -s /etc/init.d/ccpd /etc/rc4.d/S20ccpd
ln -s /etc/init.d/ccpd /etc/rc5.d/S20ccpd

Но /usr/sbin/ccpdadmin -p lbp1120 -o /dev/usb/lp0 после подключения принтера по usb всё равно придётся выполнить.

Нужно проверить и экспериментировать. Попробуйте, опыт лишним не бывает. О результатах отписываетесь, мне самому интересно :-D
 

prozak

  • Новичок
  • *
  • Сообщений: 10
  • Карма: +0/-0
    • Просмотр профиля
Re: Создание собственного образа LiveCD
« Ответ #5 : 16 Январь 2012, 20:50:10 »
На стадии запаковки обратно в squashfs-образ начали появляться ошибки такого рода:

Failed to read file myubuntu_root/var/lib/dpkg/info/xdg-user-dirs.conffiles, creating empty file
Ну и аналогичны великому множеству других файлов.

Пакую Росинку 9, все прошло замечательно без ошибок и сделано правильно, 11 запаковалась без проблем. Хоть и ядро отказалось обновляться.

Кто в курсе?

raslvot

  • Пользователь
  • **
  • Сообщений: 56
  • Карма: +0/-1
  • хочу перейти полностью на линукс =)
    • Просмотр профиля
Создание собственного образа LiveCD
« Ответ #6 : 09 Февраль 2012, 09:09:10 »
спасибо огромное(если применяли где то привидите краткий мануал как там засунуть в автозагрузку под пользователем и примерные настройки )! еще вопрос если я настрою линь и сделаю его образ встанет ли он на другие тачки ? с видной в этом плане нет никаких проблем =)

Alexander7_88

  • Ветеран
  • *****
  • Сообщений: 1514
  • Карма: +217/-4
  • Универсальный поисковый бот
    • Просмотр профиля
Re: Создание собственного образа LiveCD
« Ответ #7 : 09 Февраль 2012, 09:35:16 »
Если до вечера сами не разберётесь, то помогу (когда дома буду).
настрою линь и сделаю его образ В смысле пересоберёте образ? Да конечно, на форуме есть описание создания сборки. Или снимите образ с установленной системы? Единсвенное могут быть проблемы с разрешением экрана.

raslvot

  • Пользователь
  • **
  • Сообщений: 56
  • Карма: +0/-1
  • хочу перейти полностью на линукс =)
    • Просмотр профиля
Re: Создание собственного образа LiveCD
« Ответ #8 : 09 Февраль 2012, 11:06:08 »
как лучше сделать по 1ому способу то есть создать свою сборку либо  2 чтобы образ с акрониса?
мне нужно сделать максимально простым установку оси! в идеале:
1) сделал загрузку с флешки либо с диска в биосе
2) уидел экран установки нажал кнопочку установить пршло время все готово =)

Azure

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2118
  • Карма: +275/-114
  • Обычно я му-р-р-р-чу
    • Просмотр профиля
    • Exilibris Web Development
Re: Создание собственного образа LiveCD
« Ответ #9 : 09 Февраль 2012, 14:43:52 »
Так уточните, что именно интересует: unattended setup как в Винде или образ системы? Например есть спец.утилиты для создания своей сборки, например Remastersys или mintconstructor
« Последнее редактирование: 09 Февраль 2012, 14:47:44 от Azure »

raslvot

  • Пользователь
  • **
  • Сообщений: 56
  • Карма: +0/-1
  • хочу перейти полностью на линукс =)
    • Просмотр профиля
Re: Создание собственного образа LiveCD
« Ответ #10 : 09 Февраль 2012, 15:04:17 »
ну мне желательно автоматическую установку как я понял вы её назвали unattended setup! ну чтобы по максимуму без участия пользователя

Azure

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2118
  • Карма: +275/-114
  • Обычно я му-р-р-р-чу
    • Просмотр профиля
    • Exilibris Web Development
Re: Создание собственного образа LiveCD
« Ответ #11 : 09 Февраль 2012, 16:03:27 »
Для формирования так называемого "файла ответов" могу посоветовать GUI-программулину Kickstart. Устанавливается и штатного репозиторияsudo apt-get install system-config-kickstartКроме того существует целый проект FAI (Fully Automatic Installation) (тоже есть в штатных репах)
« Последнее редактирование: 09 Февраль 2012, 16:15:13 от Azure »

raslvot

  • Пользователь
  • **
  • Сообщений: 56
  • Карма: +0/-1
  • хочу перейти полностью на линукс =)
    • Просмотр профиля
Re: Создание собственного образа LiveCD
« Ответ #12 : 12 Февраль 2012, 11:18:44 »
я собрался делать свою сборку с помощью Remastersys! есть ли программы наподобие ccleaner для того чтобы очистить кеш, засейвленые логи логины пароли вообще ? где хранятся все настройки вот к примеру в программе remmina мне желательно оставить адрес для подключения а вот остальное все убрать где смотреть это ?)
как встроить поддержку принтеров hp ?

PINK FLOYD

  • Ветеран
  • *****
  • Сообщений: 658
  • Карма: +48/-5
  • деГенерация... Процесс пошёл...
    • Просмотр профиля
Re: Создание собственного образа LiveCD
« Ответ #13 : 12 Февраль 2012, 11:22:37 »
sudo aptitude install bleachbitВсе настройки хранятся в домашней папке (показать скрытые файлы и папки CTRL+H) либо в папке ./config
« Последнее редактирование: 12 Февраль 2012, 11:28:27 от PINK FLOYD »

Большая победа приходит не после серии маленьких побед, она приходит после большого поражения.

raslvot

  • Пользователь
  • **
  • Сообщений: 56
  • Карма: +0/-1
  • хочу перейти полностью на линукс =)
    • Просмотр профиля
файл ответов
« Ответ #14 : 05 Март 2012, 14:36:06 »
есть ли описание всех функций файла ответов preseed установки c возможными параметрами
мне надо создать 2 пользователя ! 1 админ с паролем другой просто юзверь! и у каждого чтобы на рабочем столе ярлыки были!
или русифицированая тузла которая помогла бы это сделать помогите плиз!
у меня есть файл custom seed тут только 2 параметра и то не понятно оба за язык отвечают %)
# Only install the standard system and language packs.
tasksel tasksel/first multiselect
d-i pkgsel/language-pack-patterns string
# No language support packages.
d-i pkgsel/install-language-support boolean false
=====
очень информативная ссылка http://habrahabr.ru/blogs/ubuntu/104029/
и офф документация
« Последнее редактирование: 05 Март 2012, 21:30:24 от Azure »