Live CD keszitese

Fórumok

Live CD keszitese

Hozzászólások

Üdv mindenkinek!

Elhatároztam, hogy készítek egy debian live cd-t.
Találtam is két csomagot bootcd 2.41 és bootcd-mkinitrd 2.41
amivel fájdalommentesen lehet live cd-t készíteni.
Felraktam az alap rendszert és az egyéb szükséges csomagokat kb 170MB lett.
Módosítottam a konfig állományt /etc/bootcd/bootcdwrite.conf értelem szerűen.
Majd lefuttattam a bootcdmkinitrd és bootcdwrite programokat.
(ebben a sorrendben) Minden hiba és figyelmeztetés nélkül szépen
létrejött a cdimage.iso file.
A kiírt cd-ről indítva a rendszert ezt a hibaüzenetet kapom:

[code:1:6c454b4a8d]
...
bootcdmodprobe ide-generic
bootcdmodprobe ide-floppy
ide-floppy driver 0.99.newide
bootcdmodprobe ide-cd
hda: ATAPI 48X CD-ROM drive, 120kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
bootcdmodprobe isofs
pivot_root: No such file or directory
/sbin/init: 426: cannot open dev/console: No such file
Kernel panic: Attempted to kill init![/code:1:6c454b4a8d]

Arra gyanakszom hogy a root file-rendszerrel van gondja
így nem tudja folytatni a rendszer betöltését.
Megnéztem az initrd.img file-t és úgy tűnik, hogy megvan benne
minden ami kellhet. Már semmi ötletem nincsen... mi lehet a probléma?
Egyáltalán hol akad el? Már az initrd rossz vagy a cd-ről nem tudja elérni
a root file-rendszert? Ez nekem nem világos...

[quote:2fa2881df2="vmiklos"]de ami a legfontosabb: ha initrdt használasz akkor a root az ne /dev/hdc legyen, hanem /dev/ram!

Én egy ujjal sem nyúltam hozzá :)
A bootcdmkinitrd ara hivatott hogy elintézze az initrd.img-t.

[quote:2fa2881df2="vmiklos"]
a /dev/hdc gonolom valahol te adtad meg, gonolva arra, h majd cdről akarsz boololni, de ezúttal tévedtél :wink:

Bár én adtam volna meg... (akkor ki tudnám javítani) az egész teljesen magától történt.

Végül is teljesen véletlenül rájöttem, hogy hol rontottam el.

A csomag leírása szerint egy olyan változatot készít az élő rendszerről ami
cd-ről fog futni. Ezért gondoltam hogy a cdrom a hda kell hogy legyen, mert
az élő rendszer root-ja is a hda1 volt. De nem így van... ez a feltételezés rossz.
Amikor elkészíti a live cd-t akkor megnézi (fstab vagy valami...) hogy hol van
a cdrom. Olyankor persze nem lehet hda mert ott az élő rendszer van.
Az én esetemben hdc volt a cdrom, ezért a live cd-t úgy készítette el hogy
a root a hdc-n legyen. Én marha meg mindíg átraktam a hda-ra a cdrom-ot.
Ezért nem tudta betölteni a root-ot.
Tehát ha nem bántom az eszközöket akkor már elsőre jó lett volna.

Azért közönöm az önzetlen segítséget mindenkinek.

inkább fogd a knoppixot,és ami nem tetszik, az írd át benne :wink:

[quote:522c57a790="vmiklos"]inkább fogd a knoppixot,és ami nem tetszik, az írd át benne :wink:

Köszi... :D

Kiprobáltam úgy is hogy:
cdrom --> hda
régi rendszer (amiről készült a live cd) --> hdc

kernel paraméternek átadtam root=/dev/hdc1 (a régi root)
Így a live cd-ről indítva a rendszert szépen betöltődik a root
file-rendszer...
Tehát az a probléma hogy nem éri el a root -ot a cd-n... jól látom?
Most már csak a megoldást kell megtalálnom.

imho be se húzza az initrdt. mert abban lenne a /dev/console :wink:

