Linux live cd - az alapok
Standard bootolható CD El Torito, amelynek értelmében az, hogy a BIOS megtalálja a meghajtó CD-meghajtót, és néztem a boot képet. De van egy másik formájában isolinux, ez a megoldás nem használja az emulációs meghajtót, és lehetővé teszi, hogy minden CD-meghajtót.
Az indítási folyamat
Normál Linux rendszerindítási folyamata valahogy így néz ki:
- A számítógép futtatja a LILO vagy hasonlók.
- LILO tudja, hol a kernel és futtatja.
- Ez fut a kernel, miután a standard tesztek során, hogy csatolja a root fájlrendszert.
- Ezt követően, az / sbin / init, és az operációs rendszer indításakor szerint az / etc / inittab és szkriptek rc.d.
A folyamat a CD-ről egy kicsit más. Ismét van szükségünk bootloader, de tudniuk kell, hogyan készülék egy CD-meghajtót. Lehet / dev / hdb. / Dev / hdc és / dev / hdd. Még ha elmondjuk a rakodó, ahol a mag található, akkor meg kell mondani a kernel, ahol a root fájlrendszert. Keresi a CD-meghajtó segít isolinux. de ez nem oldja meg a problémát a keresést a root fájlrendszert. Sok indítólemezeket használja az úgynevezett initrd (RAM diszk), amely egy RAM lemezt legalább root fájlrendszert. Az ötlet az, hogy a kernel betölt egy minimális fájlrendszert, ami olyan modulok, amelyek lehetővé teszik, hogy megtalálja és töltse be a fő gyökér fájlrendszert. Most tekintsük a Linux rendszerindítási folyamata CD:
Létrehozása mag
Most kell, hogy hozzon létre egy kernel, hogy be tudja tölteni az initrd fájlrendszert. A folyamat az összeszerelés a mag opischem később, de most tegyük fel, hogy tudja, hogyan kell csinálni :) A kernel kell fordítanunk az initrd és RAM lemezeket. Mi lesz az alapértelmezett RAM lemez méretét, azaz a 4 MB. Azt is meg kell csatlakoztatni a támogató fájlrendszerek ISO9660 és EXT2. Miután felépítettük a kernel kell konfigurálni, hogy egy meghatározott root eszközt.
Tegyük fel, hogy éppen befejezte a parancsot, hogy bzImage
rdev / usr / src / linux / arch / i386 / boot / bzImage / dev / ram1
Ha nincs / dev / ram1. Meg kell létrehozni
640 mknod -m / dev / ram1 b január 1
Létrehozása könyvtárfa
Hozzon létre egy sablont a forgalmazás.
Key könyvtárak:- cdimage / - ez a könyvtár nem kerül rögzítésre CD.
- initrd / - Ez a könyvtár tartalmazza az initrd fájlrendszert.
- root / - Ez a könyvtár tartalmazza egy működő fájlrendszert.
Beállítás initrd
Initrd fázis egy egyszerű cél -, hogy egy működő fájlrendszert a / dev / ram1. Számos módja van erre. Felsoroljuk azokat a sorban:
Az általános lépéseket hajt végre a program:- A / proc.
- Nyissa meg a fájlt a / proc / ide / ide0 / hda / media. ha azt mondja: „cdrom”, ez azt jelenti, hogy megtaláltuk a CD (hmm, ha azt kell vezetni egy pár CD-meghajtó.). Ellenkező esetben ellenőrizze a / proc / ide / ide0 / hdb / media. / Proc / ide / IDE1 / hdc / media / proc / ide / IDE1 / hdd / media, amíg az első CD-meghajtó (mindkettő!). Vagyis, mi csak terhelni a négy IDE CD-meghajtók!
- Menj a / dev könyvtárban, és hozzon létre egy szimbolikus linket a cdrom eszköz megtalálható.
- Fel kell szerelni a CD-meghajtót / cdrom könyvtár.
- /cdrom/rootfs.gz nyitott és bontsa ki a / dev / ram1. A rootfs.gz kell EXT2 fájlrendszer mérete 4 MB.
- Mount / dev / ram1 in / ram.
- Menj a könyvtárba / ram / dev és hozzon létre egy szimbolikus linket a készülék a CD-meghajtót.
- Unmount / ram. / Cdrom és a / proc.
Munka gyökér fájlrendszer
Az egyik fájlrendszer initrd nem sokat. Meg kell létrehozni egy hasznos root fájlrendszert. És mivel mi használ a RAM disk kötet 4 MB, ez kissé összenyomódik. Miért nem használja a RAM lemez nagyobb? Igen, csak nem kell érniük hiába memóriát, és meg kell emlékezni a felhasználó számítógépén kis mennyiségű RAM. Vozmom könyvtár:
ld-2.1.3.so
LD-linux.so.2 -> ld-2.1.3.so
libbz2.so.1.0 -> libbz2.so.1.0.0
libbz2.so.1.0.0
libc-2.1.3.so
libc.so.6 -> libc-2.1.3.so
libcom_err.so.2 -> libcom_err.so.2.0
libcom_err.so.2.0
libdl-2.1.3.so
libdl.so.2 -> libdl-2.1.3.so
libe2p.so.2 -> libe2p.so.2.3
libe2p.so.2.3
libext2fs.so.2 -> libext2fs.so.2.4
libext2fs.so.2.4
libm-2.1.3.so
libm.so.6 -> libm-2.1.3.so
libncurses.so.5 -> libncurses.so.5.0
libncurses.so.5.0
libtermcap.so.2 -> libtermcap.so.2.0.8
libtermcap.so.2.0.8
libuuid.so.1 -> libuuid.so.1.2
libuuid.so.1.2
Nem mindegyik van szükség, hogy az operációs rendszer elindításához. A katolege / bin szükséges közművek. script / sbin / init is létrejön. Az / etc könyvtárban inittab termcap fájlokat. és rc.d. katalógus amelyben a script az rc.St működtetéséhez használt operációs rendszer. Adunk egy kulcsfontosságú része a inittab fájlban:
Használata sulogin konzol vezet az a tény, hogy a felhasználó belép a közigazgatási rendszer.
Az / etc / fstab a következő:
/ Dev / ram1 / ext2 defaults január 1
Semelyik / dev / pts devpts gid = 5, üzemmód = 620 0 0
none / proc proc defaults 0 0
Emellett ott van egy üres könyvtárat / initrd. ami azt jelzi, hogy a initrd fázis befejeződött, és az operációs rendszer a root file / dev / ram1 Szerelt fájlrendszer initrd (elhelyezkedik / dev / ram0) eltávolítjuk a / initrd. Ez azt jelenti, hogy csatold le, és szabad a használt memória a RAM-lemez.
Lássuk a belsejében az rc.St script:
#! / Bin / sh
PATH = / bin; export PATH
echo "System init"
mount -t proc none / proc
mount -o remount, rw /
echo „Találd meg a statiszták a CD-t és csatlakoztassuk”
ha a [-r / dev / cdrom]; majd
mount -t iso9660 / dev / cdrom / cdrom
mount / dev / hda9 / a
fi
cd /
umount / initrd
freeramdisk / dev / ram0
Létrehozása CD
Most van egy mag szerkezete fájlrendszerek initrd és rootfs. Hogyan lehet ezeket írva a CD-ROM-on? Tekintsünk egy egyszerű könyvtár struktúra a CD-ROM-on:
/rootfs.gz
/ Isolinux /
isolinux.cfg - konfigurációs fájl
isolinux.bin - rakodó
vmlinuz - kernelt initrd
initrd.gz - a kiindulási fájlrendszer
Tekintsük isolinux.cfg file:
címke linux
kernel vmlinuz
append initrd = initrd.gz
Nagyon hasonló a LILO-bejegyzést. Fontos eleme ennek a fájlnak a nevét, a kernel és a húr a nevét a kiindulási fájlrendszer. Ez a fájl egy kezdő tömörített fájl rendszer nem számít, mert a kernel később csomagolja ki magát.
Mi a helyzet initrd és rootfs. Mindkét rendszer EXT2 mérete 4 MB tömörített fájlokat. Az alábbiakban egy script létrehozni őket:
BASE = / src / iso
SRC = $ BASE / initrd
$ Dest = $ BASE / cdimage / isolinux / initrd
dd if = / dev / zero of = $ DEST bs = 1k count = 4096
/ Sbin / losetup / dev / loop1 $ dest
mkfs -t ext2 -m 0 / dev / loop1
mount / dev / loop1 / mnt
cd $ SRC
tar cf -. | (Cd / mnt; tar xf -)
umount / mnt
/ Sbin / losetup -d / dev / loop1
gzip -f $ dest
Rögzíteni üres legyen a könyvtárszerkezetet fent bemutatott / src / iso / cdimage összegyűlnek a lemez image:
mkisofs -o /iso.img -b isolinux / isolinux.bin -c isolinux / boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-tábla -l \
-R -R / src / iso / cdimage
boot.cat fájl jön létre eredményeként a parancs végrehajtása. -l opció. R és -R, hogy bővíteni kell RockRidge (cm. CD-írás HOGYAN), amely lehetővé teszi a használatát egy CD-ROM symlinks és nevek a kis- és nagybetűket. A kapott fájlt kell írni egy CD-ROM segítségével cdrecord (hagyja az edzés :). És haladó felhasználók protestit kapott elosztó segítségével a vmware.
Az alapot a további javulás
Ahogy hozzá szükséges funkciókat csak neked, forgalmazásával funkciót? Mint már említettük, a / usr könyvtár egy szimbolikus linket a be / usr könyvtárat a CD-ROM-on. Használja ezt a lehetőséget!
framebuffer
[*] VGA szöveges konzolon
[*] Videó mód kiválasztása támogatás
[*] Támogatása keret puffer eszközök (kísérleti)
[*] VESA VGA grafikus konzol
[*] Részletes alacsony szintű vezető lehetőségek
<*> 8 bpp csomag pixel támogatás
<*> 16 bpp csomag pixel támogatás
<*> 24 bpp csomag pixel támogatás
<*> 32 bpp csomag pixel támogatás
<*> VGA karakter / tulajdonságok támogatása
[*] Válassza befordított betűtípusok
[*] VGA 8x8 font
[*] VGA 8x16 font
Most meg kell adni a megfelelő grafikus mód, hogy fogja használni az X-szerver. Erre nebhodimo adjon meg egy egyedi lehetőség a kernel. Így meg kell változtatni a isolinux / isolinux.cfg file:
címke linux
kernel vmlinux
append initrd = initrd.gz vga = 791
timeout 30
prompt 1
kijelző menu.txt
alapértelmezés 1
1 címke
kernel vmlinuz
append initrd = initrd.gz
2 címke
kernel vmlinuz
append initrd = initrd.gz vga = 788
3 címke
kernel vmlinuz
append initrd = initrd.gz vga = 791
menu.txt fájl tartalmazza a következőket:
1) Szöveges mód
2) 800x600 x 16 bites színmélység
3) 1024x768 x 16 bites színmélység
Leírta, mint mindent. Most indulunk, hogy saját forgalmazás.