HowTo Easyvdr RC1 von einen 2Gig USB-Stick booten

  • HowTo Easyvdr RC1 vom USB-Stick booten!
    (Oder auch andere ähnliche Systeme)


    Ich habe als Testsystem EasyvdrRC1 auf einen USB-Stick gezogen!
    Das hier sollte eigentlich auch mit anderen Distries Funktionieren!
    Achtung!!
    Easyvdr 0.4.x benutzt lilo als Bootloader siehe dazu weiter unten!


    erstmal ein wenig Theorie...


    Wir starten den Rechner!
    Das Bios wird geladen und bindet seine Gräte ein und bootet anschließend
    von im Bios eingestelltem Medium.(CD,HD,USB,Lan...)soweit es Bootfähig ist.


    Nun wird auf dem Bootmedium nach einen Bootloader gesucht.
    Da gibt es einige.Syslinux,Isolinux,Lilo,Grub,.....usw.
    Ich will hier Grub nehmen weil es weit verbreitet ist und wie alle sehr flexibel.
    Da Grub geladen wurde und Grub in der Einstellung (/boot/grub/menu.lst)
    mitgeteilt wurde in form von Parametern von wo er booten soll geht es weiter.
    Der Kernel (/boot/vmlinuz..)wird geladen und Grub übergibt den weiteren Bootablauf
    dem Kernel!


    Der Kernel besteht aus zwei Teilen.Einmal dem Kernel selbst in seiner kompakten Form und
    einzenden Modulen die auf einem Medium (HD,USB,Netzwerk...)liegen.(/lib/modules/)
    Das erspart beim booten viel Zeit!Die anderen Module für Scanner Drucker Modems usw.. werden nur nach bedarf vom Bootmedium geladen.
    Es ist Wichtig das die Module (Treiber) für USB fest im Kernel einkopiliert sind.
    Da Linux sonst das Rootverzeichniß / nicht einbinden kann.
    IDE Geräte werden standartmäßt in den Kernel einkopiliert.
    Also müssen wir das Nachholen da sonst der Kernel nicht den USB-device
    ansprechen kann. Wen das bootmedium eingebunden ist wird von der inittab weiter das System
    gebootet
    Grub ist jetzt nicht mehr fürs booten zuständig!


    Also zuerst!


    Wir kompilieren die USB-Module fest in den Kernel ein!


    Meinen Kernel kan man jetzt hier downloaden



    Easyvdr bringt alles mit was wir dazu brauchen Kernel Sourcen usw..
    Es gibt eigentlich imer eine .config datei im /boot Verzeichniß
    Das ist die original Konfigurationsdatei die bei dem Basissytem benutzt wurden.
    Diese kopieren wir als root nach /usr/src/linux (Kernel Sourcen)


    cp /boot/config* /usr/src/linux


    nun teilen wir den sourcen mit das wir die alte (orig) config nehmen.
    cd /usr/src/linux
    make oldconfig


    auf zur Konfiguration!


    make menuconfig


    Es öffnet sich ein menu und wir makieren

    Device Drivers---->USB Suport---->


    Hier versehen wir die Module (M) für USB-Medium´s mit (*)Damit werden die Module fest in den Kernel einkompliert!
    Ich habe
    EHCI (2.0) support
    OHCI support
    USB Mass Storage support
    und ich bin mir nicht ganz sicher
    USB Human Interface Device (full HID) support
    Schadet jedenfalls nicht!


    jetzt 3x exit
    und
    Do you wish to save your new kernel configuration? YES!
    fast geschafft!
    Nun wieder auf der Console
    make dep
    make clean
    make bzImage


    Nun dauert es eine weile!Je nach CPU!Ich bin Einkaufen gegangen!


    So wir haben jetzt nur den Kernel kopiliert nicht die module dafür hatten wir noch was machen müssen aber das Brauchen wir nicht da die Module die selben währen die wir ja schon haben!
    Also weiter.
    Der neue Kernel liegt unter /usr/src/linux/ach/i386/boot und heißt bzImage
    Das war die Vorarbeit!


    Nun zum FileSystem


    Da ich Easyvdr auf ein 2 Gigabyt Stick installieren will muß ich Easyvdr ein bischen beschneiden!
    Easyvdr hat 2,3Gigabyt und ich kann wen ich /usr/src nicht mit auf dem USB-Stick kopiere 500 MB sparen!
    Also erstelle ich erstmal einen Ordner(usbboot) in dem ich alles reinkopiere was ich brauche und lösche in diesen später
    /usbboot/usr/src dann habe wir es auf 1.7 Gig..;)


    also
    mkdir /usbboot
    nun das vorhandene Filesystem ins /usbboot
    cp -af /boot /usbboot
    cp -af /bin /usbboot
    cp -af /data /usbboot
    cp -af /dev /usbboot
    cp -af /etc /usbboot
    cp -af /home /usbboot
    cp -af /lib /usbboot
    cp -af /opt /usbboot
    cp -af /root /usbboot
    cp -af /sbin /usbboot
    cp -af /srv /usbboot
    cp -af /tftpboot /usbboot
    cp -af /usr /usbboot
    cp -af /var /usbboot
    cp -rs /mnt /usbboot


    mkdir /usbboot/proc
    mkdir /usbboot/ramdisk
    mkdir /usbboot/media #<--die aufnahmen wollen wir ja auch von HD sehen!
    mkdir /usbboot/devfs
    mkdir /usbboot/sysfs
    mkdir /usbboot/sys


    #nun legen wir symlinks so an wie es später richtig ist!
    ln -s /media/video0 /usbboot/video0
    ln -s /ramdisk /usbboot/tmp


    #Nun bearbeiten wir die fstab Tabelle USB gerecht!


    mcedit /usbboot/etc/fstab


    und ändern eigentlich nur das hda3 /
    in


    /dev/sda1 / ext3 defaults,errors=remount-ro 0 1


    wen man noch die eigentliche Festplatte zum bearbeiten mit mounten möchte trägt man hier
    noch die Verzweigung von


    /dev/hda3 /mnt/hda3 ext3 defaults,errors=remount-ro 0 1


    ein


    Nach dem booten vom USB-Stick kann man hier auf die eigentliche Festplatte zugreifen!
    mit F2 speichern und das ist dann auch schon mal erledigt!


    Nun löschen wir noch die Soucen damit wir alles auf einen 2 gigabyte Stick kriegen.


    rm -r /usbboot/usr/src/*


    Jetzt kommt auch schon der UDB-Stick zum Einsatz!
    Wir stecken ihn ein und
    Erstellen ein neues Filesystem!
    ACHTUNG! ES WERDEN ALLE DATEN AUF DEM USB-STICK GELÖSCHT!!!!


    cfdisk /dev/sda #(kann auch sdb,c,d heißen)


    Wir löschen mit delete das vorhandene und erstellen ein neues.
    Von mir aus über den gesammten Stick!(sda1)
    Setzen noch ein bootflack und bestimmen den type!default (83).
    Danach..


    write mit YES bestätigen und quit.


    Nun haben wir eine Partitionstabelle geschrieben!


    Den Stick einmal rausziehen und wieder einstecken!
    jetzt formatieren!
    Da Easyvdr automatisch mountet noch einmal vor dem formatieren unmounten!


    umount /dev/sda


    nun formatieren


    mkfs.ext3 /dev/sda1


    Jetzt kann /usbboot rüberkopiert werden!


    Wir kontrollieren wohin der Stick gemountet wurde!
    Gegebenfalls den Stick noch einmal raus und rein stecken!


    df -h


    Ich sehe jetzt das bei mir sda1 nach /mnt/usb1 gemountet wurde!
    Bei anderen Systemen muß man selber mounten!(/mount /dev/sda1 mnt/usw...)
    aber zurück..


    cp -af /usbboot/* /mnt/usb1/


    Das dauert jetzt ein wenig!


    Jetzt kommt Grub an die Reihe da wir bis jetzt stupf von der Festplatte kopiert haben.Haben wir auch deren Einstellung von Grub übernommen!
    Also noch Grub bescheitsagen das wen er von sda bootet auch sda hd0 ist!


    echo '(hd0) /dev/sda' > /mnt/usb1/boot/grub/device.map


    Jetzt noch Grub in den MBR der USB Platte installieren


    grub-install --root-directory=/mnt/usb1 /dev/sda


    jetzt editieren wir noch die /menu.lst


    zum beispiel so!


    ...
    title USB Debian GNU/Linux, kernel 2.6.22.5
    root (hd0,0) #<---Das ist sda1! sda2 währe 0,1! sdb1 währe 1,0 usw..
    kernel /boot/vmlinuz-2.6.22.5-usb root=/dev/sda1 ro pci=routeirq vga=788 rootdelay=10 #<-Das rootdelay ist wichtig!
    savedefault
    ....


    Der Kernel braucht ungefair je nach System 5 sekunden um die USB Module voll zu laden dafür ist das rootdelay!
    Man kann auch auf 7 zurückgehen ja nach lLeistung des System´s


    zum Schluß kopieren wir den Kernel noch auf die USB platte mit


    cp /usr/src/linux/arch/i386/boot/bzImage /mnt/usb1/boot/vmlinuz-2.6.22.5-usb


    fertig!
    Viel spaß!


    Nur für Leute die vom Bios nicht von USB booten können!


    Sollte man ein älteres Mainboard besitzen das das Booten vom USB nicht unterstützt!
    Kann man auch den zweiten Eintrag in /boot/grub/menu.lst auf der Festplatte (hda,d,c,d) so ändern das dieser dann vom USB bootet!
    Dazu muß der Kernel auf der Festplatte platziert werden!und natürlich auch in der menu.lst auf der Festplatte ausgewählt werden!
    Dann wird erst von der Festplatte der Kernel geladen und dann auf USB gewechselt!


    Easyvdr 0.4.x


    Ich habe es mit dem bootloader Lilo noch nicht probiert aber ein Feedback währe schon!


    die config von lilo liegt in /etc/lilo.conf und müßte so aussehen!


    root=/dev/sda1
    image=/boot/vmlinuz-2.6.22.5-usb
    label=USB-Boot


    danach lilo aurufen!
    oder lilo /dev/sda sorry!! hier muß ich raten!


    Achtung!Achtung!Achtung!Achtung!Achtung!Achtung!Achtung!Achtung!Achtung!


    Ich hoffe er schreibt nun auf sda und nicht auf hda!!!!!sonst bootet der VDR nicht mehr!
    Wartet in diesem lilo Fall auf Feedback!



    Über modifikations Tipps würde ich mich freuen!
    Zur Zeit greift der VDR alle 5-7 sekunden auf mein USB zu!
    Wen man die ramdisk im Menu auf 256 erhöht wird /tmp automatisch in die ramdisk verschoben!

    HauptVDR AMD Goede 1750 Easyvdr 0.06.4
    FF_TT2.3 Skystar2.6c 1x160GB + 1x1TB lautloser Rechner weil er im Keller steht. :D


    2x MediaMVP als Client+VOMPServer-Plugin


    TestVDR AMD Goede 1750 mit TT1.5 Easyvdr 06.*
    Bootet auf einer komischen Weise
    PicoPSU als NT

    3 Mal editiert, zuletzt von Dauser ()

  • Nabend!


    Erstmal danke für das HowTo.


    Habe den heutigen Abend mal genutzt um auf meinem neuen vdr System easyVDR 0.5 RC1 zu installieren.


    Festplatteninstallation ist ohne Problem durchgelaufen, dann habe ich einen 2GB Stick hergenommen
    und nach Deinem HowTo losgelegt. Es klappt soweit das er beim booten Grub anzeigt, wenn ich dann
    auf den ersten Eintrag gehe bootet er in eine Endlosschleife ewig durch :(
    habe auch mal die Einträge von memtest geändert, das startet er ohne Probleme und testet...


    Habe Deinen vorgefertigten Kernel genommen. Was läuft bei mir falsch ?
    rootdelay habe ich ich auch diverse ausprobiert... jetzt ist erstmal schluß für Heute, muss ins Bett.


    Munter bleiben, Rossi

  • Was steht den in der /mnt/usb1/boot/grub/device.map


    da sollte eigentlich sda stehen
    ist den USB-Stick sda?


    Zitat

    gehe bootet er in eine Endlosschleife ewig durch :(


    Endloschleife beim booten?? :lehrer1
    Habe ich noch nie gehört wie sieht den sowas aus?

    HauptVDR AMD Goede 1750 Easyvdr 0.06.4
    FF_TT2.3 Skystar2.6c 1x160GB + 1x1TB lautloser Rechner weil er im Keller steht. :D


    2x MediaMVP als Client+VOMPServer-Plugin


    TestVDR AMD Goede 1750 mit TT1.5 Easyvdr 06.*
    Bootet auf einer komischen Weise
    PicoPSU als NT

    Einmal editiert, zuletzt von Dauser ()

  • hallo,


    danke für das howto.


    oben ist ein tip fehler im grub menu


    Zitat


    root (hd0,0) #<---Das ist sda1! sda2 währe 0,1! sdb1 währe 1,0 usw..
    kernel /boot/vmlinuz2.6.22.5-usb root=/dev/sda1 ro pci=routeirq vga=788 rootdelay=10 #<-Das rootdelay ist wichtig!
    savedefault


    das vmlinuz2.6...... müsste vmlinuz-2.6..... heißen.

    3x ASRock ION 330 + TT S2-3600 + Pollin X10 + Freevdr 2.0e
    2x HTPC GMC AVC-M1 + Asus M2A VM/HDMI + HVR 4000 + NVidia 8400GS + Pollin X10 + Freevdr 2.0e
    1x Asus T3-m3n8200 + Nova HD S2 + NVidia 8400GS + Pollin X10 + Freevdr 2.1
    Daten Server Gentoo_Amd64 - VDR1.4.6 - xineliboutput - streamdev-server - 4 TB Raid5 - LVM - DM-Crypt


    [Blockierte Grafik: http://device.name/publicicon2.png]

    Einmal editiert, zuletzt von vdr_Thor ()

  • Danke habe es geändert!

    HauptVDR AMD Goede 1750 Easyvdr 0.06.4
    FF_TT2.3 Skystar2.6c 1x160GB + 1x1TB lautloser Rechner weil er im Keller steht. :D


    2x MediaMVP als Client+VOMPServer-Plugin


    TestVDR AMD Goede 1750 mit TT1.5 Easyvdr 06.*
    Bootet auf einer komischen Weise
    PicoPSU als NT

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!