Автор Тема: Создание live-cd Ubuntu  (Прочитано 100346 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Местный
  • *****
  • Сообщений: 722
    • PuppyRus-Arch
Re: Создание live-cd Ubuntu
« Ответ #135 : Август 17, 2015, 10:25:05 »
2) После создания образа системы в виде готового .iso вес поправился на 200 Мб! Хотя в данном случае я ничего не устанавливал и не обновлял (chroot делал только чтобы понять когда создаётся мой профиль в создаваемой системе)
Чудес не бывает. Или что-то добавилось или Вы делали squash c меньшей компрессией
Попробуйте:
mksquashfs ubuntu-source/ ubuntu-rebuild/casper/filesystem.squashfs -b 512K -comp xz -Xbcj x86 -noappend
« Последнее редактирование: Август 17, 2015, 10:27:41 от sfs »

Оффлайн artec

  • Новичок
  • **
  • Сообщений: 33
Re: Создание live-cd Ubuntu
« Ответ #136 : Август 20, 2015, 12:12:48 »
sfs,
так и есть), запуск был с маленькой компрессией (я ещё подумал что-то уж слишком быстро комп запаковывает файл)...хорошо бы данную вами команду в шапку добавить.
« Последнее редактирование: Август 20, 2015, 12:47:08 от artec »

Оффлайн sfs

  • Местный
  • *****
  • Сообщений: 722
    • PuppyRus-Arch
Re: Создание live-cd Ubuntu
« Ответ #137 : Август 20, 2015, 14:12:50 »
Шапку может менять только автор или админы
Тогда уж и chroot-ить лучше так
[ ! "$1" ] && echo "Use $0 chroot-dir" && exit
chroot="$1"
[ "$1" ] || exit
mkdir -p "$chroot"/proc.
mkdir -p "$chroot"/sys
mkdir -p "$chroot"/dev
 mount -t proc none "$chroot"/proc
 mount -t sysfs none "$chroot"/sys
 mount -o bind /dev "$chroot"/dev
 mount -o bind /dev/pts "$chroot"/dev/pts
 chroot "$chroot" bash

umount "$chroot"/proc
umount "$chroot"/dev/pts
umount "$chroot"/dev
umount "$chroot"/sys

Собственно вопрос - как сделать чтоб с флешки можно было устанавливать новоиспечённую ОС?
1. Гибридный iso
2. Распаковать iso, установить на флэшку grub(4dos|2) и настроить параметры загрузки live
Пример для grub4dos
title              - live
find      --set-root /casper/vmlinuz
kernel /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper persistent quiet splash -- locale=ru_RU bootkbd=ru console-setup/layoutcode=ru
initrd    /casper/initrd.gz

title              - install
kernel /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity only-ubiquity  ro quiet splash -- locale=ru_RU bootkbd=ru console-setup/layoutcode=ru
initrd=/casper/initrd.gz

title "Ubuntu Live iso"  
loopback loop /iso/easypeasy-1.5.img.iso
kernel (loop)/casper/vmlinuz boot=casper iso-scan/filename=/iso/easypeasy-1.5.img.iso noeject noprompt --
initrd (loop)/casper/initrd.lz
grub2
menuentry '  runtu iso live persistent' {
 set isopath='/_iso/runtu.iso'
 search --file ${isopath} --set=root
 loopback loop ${isopath}
 linux (loop)/casper/vmlinuz boot=casper persistent iso-scan/filename=${isopath} noeject noprompt locale=ru_RU bootkbd=ru console-
 initrd (loop)/casper/initrd.lz
}



« Последнее редактирование: Август 20, 2015, 14:32:04 от sfs »

Оффлайн artec

  • Новичок
  • **
  • Сообщений: 33
Re: Создание live-cd Ubuntu
« Ответ #138 : Август 26, 2015, 14:58:56 »
sfs,
спасибо за помощь, насчёт создания флешки - с unetbootin как не странно легко всё идёт).
Сейчас пытаюсь создать сборку из готового зарубежного дистриба, и вот незадача после введения команды "cp /etc/resolv.conf ubuntu-source/etc/"  терминал выдаёт такое:
cp: запись через повисшую ссылку «ubuntu-source/etc/resolv.conf» не выполняется
Не подскажите, что это может быть и как исправить? Буду признателен за помощь

Оффлайн sfs

  • Местный
  • *****
  • Сообщений: 722
    • PuppyRus-Arch
Re: Создание live-cd Ubuntu
« Ответ #139 : Август 26, 2015, 15:26:13 »
sudo rm ubuntu-source/etc/resolv.conf  && sudo cp /etc/resolv.conf ubuntu-source/etc/

Оффлайн artec

  • Новичок
  • **
  • Сообщений: 33
Re: Создание live-cd Ubuntu
« Ответ #140 : Август 26, 2015, 15:50:45 »
sfs, ну что сказать, спасибо разве что :). Буду дальше колупать дистро).

Оффлайн artec

  • Новичок
  • **
  • Сообщений: 33
Re: Создание live-cd Ubuntu
« Ответ #141 : Сентябрь 04, 2015, 12:12:43 »
Ребят, пожалуйста, помогите, кто силён, создать скрипт для создания дистрибутива Runtu Xfce на основе UCK. Преимущество UCK, насколько я понимаю, в том что на выходе создаётся гибридный ISO. К тому же есть вариант менять способ компрессии.
Оригинальный скрипт показан здесь - http://www.helplinux.ru/wiki/kb:ubuntu-livecd-customization, но как его сделать лучше, расширенней, практичней и работающим не только (и нестолько) для aptitude (mint), но и для ubuntu? Очень надеюсь что вы откликнитесь, возможно поддержите моё начинание). Пока вот копия скрипта, но я не знаю как заставить его правильно работать на ubuntu 14.04, увы.
#!/bin/bash