[quote:58e0aaebc3="vmiklos"]imho be se húzza az initrdt. mert abban lenne a /dev/console :wink:

A boot folyamat így kezdődik:

[code:1:58e0aaebc3]
Searching for Boot Record from CDROM..OK

ISOLINUX 2.10 2004-06-18 Copyright (C) 1994-2004 H. Peter Anvin
boot:
Loading /isolinux/vmlinuz....................
Loading /isolinux/initrd.........................................................
.........................
Ready.
Uncompressing Linux... Ok, booting kernel.
Linux version 2.6.6-2-386 (wli@tisifone) (gcc version 3.3.3 (Debian 20040422)) #
...
[/code:1:58e0aaebc3]

Én ebből arra következtetek, hogy betölti az initrd-t.
(de lehet hogy én nem látom jól)

Ha felteszed valahová, szívesen kipróbálom!!!

Köszi!

nem találja a /dev/console-t ezért problémázik. Valahogyan menjél bele a livecd-n lévő /dev-be és ott add ki a
[code:1:7b3f909650]mknod -m 660 console c 5 1[/code:1:7b3f909650]
parancsot.

[quote:3e1a3a8470="lacipac"]nem találja a /dev/console-t ezért problémázik. Valahogyan menjél bele a livecd-n lévő /dev-be és ott add ki a
[code:1:3e1a3a8470]mknod -m 660 console c 5 1[/code:1:3e1a3a8470]
parancsot.

Belenéztem az mkinitrd.img file-ba, és abban van /dev/console.
Az élő rendszeren (amiből a live cd készült) szintén van /dev/console.
Következésképp a live cd-n is kell hogy legyen.

Engem inkább ez idegesít:
[code:1:3e1a3a8470]pivot_root: No such file or directory[/code:1:3e1a3a8470]
Ez mi az ördög?
Teljesen logikus, hogy ha nem éri el a root-ot akkor a /dev/console -t sem.

maszili: ilyen paraméterek a kernelnek, h
initrd=initrd.img load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=1000 root=/dev/ram
megvannak?
a ramdisk_size az persze csak példa, meg az initrd=initrd.img is, azt cseréld le a saját érdékeidre
tehát lehet, h az isolinux behúzza az initrdt, de a kernel nem vesz róla tudomást

Debian Live CD készítése

Hogyan készítsünk gyorsan és egyszerűen olyan
rendszert ami CD-ről futtatható?

A megoldás kézenfekvő!
A Debian rendszer tartalmaz olyan eszközöket
melyek segitségével ez a probléma megoldható.

Itt most leírom hogy én hogyan csináltam.

Az első lépés, hogy feltelepíted az alap
rednszert. Ez az én esetemben a Debian Woody 3.0
volt. A telepítés részleteire most nem térek ki.

Ezek után én frissítettem az egész rendszert
a Debian Sid változatára.

(ne felejtsd el átírni az /etc/apt/sources.list file-t)
apt-get dist-upgrade

Majd felraktam az újabb kernelt is.

apt-get install kernel-image-2.6.6-2-386

A rendszer és a kernel frissítése nem kötelező.
Én azért csináltam mert az újabb kernel
initrd.img -vel érkezik és igy nincs szükség
kernelfordításra. Ha máskép csinálod akkor
neked kell elkészíteni az initrd.img-t vagy
olyan kernelt kell fordítanod amiben benne vannak
a szükséges dolgok ahhoz, hogy cd-ről működhessen
a rendszer.

Ha mindez megvan akkor rakd fel a live-cd készítő
eszközöket.

apt-get install bootcd

Mivel ez most az initrd.img vátozat ezért szükség lesz
erre a csomagra is.

apt-get install bootcd-mkinitrd

A következő lépés a bootcdwrite konfigurálása.
Néhány dolgot be kell állítani a /etc/bootcd/bootcdwrite.conf
állományban. Itt most csak azokat a beállításokat sorolom
fel amiket én módosítottam és eltérnek az alapértelmezettől.

