Как добавить пакеты в Gentoo LiveCD

Рубрика: Howto -> Linux
Метки: | |
Суббота, 12 июня 2010 г.
Подписаться на комментарии по RSS
Ровно два года назад я написал этот howto. Сегодня абсолютно случайно наткнулся на него на своем сервере. Решил выложить сюда "as is".

Необходимо:
  • Gentoo LiveCD (install-minimal)
  • рабочая Gentoo система
  • Пакеты:
    • sys-fs/squashfs-tools
    • app-cdr/cdrkit

Для начала нужно распаковать образ (iso) готового LiveCD куда-нибудь в /tmp/newlivecd/cd
Это можно сделать либо в MC "наступив" на файл (как он это делает я не понял), либо примонитровать его с -o loop и скопировать с него файлы.
burik-nb ~ # mkdir -p /tmp/newlivecd/cd
burik-nb ~ # mount -o loop ~/install-x86-minimal-2008.0.iso /mnt/cdrom
burik-nb ~ # cp -R /mnt/cdrom/* /tmp/newlivecd/cd/
burik-nb ~ # umount /mnt/cdrom
burik-nb ~ # cd /tmp/newlivecd

теперь нужно распаковать корневую ФС с livecd, именно в него chroot'ится initrd при загрузке burik-nb newlivecd # unsquashfs ./cd/image.squashfs
created 11102 files
created 872 directories
created 1685 symlinks
created 5138 devices
created 0 fifos
burik-nb newlivecd # ls
cd squashfs-root

архив нам больше не нужен burik-nb newlivecd # rm ./cd/image.squashfs
теперь можно устанавливать пакеты.
CFLAGS - использовал те, с которыми был собран софт на install-x86-minimal-2008.0.iso
USE - флаги не нужны, чем меньше тем лучше. (можно конечно и в CFLAGS -Os добавить)
ROOT - указывает куда именно portage будет устанавливать пакеты после компиляции
burik-nb newlivecd # CFLAGS="-O2 -march=i686 -pipe" USE="-*" ROOT="./squashfs-root/" emerge mc
............

Создаем squashfs обратно. burik-nb newlivecd # mksquashfs ./squashfs-root/ ./cd/image.squashfs -le
Parallel mksquashfs: Using 2 processors
Creating little endian 3.1 filesystem on image.sauashfs, block size 131072.
[====================================================] 11658/11658 100%
Exportable Little endian filesystem, data block size 131072, compressed
data, compressed metadata, compressed fragments, duplicates are removed
Filesystem size 56128.78 Kbytes (54.81 Mbytes)
37.91% of uncompressed filesystem size (148057.62 Kbytes)
Inode table size 149825 bytes (146.31 Kbytes)
27.58% of uncompressed inode table size (543231 bytes)
Directory table size 144473 bytes (141.09 Kbytes)
54.29% of uncompressed directory table size (266093 bytes)
Number of duplicate files found 2151
Number of inodes 19010
Number of files 11297
Number of fragments 695
Number of symbolic links 1689
Number of device nodes 5138
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 886
Number of uids 3
root (0)
nobody (65534)
ntp (123)
Number of gids 16
disk (6)
audio (18)
cdrom (19)
tty (5)
video (27)
floppy (11)
dialout (20)
kmem (9)
lp (7)
tape (26)
unknown (407)
wheel (10)
utmp (406)
portage (250)
root (0)
uucp (14)

Теперь можно это всё запихнуть обратно в iso-образ и загрузиться с него. burik-nb newlivecd # mkisofs -J -r -R -o newlivecd.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ./cd/

install-x86-minimal-2008.0-with-mc-and-stage3.iso

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



Valid XHTML 1.0 Transitional