## Bootolás USB PenDrive-ról, bootolni az USB kulcsról, Boot pendrive-ról, Boot From an USB Flash/Pen/Key Drive, usb flash boot ## Rendszerindítás pendrive-ról ## Kérdés: Hogyan lehet másodpercek alatt boot-olni egy USB Flash Flash/Pen/Key eszközről a QNX Neutrino operációs rendszerrel? ## Válasz: Egyedi boot-image-t kell készíteni az USB flash eszközre, az "mkifs" segédprogrammal. ## Készítsen el egy saját "your_image.build" leíró (build) fájlt, QNX Neutrino OS alatt, a köv.könyvtárba: "/boot/build/". ## A fájl tartalma az alábbi példa szerinti (is) lehet: # # Az alábbi build fájl a QNX Neutrino boot-folyamatát teszi lehetővé PC-n, egy USB eszközről # # [virtual=x86,bios +compress] boot = { # Fenntartjuk a 64k területet a video memória számára, hogy több video kártyát is használhassunk startup-bios # PATH egy biztonságos, *safe* elérési út a végrehajtható programokhoz (confstr(_CS_PATH...)) # LD_LIBRARY_PATH egy biztonságos, *safe* elérési út a libraryk -hoz (confstr(_CS_LIBPATH)) # i.e. Ez az útvonal (path) lesz alkalmazva a libs -ekhez, a setuid/setgid végrehajtható programokhoz. PATH=/proc/boot procnto -vv LD_LIBRARY_PATH=/proc/boot:/usr/lib } [+script] startup-script = { # A memóriatakarékosság miatt használjuk inkább a libc -t a boot image-ben! # A sebesség miatt (ha kevesebb szimbolikus link) rámutatunk a libc.so.2 -re, a libc.so helyett procmgr_symlink ../../proc/boot/libc.so.2 /usr/lib/ldqnx.so.2 # Alapértelmezett felhasználói programok a 10-es prioritáson futnak, de más ütemezés is lehet (pri=10o) # Adjuk meg a "diskboot"-nak, hogy ez egy hard disk boot (-b1) # Adjuk meg a "diskboot"-nak, hogy ne használjon DMA -t az IDE dmeghajtókhoz (-D0) # Elindít 4db szöveges konzolt, ha az "-n4" kapcsolót megadjuk a "devc-con" (-o) parancs számára # Az "-e" kapcsoló hozzáadásával a linux ext2 fájlrendszer hozzá mountolása megtörténik. devc-con -n4 & reopen /dev/con1 display_msg Welcome to QNX Neutrino from USB seedres pci-bios & waitfor /dev/pci io-usb -duhci & # az USB démon elindítása waitfor /dev/io-usb/io-usb # várjunk amíg az /dev/io-usb/io-usb létrejön mount -T io-usb devu-uhci.so /dev/io-usb/io-usb # csatlakozás az USB UHCI driver-hez waitfor /dev/io-usb/devu-uhci.so pipe & mqueue & devc-ser8250 -e & devc-pty & SYSNAME=nto TERM=qansi reopen /dev/con2 [+session] sh & reopen /dev/con3 [+session] sh & reopen /dev/con4 [pri=25 +session] sh & devb-umass cam verbose umass path=/dev/io-usb/io-usb & # tömegtároló eszköz(mass storage device), hd0 -névvel waitfor /dev/hd0t79 10 # várjunk, hogy a hd0t79 létrejöjjön mount /dev/hd0t79 / # mount-oljuk hozzá a gyökér könyvtárhoz (root folder) reopen /dev/con1 [+session] login -p } [type=link] /tmp= /dev/shmem # Tegyük bele a jelenlegi "libc.so"-t. Ez létrejön, mint valódi fájl, # ezt használjuk mint belső "SONAME"-t, a "libc.so"-val, elkészítve egy szimbolikus linket erre. # A szimbolikus link rámutat az utolsó verzió szerinti "libc.so.*"-ra, # de ha egy korábbi libc -re lenne szükség,(pl. libc.so.1) akkor azt még ez előtt a sor előtt hozzá kell adni. libc.so fpemu.so.2 devu-uhci.so devu-ehci.so libusbdi.so libcam.so cam-disk.so io-blk.so fs-qnx4.so fs-ext2.so [data=copy] devc-con pci-bios seedres devb-eide sh=esh pipe mqueue devc-ser8250 devc-pty ls pidin uname mount io-usb diskboot usb devb-umass login # END ###################################### Használati utasítás: ######################################### A. Készítse el a oprációs rendszer bootimage-t az mkifs segédprogrammal. -------------------------------------------- "Mkifs -v your_image.build your_image.ifs" Ezzel a oprációs rendszer bootimage elkészült, fel lehet másolni a boot eszközre. (ha meg kell ismételnie a felmásolást valamiyen módosítás miatt, a lemezt előbb a "dinit"-el inicializálni kell, lásd lent.) B. Készítsük elő a boot eszközt. -------------------------------------------- Egy boot eszköz olyan eszköz, amelyen az operációs rendszer elhelyezkedik. Pl. USB harddiszk, vagy USB Flash diszk. Csatlakoztassa az USB Flash Diszket a PC-hez. A lépésenkénti leírás az ALÁBBIAK szerinti: Adjuk ki az alábbi parancsot: "fdisk /dev/hdX" ahol az x egy szám, amely az USB Flash diszk, készítse el a QNZ partíciót (type 79), állítsa be a BOOT flag-et, és használja a LOADER-t. Köv. parancs: "dinit -h -dev-hdXt79" Inicializálja az új QNZ partíciót. Ezután, ajánlott az új partíciót letesztelni: "chkfsys /dev/hdXt79" Mount-olja a partíciót: "mount /dev/hdXt79 /fs/usb" Az image-be összeálított fájlrendszert másolja rá át az USB lemezre "cp /boot/build/your_image.ifs /fs/usb/.boot" Ezzel az USB Flash Diszk használatra kész. Az USB Flash diszk méretétől függően át lehet másolni további könyvtárakat is: /bin, /usr, stb.... C. A QNX Boot folyamata, az USB eszközről: -------------------------------------------- Állítsa be a boot sorrendet a PC BIOS-ban, hogy a "primary boot" az USB-ről történjen. Reset -elje a PC-t, a BIOS boot loader-je fel fogja olvasni az MBR-t az USB Flash diszkről. ( PC1 – ez a standard first-stage [partíció betöltő], mint primary loader, egy PC-n). Ezután a betöltő dob egy üzenetet: „Press F1-F4 to select drive or select partition“. A betöltő most meghívja a másodlagos betöltő-t, amely a QNZ partícióra van mentve - hd0t79 (PC2 – ez a standard second-stage loader[QNX specifikus betöltő] egy PC-n) A másodlagos betöltő dob egy üzenetet: „Hit ESC for altboot …...“, majd végrehajtja a .boot fájl-t (ha nem nyomja meg az ESC billentyűt).