[code:1:3c9da342e3]
# a lemásolandó rendszer root-ja
SRCDISK=/

# a használni kívánt rendszermag
KERNEL=$SRCDISK/boot/vmlinuz-2.6.6-2-386

# a ramdisk mérete a memóriában
# én most 16MB-ot állítottam be
RAMDISK_SIZE=16384

# most csak cd-kép file keszül
BLANKING=no
ISO_ONLY=yes

# ez a könyvtár (ahová a cd-kep készül) ne kerüljön
# a cd-re
NOT_TO_CD="$SRCDISK/livecd $SRCDISK/sys"

# ide készül el a cd-kép file és ez a bootcd munkaterülete
VAR=/livecd/iso

# az initrd megadása
INITRD="$(dirname $KERNEL)/initrd.img-$(basename $KERNEL | cut -d- -f2-)"

# ha ráfér a rendszer egy cd-re akkor fölösleges tömöríteni
COMPRESS="no"
[/code:1:3c9da342e3]

Ezek után létre kell hozni a bootcd munka könyvtárát.

mkdir -p /livecd/iso

Továbbá ki kell javítani a /etc/lilo.conf állományt

[code:1:3c9da342e3]
image=/vmlinuz
label=linux
read-only
initrd=/initrd.img <== ezt írd ide ha eddig nem volt
[/code:1:3c9da342e3]

Ha a beállításokkal készen vagy akkor módosítani kell
az initrd.img-t.

bootcdmkinitrd

Ez a program elvégzi a megfelelő módosításokat és
elintézi a lilo-t is.

A következő lépés a cd-kép file elkészítése.
Mivel a beállítások és az előkészületek fentiek szerint mar
megtörténtek már csak egy dolog van hátra.

bootcdwrite

Ha rendben befejeződött a program futása akkor a
/livecd/iso/cdimage.iso allomány tartalmazza
a kész rendszert.

Ezt kiírva egy lemezre már működik is a dolog.

Arra figyelj, hogy a CDROM meghajtó helyét
NE változtasd meg mert a live-cd ott fogja
keresni ahol akkor volt amikor készítetted
a cd-t. Tehát:

élő rendszer:
harddisk=hda
cdrom=hdc

live-cd:
harddisk=
cdrom=hdc

Remélem, hogy ezzek a kis leírással tudtam segíteni...

koszi szepen, kiprobalom...aaaz biztos :)

frank

[quote:559aec7bad="vmiklos"]maszili: ilyen paraméterek a kernelnek, h
initrd=initrd.img load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=1000 root=/dev/ram
megvannak?

A bootcdwrite.conf ide vonatkozó részlete:

[code:1:559aec7bad]
RAMDISK_SIZE=16384
APPEND="" <<== ez lehet gond... akkor ide felsorolom a szukseges parametereket
[/code:1:559aec7bad]

Én naív kezdő arra gondoltam, hogy az ilyen triviális dolgokat elintézi a program
ami elkészíti a live cd-t.

[quote:559aec7bad="vmiklos"]tehát lehet, h az isolinux behúzza az initrdt, de a kernel nem vesz róla tudomást

Ez látszik körvonalazódni...

a isolinux.conf idevonatkozó részét plz másold be
(én meg naívan arra gondolok... debian.... no comment ;-) )

Én átírtam a slackware-livecd make scriptet, amit innen szedhettek le:
https://tom.tdc.hu/debianlive/debian-livecd-scripts.tar.gz

Van benne pár bug még (cd meghajtot nem ismeri fel, hanem fix-en hdc-re van állítva a scriptekben... és még sok egyéb:)), de legalább működik és könnyen el lehet készíteni egy LiveCD-t.

Van egy fájl (LIVECD_CREATE_HOWTO) a devel dir alatt. Ebben van a rövid leírása, hogy kell használni.

Van a csomagba egy script, ami még a boot image-t is elkészíti.

[quote:d0c80297c3="vmiklos"]a isolinux.conf idevonatkozó részét plz másold be
(én meg naívan arra gondolok... debian.... no comment ;-) )

