Задача ужать стандартный GNOME-LiveCD Fedora7 до 400 Мб.
Ниже журнал действий.1. Извлекаем из iso образа LiveCD squashfs.img.
mount -o loop ./Fedora-7-Live-i686.iso /mnt/cdrom
копируем все в отдельную директорию директорию /mnt/disk/LiveCD/newcd
umount /mnt/cdrom
2. Монтируем squashfs.img и извлекаем из него os.img
mount -o loop -t squashfs /mnt/disk/LiveCD/newcd/squashfs.img /mnt/cdrom
копируем содержимое в /mnt/disk/LiveCD/new_ext3
umount /mnt/cdrom
3. Монтируем ext3 образ /mnt/disk/LiveCD/new_ext3/os.img
mount -o loop /mnt/disk/LiveCD/new_ext3/os.img /mnt/disk/LiveCD/new_ext3/sysroot
4. Удаляем лишнее и устанавливаем недостающее.
chroot /mnt/disk/LiveCD/new_ext3/sysroot /bin/sh
su -
mount /proc
mount /sys
rm -rf /usr/share/doc
в /usr/share/locale/ - оставляем только русские и английские локали
cd /usr/share/icons; rm -rf Bluecurve gnome
В /usr/share/pixmaps заменяем недостающее, чистим pixmaps/backgrounds/
копируем свою фоновую картинку
cp background.jpg /usr/share/gdm/themes/FedoraFlyingHigh
cp background.jpg /usr/share/backgrounds/images/default.jpg
Чистим /usr/share/backgrounds
Удаляем пакеты с китайскими шрифтами:
rpm -e fonts-chinese fonts-arabic fonts-korean fonts-japanese
Если rpm ругается, делаем "rpm --rebuilddb"
Если нужно создать какие-то директории или произвести действия в момент старта livecd
правим fedora-live в /etc/rc.d/init.d
Ставим желаемые пакеты, например, конфигуратор PPTP:
rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/fc7/pptp-releas...
yum --enablerepo=pptp-stable install pptpconfig
....
umount /proc
umount /sys
5. После приведения os.img в нужный вид, создаем новый пустой os.img и
копируем содержимое старого (нужно забить образ нулями, чтобы он лучше сжался,
иначе изменения будут только в метаданных и итоговый образ squashfs после сжатия получиться больше чем начальный).
cd mnt/disk/LiveCD/new_ext3
dd if=/dev/zero of=new_os.img bs=1k count=4096k
/sbin/mkfs.ext3 -F -L "LiveCD" -m 1 new_os.img
/sbin/tune2fs -c0 -i0 -Odir_index -ouser_xattr,acl new_os.img
Монтируем новый образ
mkdir /mnt/disk/LiveCD/new_ext3/new_sysroot
mount -o loop ./new_os.img /mnt/disk/LiveCD/new_ext3/new_sysroot
Копируем содержимое старого через rsync, чтобы сохранить расширенные атрибуты файлов.
rsync -a -v --acls --xattrs --hard-links /mnt/disk/LiveCD/new_ext3/sysroot /mnt/disk/LiveCD/new_ext3/new_sysroot
незабываем размонтировать и переименовать новый образ
umount /mnt/disk/LiveCD/new_ext3/sysroot
umount /mnt/disk/LiveCD/new_ext3/new_sysroot
rm /mnt/disk/LiveCD/new_ext3/new_sysroot
mv /mnt/disk/LiveCD/new_ext3/new_os.img /mnt/disk/LiveCD/new_ext3/os.img
6. Сжимаем ext3 образ
rm /mnt/disk/LiveCD/newcd/squashfs.img
cd /mnt/disk/LiveCD/new_ext3/
/sbin/ksquashfs os.img sysroot /mnt/disk/LiveCD/newcd/squashfs.img
7. Создаем iso образ для записи на CD:
mkisofs -o ./live.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
-boot-info-table -J -r -hide-rr-moved -V "Fedora-7-Live-i386" /mnt/disk/LiveCD/newcd/
Если появится желание изменить метку диска Fedora-7-Live-i386, не забудьте поменять ее в isolinux/isolinux.cfg
URL: http://wiki.opennet.ru/LiveCD
Обсуждается: http://www.opennet.dev/tips/info/1430.shtml