Szeretettel köszöntelek a Linux klub közösségi oldalán!
Csatlakozz te is közösségünkhöz és máris hozzáférhetsz és hozzászólhatsz a tartalmakhoz, beszélgethetsz a többiekkel, feltölthetsz, fórumozhatsz, hírt küldhetsz be, stb.
Ezt találod a közösségünkben:
Üdvözlettel,
M Imre
Linux klub vezetője
Amennyiben már tag vagy a Networkön, lépj be itt:
Szeretettel köszöntelek a Linux klub közösségi oldalán!
Csatlakozz te is közösségünkhöz és máris hozzáférhetsz és hozzászólhatsz a tartalmakhoz, beszélgethetsz a többiekkel, feltölthetsz, fórumozhatsz, hírt küldhetsz be, stb.
Ezt találod a közösségünkben:
Üdvözlettel,
M Imre
Linux klub vezetője
Amennyiben már tag vagy a Networkön, lépj be itt:
Szeretettel köszöntelek a Linux klub közösségi oldalán!
Csatlakozz te is közösségünkhöz és máris hozzáférhetsz és hozzászólhatsz a tartalmakhoz, beszélgethetsz a többiekkel, feltölthetsz, fórumozhatsz, hírt küldhetsz be, stb.
Ezt találod a közösségünkben:
Üdvözlettel,
M Imre
Linux klub vezetője
Amennyiben már tag vagy a Networkön, lépj be itt:
Szeretettel köszöntelek a Linux klub közösségi oldalán!
Csatlakozz te is közösségünkhöz és máris hozzáférhetsz és hozzászólhatsz a tartalmakhoz, beszélgethetsz a többiekkel, feltölthetsz, fórumozhatsz, hírt küldhetsz be, stb.
Ezt találod a közösségünkben:
Üdvözlettel,
M Imre
Linux klub vezetője
Amennyiben már tag vagy a Networkön, lépj be itt:
Kis türelmet...
Bejelentkezés
Lássuk akkor mit is ír Bagoj úr a blogjában.
Sze'ntem menő dolog "saját linux terjesztést" gyártani, illetve egy meglévő linux terjesztést felhasználni arra, hogy az alapértelmezett alkalmazásokat mi határozzuk meg, majd ebből telepítővel ellátott livecd-t készítsünk.
Nincs szükségem az Ekigára, az Evolution levelezőre, a Transmission bittorrent kliensre, az f-spotra, az Eye of the Gnome-ra, a Totemre, a Sane-re... sorolhatnám. Kellene egy Thunderbird, egy mplayer, esetleg Skype. Mégis minden friss telepítéskor (ilyen mondjuk nem nagyon fordul elő a napi használatú gépen, hiszen mindig csak frissítek) ezeket az eltávolításokat és friss telepítéseket újra meg kell tenni. Wnidowsra léteznek eszközök, amelyekkel testreszabott telepítőt készíthetünk - akkor Ubuntura is kell lennie. Ez az ötletem aztán be is jött.
A könnyű út
Azért veszem előre a könnyű utat, mert aki amúgy se olvasná végig a postot, annak pontosan tökéletes a program, amit ajánlok. :-) Ez pedig a remastersys, amely csak Ubuntu, vagy abból leszármaztatott (*buntu, Mint stb.) terjesztésekre működik. A Klikit Linux terjesztés (amely egy Kubuntu + néme feltúrbózott tartalom) fejlesztői készítették ezt a varázslatosan konzseniális eszközt arra, hogy az izgalomtól sikongatva villámgyorsan készíthessünk futó rendszerünkről backupot vagy livecd-t. Értelemszerűen a backup később visszaállítható, bár ha jól olvasom, kell hozzá egy kis tudás... :-) Olyat még nem csináltam, de fogok.
Megjegyzések:
1. Más terjesztésre nincs ilyen? De, PCLinuxOS-re
remasterme; a Mandriva alatt mklivecd néven fut hasonló. Az alapötlet a
Mandrivás fiúktól jött.
2. De minek a rögös út? Hát, mert úgy tanul az ember, ha szív. :-)
3. Az ugye mindenkinek világos, hogy kb. dupla annyi helyre van
szükség, mint az aktuális fájlrendszer. Kevesebb hellyel bele se
kezdjünk...
A Remastersys ugyan nincs benne az alapértelmezett Ubuntu terjesztésben, de ez minket a legkevésbé sem fog zavarni:
bagoj@mycogen:~# echo "deb
http://www.remastersys.klikit-linux.com/repository remastersys/" >
/etc/apt/sources.list.d/remastersys.list && apt-get update
bagoj@mycogen:~# apt-get install remastersys
bagoj@mycogen:~# remastersys dist bagoj.iso
Mint látható, rootként dolgoztam. Ha a dist kulcsszót használjuk,
akkor az elkészült live cd nem fogja tartalmazni a felhasználóinkat,
tehát terjeszthető bárki számára. Ha viszont a backup kulcsszót
használjuk, akkor figyelmeztetek mindenkit, hogy a felhasználók is át
fognak kerülni! Tehát a dist-et leginkább egy friss telepítéssel érdemes
elkövetni; a livecd-n egy custom nevű felhasználó jön ekkor létre,
jelszó nélkül. A backup viszont át fogja vinni a saját beállításunkat,
ami mindenképpen nagy fegyvertény tud lenni.
Az ISO elkészültével esetleg érdemes törölni a létrehozott ideiglenes fájlokat:
bagoj@mycogen:~# remastersys clean
Ennyit a könnyű útról. :-) A nemrégiben elkészített rendszeren az ISO mérete mindössze 345 Mb lett (!!!). Most pedig leírom, hogy nagyjából hogyan kell ugyanezt kézzel megcsinálni (a program is hasonló elven működik).
(Ja, még egy megjegyzés: A menübe is bekerül a remastersys, de hiába kattintunk rá nem fog elindulni, csak parancssorból. Ennek oka, hogy a menüből a remastersys-gui-t indítaná, de annak fel kell tenni a zenity csomagot, ha még nincs fent; viszont ez a függőségeiben nincs benne.)
A livecd nem csak arra jó, hogy meg lehessen nézni előzetesen egy rendszert, mielőtt telepítjük, bár kétségkívül most a divat ezt mutatja. Régebben ezek a bootolható lemezek a rendszerek helyreállításában játszottak nagy szerepet, akár úgy, hogy valamilyen konfigurációs hibát állítottunk helyre, rosszabb esetben mentésből kellett visszarakni a rendszert. Mindez, úgy gondolom, ma is érvényes.
A livecd fájlszerkezete tartalmazza az élő rendszer teljes fájlrendszerét, tömörített állapotban. Ezen felül ott kell legyen egy grub konfiguráció, egy kernel, és az initramfs, amely a kezdeti bootot végzi; ez általában egy initrd.gz nevű fájl.
Szükség van néhány eszközre, ezeket telepítsük fel:
apt-get install mkisofs grub squashfs-tools linux-ubuntu-modules-$(uname -r)
1. Livecd könyvtárszerkezet létrehozása
Elkészítjük a könyvtárszerkezetet az élő rendszerből. Az initramfs legyártásához szükséges szkripteket megírhatnánk elölről, de miért tennénk, amikor mások megtették. A legnépszerűbb ilyen szkriptgyűjtemény a casper, amely ugyanezen a néven elérhető .deb formátumban is (le is fogjuk szedni). Ezek után már csak egy update-initramfs parancsra lesz majd szükségünk.
Első (igazi) lépésként elkészítjük a könyvtárakat, amiben dolgozni fogunk (ez egy chrootolt környezet). A squashfs helyére írhatunk ext2-t is, ha nem akarunk tömörítést, ekkor gyorsabb lesz a boot, de 90% hogy DVD-re lesz majd szükségünk. (Ext3-at értelemszerűen NE írjunk, aki ezt nem érti, kérem ne válassza a rögös utat). A WORK és CD változók csak azért kellenek, hogy ne kelljen annyit gépelni. :)
export WORK=~/work
export CD=~/livecd
export FORMAT=squashfs
export FS_DIR=casper
A livecd/casper, livecd/boot/grub, work/rootfs könyvtárak létrehozása:
sudo mkdir -p ${CD}/{${FS_DIR},boot/grub} ${WORK}/rootfs
Ezek után másoljuk le a fájlrendszerünket a ~/work/rootfs alá:
sudo rsync -av --one-file-system --exclude=/proc/*
--exclude=/dev/* \
--exclude=/sys/* --exclude=/tmp/* --exclude=/home/* \
--exclude=/lost+found / ${WORK}/rootfs
Az érthető, hogy a /proc, /dev, /sys, /tmp, /lost+found könyvtárakat kihagytuk, hiszen ezekben olyan fájlok vannak, amit majd boot közben hozunk létre. A /home-ról mindjárt beszélek. De előbb: Ha a /boot (vagy egyéb, amelyre szükségünk van) partíciónk külön van, azt is le kell másolnunk. Példa a /boot lemésolására:
cp -av /boot/* ${WORK}/rootfs/boot
Értelemszerűen behelyettesíthetjük pl. a /var lekopírozására.
No és mi lesz a /home-mal? Mivel nem feltétlenül akarjuk az összes felhasználónkat belemásolni a livecd-be, ezért a vak másolás helyett gondolkodjunk; először tegyük át csak a számunkra fontos beállítsokat:
sudo
cp -rpv --parents /home/bagoj/.mc/ /home/bagoj/.config/
/home/bagoj/.mplayer/ /home/bagoj/.mozilla/ /home/bagoj/Desktop
${WORK}/rootfs/etc/skel
Az /etc/skel alatt vannak azok a fájlok ugyebár, amelyeket az újonnan létrejövő felhasználók home könyvtárába a Linux bemásol, azaz ezek lesznek az alapértelmzetett beállításai. Ezzel igen sokat el lehet molyolni, én most ugrok a következő lépésre, ami a chroot környezet létrehozása, amiben a beállításokat véglegesítjük:
mount -o bind /dev/ ${WORK}/rootfs/dev
mount -t proc proc ${WORK}/rootfs/proc
chroot ${WORK}/rootfs /bin/bash
Azért egy pillanatra ilyenkor mindig elgondolkodom, hogy mennyire egyszerű egy működő linuxot készíteni egy másik linuxon belül. :-) Node dolgozzunk tovább, az alábbi csomagokra szüksége lesz a livecd-nek (az ubiquity az a livecd telepítő; ha nem akarjuk hogy telepíteni lehessen a livecd-nket merevlemezre, kihagyhatjuk, de szerintem nem érdemes). Nyilván itt még bármi mást is telepíthetünk:
apt-get install casper discover1 xresprobe ubiquity
depmod -a $(uname -r)
update-initramfs -u -k $(uname -r)
Az initramfs (ez már casper-es lesz!) legyártása után eltávolítjuk a /etc/passwd fájlból a rendszerbe felvitt, nem rendszerszintű felhasználókat. Erre jó alkalmat ad, hogy a system felhasználók id-je 1000 alatti, utána jönnek az interaktív felhasználók; úgyhogy egy kis szkriptet fabrikálunk erre:
for i in `cat /etc/passwd | awk -F":" '{print $1}'`
do
uid=`cat /etc/passwd | grep "^${i}:" | awk -F":" '{print $3}'`
[ "$uid" -gt "999" -a "$uid" -ne "65534" ] && userdel --force ${i} 2>/dev/null
done
Ez értelemszerűen csak "gép a gépben", tehát a lemásolt linuxon fog történni, de azért ellenőrizzük le hogy biztosan a chroot környezetben vagyunk-e! Szükséges még néhány rendszerfájl eltávolítása, amelyek egy livecd-s környezetben problémát okozhatnak:
rm
/etc/hosts /etc/hostname /etc/resolv.conf /etc/timezone /etc/fstab
/etc/mtab /etc/shadow /etc/shadow- /etc/gshadow /etc/gshadow-
/etc/gdm/gdm-cdd.conf /etc/gdm/gdm.conf-custom /etc/X11/xorg.conf
/boot/grub/menu.lst /boot/grub/device.map
apt-get clean
find /var/run /var/log /var/mail /var/spool /var/lock /var/backups /var/tmp -type f -exec rm {} \;
rm -r /tmp/* /root/* 2>/dev/null
[ -f "/etc/gdm/factory-gdm.conf" ] && cp -f /etc/gdm/factory-gdm.conf /etc/gdm/gdm.conf 2>/dev/null
(pl. a resolv.conf-ban vannak a DNS szerverek, ki tudja hogy ezek elérhetők-e majd minden esetben. Lehet, hogy más időzónában fogják használni, ezért a timezone sem maradhat. A gdm egyedi beállítások akadályozhatják a livecd autologinját stb.)
Hogy ne csak romboljunk, létrehozunk pár logfájlt, amire viszont szükség lesz:
touch /var/log/{dpkg.log,lastlog,mail.log,syslog,auth.log,\
daemon.log,faillog,lpr.log,mail.warn,user.log,boot,debug,mail.err,\
messages,wtmp,bootstrap.log,dmesg,kern.log,mail.info}
2. Ubiquity dolgai
Ahogyan írtam korábban, az Ubiquity használata opcionális - ez tudja telepíteni a livecd tartalmát a merevlemezre. Ennek megfelelő működéséhez szükség van két fájl előállítására, amelyek tartalmazzák a csomaglistát (a filesystem.manifest tartalmaz minden csomagot, és a filesystem.manifest-desktop csak a feltelepítendő csomagokat). Ezt az Ubuntu is nyilván ugyanígy csinálja. Tehát ezt a fejezetet csak akkor kell végigcsinálni, ha akarunk telepítőt!
dpkg-query -W --showformat='${Package} ${Version}\n' | tee ${CD}/${FS_DIR}/filesystem.manifest
cp -v ${CD}/${FS_DIR}/filesystem.manifest{,-desktop}
for i in 'ubiquity casper live-initramfs user-setup discover1 xresprobe
os-prober libdebian-installer4'; do sed -i "/${i}/d"
${CD}/${FS_DIR}/filesystem.manifest-desktop; done
3. Kilépés a chrootból
Ezután exit-tel lépjünk ki a chroot-ból, készen vagyunk.
4. A Livecd előkészítése
Megvan a könyvtárszerkezet, most a kis összefoglaló szerint előkészítjük a CD bebootolásához szükséges kernelt és initrd-t.
cp -vp ${WORK}/rootfs/boot/vmlinuz-$(uname -r) ${CD}/boot/vmlinuz
cp -vp ${WORK}/rootfs/boot/initrd.img-$(uname -r) ${CD}/boot/initrd.gz
cp -vp ${WORK}/rootfs/boot/memtest86+.bin ${CD}/boot
Ez a harmadik sor nem igazán feltétlenül szükséges; csak arra kell hogy a livecd-vel (az Ubuntu livecd-hez hasonlóan) tudjuk a memóriát is tesztelni. Mivel én ezt jó dolognak tartom, belerakom. Umountoljuk a chroot miatt felmountolt könyvtárakat:
umount ${WORK}/rootfs/dev ${WORK}/rootfs/proc
...majd készítsük el a squashfs fájlrendszert a könyvtárszerkezetünkből:
mksquashfs ${WORK}/rootfs ${CD}/${FS_DIR}/filesystem.${FORMAT}
Másoljuk a Grubot a helyére:
cp -v /usr/lib/grub/i386-pc/stage2_eltorito ${CD}/boot/grub
Megjegyzés: igazából ez az utolsó sor elég Ubuntu- és PC-specifikus lett. Szebb, ha a következő sort alkalmazzuk:
find /boot /usr/lib/grub/ -iname 'stage2_eltorito' -exec cp -v {} ${CD}/boot/grub \;
és akkor máris platformfüggetlenek lettünk.
Most meg kell szerkesztenünk a grub menü fájlját. Ehhez mindenki alkalmazza a kedvenc editorát; én a vi-t fogom. A lényeg, hogy a következő kerüljön a ${CD}/boot/grub/menu.lst fájlba:
default 0
5.
timeout 20
title Linux inditasa grafikus modban (alapertelmezett)
kernel /boot/vmlinuz BOOT=casper boot=casper persistent rw quiet splash
initrd /boot/initrd.gz
title Linux inditasa Safe modban
kernel /boot/vmlinuz BOOT=casper boot=casper xforcevesa rw quiet splash
initrd /boot/initrd.gz
title Linux inditasa szoveges modban
kernel /boot/vmlinuz BOOT=casper boot=casper nopersistent textonly rw quiet
initrd /boot/initrd.gz
title Memoriateszt
kernel /boot/memtest86+.bin
Az ISO fájl legyártása
Először is készítünk egy md5 fájlt, amely a többi fájl ellenőrző összegét tartalmazza, így könnyen ellenőrizhető, hogy megsérült-e valami a lemezen. Ezután pedig legyártjuk az ISO fájlt, amelyet utóbb kiírhatunk tetszőleges programmal:
cd $CD && find . -type f -print0 | xargs -0 md5sum | tee ${CD}/md5sum.txt
mkisofs -b boot/grub/stage2_eltorito \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-V "Bagoj Linugz" -cache-inodes -r -J -l \
-o ~/live-cd.iso $CD
A "Bagoj Linugz" helyére tetszőleges szöveg helyettesíthető (betartva az ISO9660 szabályait). :-)
6. Takarítás
Ha kipróbáltuk a CD-t (VMWare, Virtualbox, qemu...) és minden faja, akkor letörölhetjük a munkakönyvtárainkat:
rm -r ~/work ~/livecd
Talán ez az út sem olyan rögös, nemigaz? ;-)
Ennyi lenne. :) Az gondolom mindenkinek érthető, hogy a kiemelt részeket kell alkalmaznunk a terminálban (parancssorban).
Az eredeti cikk Bagoj úr tollából itt olvasható:
http://bagojur.blog.hu/2008/09/11/gyartsunk_sajat_live_dvd_t
Mindenki aki először próbálja legyen körültekintő. Csináljon mentést esetleg a rendszeréről. Jó magam is még kipróbálás előtt vagyok így nem tudhatom hol lehetnek buktatók. Csak óvatosan, főleg ha van már mit félteni. Sok sikert. Karesz.
|
|
M Imre írta 2 napja a(z) Fényképezés, képek szerkesztése és minden hasonló témakör fórumtémában:
Látta már Tatát és az Alpokat egy képen? Valószínűleg...
M Imre írta 2 napja a(z) Rövid, szines hírek fórumtémában:
Az Ubuntu hosszú távú támogatási kiadásai még ...
M Imre írta 5 napja a(z) Ugráló pingvin képhez:
Nemrég olvashatott nálunk arról, hogy a zsiráf milyen keveset ...
M Imre írta 6 napja a(z) Társalgó fórumtémában:
Ma van a Föld órája! 20:30-kor kapcsolj le egy órára, a ...
M Imre írta 6 napja a(z) Rövid, szines hírek fórumtémában:
Olcsó gyorstöltővel rukkolt elő az IKEA A két új USB-C töltőből az...
M Imre írta 1 hete a(z) Fényképezés, képek szerkesztése és minden hasonló témakör fórumtémában:
Salgado csodálatos fekete- fehér természetfotói | 2014. ...
M Imre írta 1 hete a(z) Rövid parancssoros megoldások, tippek, trükkök, tutorialok, magyarázatok ... fórumtémában:
UPT — Universal Package- management Tool ...
M Imre írta 1 hete a(z) Rövid, szines hírek fórumtémában:
8 Open Source Second Brain Knowledge Base Tools |...
M Imre írta 1 hete a(z) Rövid parancssoros megoldások, tippek, trükkök, tutorialok, magyarázatok ... fórumtémában:
Unlocking the Power of Storage: A Beginner's Guide to ...
M Imre írta 1 hete a(z) Rövid, szines hírek fórumtémában:
digiKam 8.3 Automatically Tags Images Using Deep Learning ...
E-mail: ugyfelszolgalat@network.hu
Kapcsolódó hírek:
Előzetes a Linux Mint 12-ről - irányok, fejlesztések
A nők szerepe a Linux világában - interjú Griechisch Erikával, az Ubuntu Women Hungary tagjával
Az X újraindítása reboot nélkül
Fontok telepítése - Infinality fontok Debian alá ... és egy hír