Bemásolnám ha tudnám, hogy hol van... :oops:

A find / -iname "*isolinux*" eredménye:

[code:1:d0c80297c3]
/usr/share/doc/syslinux/isolinux.doc
/usr/lib/syslinux/isolinux.bin
/usr/lib/suslinux/isolinux-debug.bin
[/code:1:d0c80297c3]

Az isolinux.doc -ban ez áll:

... Copy isolinux.bin, a config file called "isolinux.cfg" ...

Ilyen allományt nem találtam. :?
Lehet hogy a bootcd, konfig állomány nélkül (parancssori paraméterekkel)
használja az isolinux-ot?...

[quote:fb528a2d5b="athom"]Én átírtam a slackware-livecd make scriptet

azokat nem slackwarehez írták, hanem úgy, h hordozható legyen, és így aztán könnyen használható bármilyen disztró alatt :wink:

[quote:b127d8fc6a="athom"]Én átírtam a slackware-livecd make scriptet, amit innen szedhettek le:
https://tom.tdc.hu/debianlive/debian-livecd-scripts.tar.gz

Van benne pár bug még (cd meghajtot nem ismeri fel, hanem fix-en hdc-re van állítva a scriptekben... és még sok egyéb:)), de legalább működik és könnyen el lehet készíteni egy LiveCD-t.

Van egy fájl (LIVECD_CREATE_HOWTO) a devel dir alatt. Ebben van a rövid leírása, hogy kell használni.

Van a csomagba egy script, ami még a boot image-t is elkészíti.

Köszi az infót!

Azért még nem adom fel...
Ha része a debian-nak akkor biztosan működik, csak én vagyok béna hozzá.

[quote:36d9162ea6="maszili"]Bemásolnám ha tudnám, hogy hol van... :oops:

isolinux.cfg, nem conf, elírtam
[quote:36d9162ea6="maszili"]
Az isolinux.doc -ban ez áll:
... Copy isolinux.bin, a config file called "isolinux.cfg" ...
Ilyen allományt nem találtam. :?
Lehet hogy a bootcd, konfig állomány nélkül (parancssori paraméterekkel)
használja az isolinux-ot?...

a bootcdn keresd, ott ahol az initrd is van (abban a könyvárban)

Két apróság lemaradt a konfig állományból... :oops: javítottam.

[quote:ac386b17c9="vmiklos"][quote:ac386b17c9="athom"]Én átírtam a slackware-livecd make scriptet

azokat nem slackwarehez írták, hanem úgy, h hordozható legyen, és így aztán könnyen használható bármilyen disztró alatt :wink:

Hááát azé' elég sok hour-t csesztem el rá, bár előtte még én se csináltam ilyet.

Sok slackware specifikus dolgot találtam a scriptekbe. Valahol átírni kellett, valahogy elvenni/hozzáadni...

[quote:9489d3bb59="vmiklos"]a bootcdn keresd, ott ahol az initrd is van (abban a könyvárban)

/isolinux/isolinux.cfg tartalma:

[code:1:9489d3bb59]
default linux
timeout 50
prompt 1
label linux
kernel /isolinux/vmlinuz
append initrd=/isolinux/initrd root=/dev/hdc ramdisk_size=16384
label hda
kernel /isolinux/vmlinuz
append initrd=/isolinux/initrd root=/dev/hda ramdisk_size=16384
label hdb
kernel /isolinux/vmlinuz
append initrd=/isolinux/initrd root=/dev/hdb ramdisk_size=16384
label hdc
kernel /isolinux/vmlinuz
append initrd=/isolinux/initrd root=/dev/hdc ramdisk_size=16384
label hdd
kernel /isolinux/vmlinuz
append initrd=/isolinux/initrd root=/dev/hdd ramdisk_size=16384
label scd0
kernel /isolinux/vmlinuz
append initrd=/isolinux/initrd root=/dev/scd0 ramdisk_size=16384
label scd1
kernel /isolinux/vmlinuz
append initrd=/isolinux/initrd root=/dev/scd1 ramdisk_size=16384
display display.txt
[/code:1:9489d3bb59]