# get configuration from the file
[ -n "$1" ] && [ -f "$1" ] && source "$1" || exit 1

# prepare
trap "exit 1" INT
ISOMNTDIR=$LIVEDIR/mnt
EXTRACTDIR=$LIVEDIR/extract-cd
EDITDIR=$LIVEDIR/edit
ENV_KEEP="http_proxy https_proxy ftp_proxy"
sudo aptitude install -y squashfs-tools genisoimage || exit 1

# mount livecd
mkdir $LIVEDIR && cd $LIVEDIR || exit 1
mkdir $ISOMNTDIR || exit 1
sudo mount -o loop $ISODIR/ubuntu-${VERSION}.iso $ISOMNTDIR || exit 1

# extract squashfs
mkdir $EXTRACTDIR || exit 1
rsync --exclude=/casper/filesystem.squashfs -a $ISOMNTDIR/ $EXTRACTDIR
sudo unsquashfs $ISOMNTDIR/casper/filesystem.squashfs || exit 1
sudo mv squashfs-root $EDITDIR

# umount livecd
sudo umount $ISOMNTDIR

# copy resolv.conf
sudo cp /etc/resolv.conf $EDITDIR/etc/

# mount dev
sudo mount --bind /dev/ $EDITDIR/dev

# configure new live cd
[ -n "$PROXY" ] && echo -en "$PROXY" | sudo tee -a $EDITDIR/etc/environment && \
    echo -e "\nDefaults env_keep = \"$ENV_KEEP\"" | sudo tee -a $EDITDIR/etc/sudoers
[ -n "$TIMEZONE" ] && echo "TZ=$TIMEZONE" | sudo tee -a $EDITDIR/etc/environment

# create customization script and run it in chroot
cat > $EDITDIR/tmp/customize.sh << EOF
#!/bin/bash

# mount proc, sysfs, devpts
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts

# prepare choot
export HOME=/root
export LC_ALL=en_US.UTF-8
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

# install packages
( which software-properties-gtk && software-properties-gtk -e universe && software-properties-gtk -e multiverse ) || \
( which software-properties-kde && software-properties-kde -e universe && software-properties-kde -e multiverse ) || \
sudoedit /etc/apt/sources.list
aptitude update
[ "$UPTODATE" -eq "1" ] && DEBIAN_FRONTEND=noninteractive aptitude full-upgrade -y
aptitude install -Ry $PACKAGES

# clean
aptitude clean
rm -rf /tmp/* ~/.bash_history
rm /etc/resolv.conf
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl

# umount proc, sysfs, devpts
umount /proc
umount /sys
umount /dev/pts

# exit from chroot
exit
EOF

# make customization script executable
chmod +x $EDITDIR/tmp/customize.sh

# chroot and run customization script
sudo chroot $EDITDIR su -lc /tmp/customize.sh

# umount dev
sudo umount $EDITDIR/dev

# regenerate manifest
chmod +w $EXTRACTDIR/casper/filesystem.manifest
sudo chroot $EDITDIR dpkg-query -W --showformat='${Package} ${Version}\n' > $EXTRACTDIR/casper/filesystem.manifest
sudo cp $EXTRACTDIR/casper/filesystem.manifest $EXTRACTDIR/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' $EXTRACTDIR/casper/filesystem.manifest-desktop
sudo sed -i '/casper/d' $EXTRACTDIR/casper/filesystem.manifest-desktop

# compress filesystem
[ -f $EXTRACTDIR/casper/filesystem.squashfs ] && \
     sudo rm $EXTRACTDIR/casper/filesystem.squashs
sudo mksquashfs $EDITDIR $EXTRACTDIR/casper/filesystem.squashfs -b 512K -comp xz -Xbcj x86 -noappend

# set an image name in $EXTRACTDIR/README.diskdefines
sudo sed -ri "s/(#define DISKNAME .*)/\1 $RELEASE_NAME/" $EXTRACTDIR/README.diskdefines

# remove old md5sum.txt and calculate new md5 sums
cd $EXTRACTDIR
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt

# create iso
sudo mkisofs -D -r -V "$Xubuntu-ru-14.04.3" -cache-inodes -J -l -b \
    isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \
    -boot-load-size 4 -boot-info-table -o \
    "../ubuntu-$14.04.3-$Xubuntu-ru-$(date +%F).iso" .

Преимущество скрипта: создаёт гибридный образ, высокая степень компрессии (актуально для больших iso).
Запуск:
 Необходимо загрузиться с LiveCD (хотя с LiveCD вовсе необязательно).
    Примонтировать файловую систему ext3 или ext4, на которой свободно хотябы 5Gb.
    Сделать себя владельцем директории в которой будем собирать новый образ ($LIVEDIR).
    Изменить config_example под свои нужды.
    Запустить: ./ubuntu-iso-customization.sh config_example
    Результат: по окончанию сборки новый ISO образ будет находиться в директории $LIVEDIR
Тут ещё должен был быть файл конфигурации (config_example), пока думаю что туда должно входить.
Можно доработать скрипт...было бы неплохо...

Оффлайн sfs

  • Местный
  • *****
  • Сообщений: 722
    • PuppyRus-Arch
Re: Создание live-cd Ubuntu
« Ответ #142 : Сентябрь 04, 2015, 12:44:40 »
Как сделать гибрид
Остальное делаю руками : unsquashfs + chroot.sh (см.выше) + apt-get install(purge) + mksquashfs