Hozzászólások
-
SzerzőBejegyzés
-
tovis wrote:Kitől kérem be az aktuális boot ID -t? – automatikus boot kell.
Csak tudod melyik vinyóra telepítetted az OS-t. Minden vinyónak van sorozatszáma, ami a /proc/scsi/scsi fájlban látszik. Ezt automatikusan meg lehet keresni.
tovis wrote:Ki fogja végrehajtani az általad leírt parancsot és mikor?Mivel a boot lemezen van, és /sbin/init a neve, ezért a kernel indítja, ahányszor bootolsz a CD-ről.
tovis wrote:Ráadásul (lehet hogy nem említettem?) Debian netinst -el előfordult, hogy megcserélte a SCSI ID -t bootoláskor (van egy SCSI hdd és bvan egy SATA hdd a gépben). Ha leállítoma gépet (poweroff) és kisvágtatva újra indítom akkor megint visszaáll! – mi ez, wos? Ha ilyen előfordul akkor az fstab is borul – /home és a többi
Egyébként nem tudom mit fog csinálni egy rendszer ha mondjuk /dev/sdb1 ként volt telepítve és /dev/sda1 -ként ébresztik?Tehát minden bootolás alkalmával kiszámíthatatlan az SCSI vezérlőhöz rendelt azonostó (scsi0 vagy scsi1). Erre a megoldás a „LABEL” használata az fstab-ban (man fstab).Az e2label paranccsal megadod a partíció címkéjét (pl, root), majd a mount és a grub szépen megkeresi hol is van a partíció. Bár a régebbi Debianok nem támogatják, sajna. Ha van e2label valamelyik csomagban, akkor működni fog.
Persze ez nem oldja meg a bootolást, de ha van egy behúzott kernel, akkor már menni fog. Mellesleg USB flash-ről is lehet bootolni, ha a BIOS támogatja.
# e2label /dev/sda1 root
/etc/fstab (részlet):
LABEL=root / ext3 defaults 1 1Az SCSI ID problémát is meg lehet oldani egy kis trükkel. Írsz egy pici C progit, ami bekéri/megnézi az aktuális boot ID-t, majd végrehajtja a 2 parancsot: „mount / $DEV -o remount” és „/sbin/init”. Mindezt statikusan fordítod, és beteszed init néven az sbin/ könvtárba a bool kernel mellé. Írhatok példakódot, ha kell.
Az SCSI ID problémát is meg lehet oldani egy kis trükkel. Írsz egy pici C progit, ami bekéri/megnézi az aktuális boot ID-t, majd végrehajtja a 2 parancsot: „mount / $DEV -o remount” és „/sbin/init”. Mindezt statikusan fordítod, és beteszed init néven az sbin/ könvtárba a bool kernel mellé. Írhatok példakódot, ha kell.
Ne add fel, nagyon egyszerű a megoldás. A CD boot image és a floppy boot image nagyon hasonló, bizonyos esetekben megyegyeznek.
„4.11 Hogyan készíthetek bootolható CD-ROM-ot?
Szükséged lesz egy 1.44 MB-os rendszerindító lemezre. Készíts egy image fájlt a lemezről a
dd if=/dev/fd0 of=boot.img bs=18k
parancs kiadásával.
Rakd be ezt az image fájlt abba a könyvtárba, ahol a fájlokat gyűjtötted össze (vagy egy alkönyvtárába, tetszés szerint). Az mkisofs-nek a -b kapcsolóval lehet megadni a fájl helyét, és használd még a -c kapcsolót is. A részleteket elolvashatod a README.eltorito fájlban, ami benne van az mkisofs disztribúcióban. „
http://www.szabilinux.hu/forditasok/CD-Iras-HOGYAN/CD-Iras-HOGYAN-4.html
Tehát:
$ dd if=/dev/fd0 of=boot.img bs=18k
$ mkisofs -b boot.img -o boot.iso
$ cdrecord –data boot.isoEgy próbár megér.
Ne add fel, nagyon egyszerű a megoldás. A CD boot image és a floppy boot image nagyon hasonló, bizonyos esetekben megyegyeznek.
„4.11 Hogyan készíthetek bootolható CD-ROM-ot?
Szükséged lesz egy 1.44 MB-os rendszerindító lemezre. Készíts egy image fájlt a lemezről a
dd if=/dev/fd0 of=boot.img bs=18k
parancs kiadásával.
Rakd be ezt az image fájlt abba a könyvtárba, ahol a fájlokat gyűjtötted össze (vagy egy alkönyvtárába, tetszés szerint). Az mkisofs-nek a -b kapcsolóval lehet megadni a fájl helyét, és használd még a -c kapcsolót is. A részleteket elolvashatod a README.eltorito fájlban, ami benne van az mkisofs disztribúcióban. „
http://www.szabilinux.hu/forditasok/CD-Iras-HOGYAN/CD-Iras-HOGYAN-4.html
Tehát:
$ dd if=/dev/fd0 of=boot.img bs=18k
$ mkisofs -b boot.img -o boot.iso
$ cdrecord –data boot.isoEgy próbár megér.
kozapeti wrote:ahogy azt belém „verték” a Firmák az elmúlt két hétben, én egy nagyon sötét pogány vagyok,Tényleg nagyon sötét vagy, de csak a legutosó hozzászólásod alapján. Mivel engem is érint az obszcén célozgatásod, ezért szájbarágósan felvilágosítlak. A Borland C oktatása azért nagy baj, mert aki jelenleg ezt tanulja, nem lesz képes a megszerzett tudását érdemben hasznosítani, de ez a tanár és az iskola hibája. Mindezt tetézi, hogy a fent nevezett terméket 5-10 éve nem fejlesztik, és nem is lehet kapni, így az iskola vagy a „dicső” tanár kényszerít, hogy az otthoni gyakorláshoz lopjad a szofvert (ami a Btk. szerint bűncselekmény), miközben van ingyenes, szabadon használható szabványos fejlsztőeszköz (gcc, devcpp, stb). Mindez egyetemi szinten megy (Miskolci Egyetem). Senki nem állította, hogy tenned is kell valamit, vagy bármiről is tehetnél. Pedig igazán megkérdezhetted volna (magadtól – elvégre egyetemista vagy) a tanító bácsid, mire fogsz menni a megszerzett „tudásoddal”. De ha Neked így jó, ahhoz senkinek semmi köze.
A „minden fájl” elv itt is érvényesül, így az összes ösztott könyvtár (.so) fájlként töltődik be, és ha a program felhasználói szintjén nincs olvasási és végrehajtási jog, akkor az osztott kőnytár nem fog betöltődni.
Viszont az tényleg érdekes, ha egy root jogot megkapó (setuid) progi be tud tölteni egy felhasználói jogkkal rendelkező osztott kőnyvtárat.
A „minden fájl” elv itt is érvényesül, így az összes ösztott könyvtár (.so) fájlként töltődik be, és ha a program felhasználói szintjén nincs olvasási és végrehajtási jog, akkor az osztott kőnytár nem fog betöltődni.
Viszont az tényleg érdekes, ha egy root jogot megkapó (setuid) progi be tud tölteni egy felhasználói jogkkal rendelkező osztott kőnyvtárat.
A 16 bites int típus izgalmasabb, mert úgy a típuskonverzió módosítja a konstans értékét. Bár a 32768 (MAX_INT+1) és nagyobb konstans is ugyanezt okozza, mivel előjeles egészt adtál meg. A gagyi fordító – ha nincs normális fordítás idejű típus átalakítás – bebilentheti az átviteli jelzőbitet (CF – Carry Flag), és a következő művet értékét befolyásolhatja. Ha ‘long int’-et használsz, akkor 32 bites rendszereken megegyezik a típus által használható értéktartomány, de a 64 bites rendszereknél már nem lesz jó.
Egyébként a C nyelvet gyakran csúfolják assembly makrókönyvtárnak. Elég nagy a valóságalapja, ezért is olyan könnyű assembly kódot beágyazni egy C kódba.
xcut wrote:(…) egy idő után nagyon tisztán fogja látni, hogy mit csinál _pontosan_, amikor programozik. Élmény volt magamtól rájönni, hogy a következő két sor _egészen pontosan_ mit csinál:Code:int valami[5];
valami[4]=65536;Attól függ, mennyi a sizeof(int), 2 vagy 4.

-
SzerzőBejegyzés