[quote:ca6139ef4e="athom"]Hááát azé' elég sok hour-t csesztem el rá, bár előtte még én se csináltam ilyet.

Na én pont ezért nem szeretném feltalálni a melegvizet... :)
Nálam sokkal okosabbak már készítettek erre eszközöket,
mint például a bootcd amivel most próbálkozok.
Ha sikerül összehozni akkor írok majd egy step by step leírást
hogy másnak ne kelljen így szenvedni vele....

Üdv!

Keresnék olyas valakiket, akik csak minimálisan is értenek Live CD készítéshez (Szerintem leginkább slackware alapó, de ha valakinek van valami másban tapasztalata... :) ). Kérem látogasson el a ide:

http://unidev.hu/node/33

Köszönöm!

[quote:47d60b0234="maszili"][code:1:47d60b0234]
default linux
timeout 50
prompt 1
label linux
kernel /isolinux/vmlinuz
append initrd=/isolinux/initrd root=/dev/hdc ramdisk_size=16384
(...)
display display.txt
[/code:1:47d60b0234]

abba config fileba, ahol az előbb APPEND="" volt, oda próbáld meg beírni ezt:
APPEND="load_ramdisk=1 prompt_ramdisk=0"
de ami a legfontosabb: ha initrdt használasz akkor a root az ne /dev/hdc legyen, hanem /dev/ram!
a /dev/hdc gonolom valahol te adtad meg, gonolva arra, h majd cdről akarsz boololni, de ezúttal tévedtél :wink:

[quote:a59589d3a7="taltos"]Üdv!

Keresnék olyas valakiket, akik csak minimálisan is értenek Live CD készítéshez (Szerintem leginkább slackware alapó, de ha valakinek van valami másban tapasztalata... :) ). Kérem látogasson el a ide:

http://unidev.hu/node/33

Köszönöm!

Nekem van egy komplett Live-CD készítő rendszerem, nagyon elegáns
a kimenete. Beágyazott rendszerekhez csináltam, slackware alapú.

Én demo anyagokhoz és a saját internetszerver üzemeltetéséhez
használom. Ha érdekel valakit:

mailto:hup@meditor.hu

Kb 2 hét múlva az egész anyag kint lesz a meditor.hu ftp szerveren,
sok más dologgal együtt (pl: saját fejlesztésű szövegszerkesztő
C programozóknak: Xmedit - forrással együtt.)
ftp public@meditor.hu - val lesz elérhető.

Ha kint vannak a cuccok önálló topikot nyitok róla, de a fent említett
címen érkező levelekre addig is válaszolok.

Üdv mindenkinek: meditor

Hali,

Firefox-ot probaltatok mar hasznalni debian bootcd-s live cd-n?
A live CD-n a /var tartalma atkoltozik a /var.ro-ba (gondolom, a /var irhato kell, h legyen).
Na de akkor firefox hogyan? O a /var/lib-bol probalna okoskodni...
Jelenleg csak ennyit tudtam tenni:

rm -rf /var/lib/mozilla-firefox
cp -R /var.ro/lib/mozilla-firefox /var/lib

Okosabb 5let esetleg?

fns

Üdv mindenkinek! Ezzel a bootcdwrite programmal meg lehet oldani azt, hogy az X infrastruktúra, grafikus felület belemenjen a Live CD-be? Vagy csak a karakteres felület mehet bele? válaszotokat előre is köszönöm.

Sziasztok!

Végig olvastam ezt a topicot és felmerült bennem egy kérdés:
Initrd.img nélkül nem is tudok "univerzális" live cd-t csinálni?

Úgy értem, hogy míg initrd-vel a root = /dev/ram (minden esetben),
addig initrd nélkül pl. a root = /dev/hdc... és ha nem ott van
a CD meghajtó akkor "Unable to mount root fs"... Erre nincs valami
megoldás az initrd alkalmazásán kívül?

A válaszokat előre is köszönöm.

Üdv: Chris