LiveCD с Fedora 7

Материал из OpenWiki
Перейти к: навигация, поиск

Заметки по модификации LiveCD с Fedora 7

Задача ужать стандартный 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"
   Заменяем букмарки firefox в /usr/share/bookmarks/default-bookmarks.html
   и в настройках /usr/lib/firefox-2.0.0.3/defaults/pref ставим например user_pref("browser.startup.page", 0);
   Если нужно создать какие-то директории или произвести действия в момент старта livecd правим fedora-live в /etc/rc.d/init.d
   Ставим желаемые пакеты, напирмер, конфигуратор PPTP:
    rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/fc7/pptp-release-current.noarch.rpm
    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