view mobile version net4me Enable JavaScript in your browser! Linux education center net4me.
 
net4me logo

tux

linux commands
shell script
protocol
ip, tcp, smtp, ntp, ftp
telnet terminal
java and javascript
ajax web technology
documentation
howto, man, info
cisco in network
linux server
linux in home
online utility
and more more more.
python development
туе4ьу дштгч

  Содержание подраздела:

Как сделать свой CD c linux

Cборка загрузочного CD c “live"-системой:

1) собираем ядро с вкомпилеными опциями:
Block Devices –> RAM disk support,
–> Initial RAM disk (initrd) support
ну естественно ext2 поддержка и вся фигня типа нетворк модулей и что там
еще пригодится, в зависимости от будущего применения диска.

2) создаем дерево каталогов будущего CD:
/tmp/CD/
/tmp/CD/.boot
/tmp/CD/live

а также временные точки для монтирования образов:
/mnt/BOOT
/mnt/INITRD
/mnt/BIN
/mnt/SBIN
/mnt/USR
/mnt/LIB

3) создаем заготовку “boot-floppy” (загрузочный CDROM в процессе загрузки
изображает из себя флоп.. это BIOS-овы заморочки…)

dd if=/dev/zero of=/tmp/CD/.boot/boot.img bs=512 count=5760
mkfs.ext2 /tmp/CD/.boot/boot.img
mount -o loop /tmp/CD/.boot/boot.img /mnt/BOOT
mkdir /mnt/BOOT/boot
mkdir /mnt/BOOT/dev

4) копируем ядро
cp vmlinuz /mnt/BOOT
и загрузочный сектор:
cp /boot/boot.b /mnt/BOOT/boot/boot.b

копируем в /mnt/BOOT/dev необходимые девайсы: /dev/fd0, fd0E2880,
fd0H1440, loop0-loop8, mem, null, ram, ram0, ram1…, tty, tty0,tty1,tty2
- все рабочие девайсы не надо копировать СЮДА, их поместим внутрь
ramdisk’а.

5) готовим ramdisk: dd if=/dev/zero of=/tmp/initrd count=3072 (размер
подобрать экспериментально чтоб в за-gzip-енном виде влезло вместе с
ядром на 2.88Mb)

mkfs.ext2 /tmp/initrd
mount -o loop /tmp/initrd /mnt/INITRD
cd /mnt/INITRD
mkdir etc bin sbin tmp var cdrom dev lib mnt proc root usr

далее, выясняем какие библиотечки нужны с помошью ldd :

ldd /bin/bash , ldd /sbin/init и тп, копируем эти библиотеки в /mnt/INITRD/lib,
из программ нужно:

getty (agetty или чего там)
init,telinit,runlevel
sh (ash, bash или какую там шелл предпочитаете)
cmp
mkdir
mke2fs
mkfifo
mknod
mkswap
mount,umount
reset,tset
swapon,swapoff
hostname

все это дело кидаем в bin, делаешь симлинки sbin –> bin,
usr/bin –> bin, usr/sbin –> bin.
————–
Потом в /mnt/INITRD/etc создаем inittab, fstab, rc (необходимо) и по
желанию - другие конфигуряшки для авариййно-спасательного диска.
в inittab пишем:

id:2:initdefault:
si: ysinit:/etc/rc
g1:2345:respawn:/sbin/getty 9600 tty1
g2:23:respawn:/sbin/getty 9600 tty2
g3:23:respawn:/sbin/getty 38400 tty3
g4:23:respawn:/sbin/getty 38400 tty4

В rc:

#!/bin/sh
/bin/mke2fs /dev/ram1
/bin/mount -av
/bin/hostname emergency
/usr/bin/tset linux
/etc/rc.d/rc.modules
/etc/rc.d/rc.network
echo
echo “==================================”
echo “Welcome to EMERGENCY RESCUE system”
echo “==================================”
echo
/bin/mount /dev/ram1

в fstab:

/dev/ram0 / ext2 defaults 0 0
/dev/fd0 / ext2 defaults 0 0
/proc /proc proc defaults 0 0
/dev/cdrom /cdrom iso9660 ro,user 0 0
/cdrom/live/lib.img /lib ext2 ro,loop 0 0
/cdrom/live/sbin.img /sbin ext2 ro,loop 0 0
/cdrom/live/bin.img /bin ext2 ro,loop 0 0
/cdrom/live/usr.img /usr ext2 ro,loop 0 0
/dev/ram1 /tmp ext2 defaults 0 0

как можно заметить в вышеприведенных конфигах монтируются файлы *.img -
в них-то мы и кладем аварийные и спасательные примочки. Создаем
файлы-образы с помощью dd, размер - чтоб влезло все необходимое
Hабор подбираем экспериментально (для этого очень полезен перезаписываемый
CD-rewritable).

———————
далее.. собрав в /mnt/INITRD рамдиск, отмонтируем его, гзипуем и
кладем в /mnt/BOOT. Потом создаем /tmp/lilo.conf и в него пишем:

#lba32
vga = 0x030A
compact
message=/mnt/BOOT/boot/message
boot = /dev/loop0
disk = /dev/loop0
bios = 0x00
sectors = 36
heads = 2
cylinders = 80
install = /mnt/BOOT/boot/boot.b
backup = /dev/null
map = /mnt/BOOT/boot/map
timeout = 150
read-write
image = /mnt/BOOT/vmlinuz
initrd = /mnt/BOOT/initrd.gz
read-only
append="ramdisk_size=8192 load_ramdisk=1″
root = /dev/ram0

потом говорим
lilo -C /tmp/lilo.conf
он нам отвечает
added *vmlinuz

после этого отмонтируем /mnt/BOOT, идем в директорию /mnt/CD и делаем
образ cdrom-a:

mkisofs -o /tmp/image.iso -R -V"BOOT” -v -a -T -d -D -N
-b .boot/boot.img -c .boot/boot.b /mnt/CD

прожигаем диск (односессионный):
cdrecord -v -speed=4 dev=0,0,0 -eject /tmp/image.iso

Загружаемся

Взято с coder.paco.net
home back top
При копировании материалов нашего портала, сылка на net4me обязательна.
Рейтинг@Mail.ru   Valid HTML 4.01 Transitional     Яндекс цитирования   best billing

 



...

net4me snowflake
rfc2368
 
net4me portal This page last modified: Saturday, October 1, 2011   be in net. net4me

portal net4me linux education center