Как добавить пакеты в Gentoo LiveCD
Рубрика: Howto -> Linux
Метки: gentoo | linux | livecd
Суббота, 12 июня 2010 г.
Подписаться на комментарии по RSS
Метки: gentoo | linux | livecd
Суббота, 12 июня 2010 г.
Подписаться на комментарии по RSS
Ровно два года назад я написал этот howto. Сегодня абсолютно случайно наткнулся на него на своем сервере. Решил выложить сюда "as is".
Необходимо:
Для начала нужно распаковать образ (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
Необходимо:
- 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
Оставьте комментарий!