Ako postavit univerzalny initrd

Sekcia: Programovanie 09.02.2008 | 13:32
Pacmaga   Návštevník
zdravim ... snazim sa postavit initrd ktory by bezal nezavisle od hw konfiguracie pc alebo fs disku ... (a hlavne jednoduchy v principe .. mal by iba zistit druh fs roota a urobit pivot)

Ako podklad som pouzil initrd z mkinitrd (archlinux verzia) ... jeho jednoducha stavby mi vyhovolala (initrd vytvoril obsah /dev potom skusal mountnut moduly nakoniec pomocou awk zistik druh fs a nasledno ho mountol a preklopy) ... tento vygenerovany initrd nefungoval ani vo svojej defautnej podobe (bezprostredne po vygenerovany - bez uprav :) )

... kazdopane som odstranil asi polovicu z linuxrc ked som vymazal vsetky riadky insmod

... (jadro som nakompiloval tak aby aby si moduly pripajalo samo v pripade nutnosti)

... nakopiroval som do initrd moduly (ktore som povazoval za dolezite .. MOZNO TU NIEKDE BUDE CHYBA) v rovnakej strukture ako su na roote (tj. /lib/modules/...) s tym ze to "automaticke" pripajanie modulov by tak mohlo fungovat

Po boote mi vsak initrd nechce primountovat "novy" root na urcene miesto vypise ze bud device alebo adresa neexistuje (pricom su vytvorene oboje .... a nazvy sedia)

ked mi niekto viete poradit .. vopred dik sry za to upnito ale neviem ako aby som to sem inac dal (je to obycajny loop zbaleny gzipom)
    • Re: Ako postavit univerzalny initrd 09.02.2008 | 13:48
      WlaSaTy   Návštevník
      ked chces urobit to co robia LiveCD, tak sa do nich pozri.
      • Re: Ako postavit univerzalny initrd 09.02.2008 | 15:45
        Pacmaga   Návštevník
        diky za radu :-/ (aspon ze to nebol odkaz na googlo.sk)
        inac vacsina livecd neriesi problem s urcenim fs ..
        • Re: Ako postavit univerzalny initrd 09.02.2008 | 16:01
          WlaSaTy   Návštevník
          Vecsina LiveCD dnesnych riesi problem s typom fs, i ked niektore to robia az v druhej faze na squashfs pomocou udev/hotplug.

          inak pozrel si sa aspon do skriptu zabezpecujuceho init v tebou vygenerovanom initrd?
          • Re: Ako postavit univerzalny initrd 09.02.2008 | 16:09
            Pacmaga   Návštevník
            ano .. pisal som o nom v prispevku (linuxrc)
            • Re: Ako postavit univerzalny initrd 09.02.2008 | 16:12
              WlaSaTy   Návštevník
              to ano bolo na obidve vety
    • Re: Ako postavit univerzalny initrd 09.02.2008 | 16:25
      Avatar Frantisek Klabzuba Debian  Používateľ
      mne to funguje
      • Re: Ako postavit univerzalny initrd 09.02.2008 | 16:29
        Avatar Frantisek Klabzuba Debian  Používateľ
        aj ked teda som pouzil iny kernel lebo ty si nam ziaden neposkytol, problem bude naskor u teba v tomto:

        # rdev linux
        Root device /dev/ram0

        cize sprav:
        # rdev linux /dev/ram0


      • Re: Ako postavit univerzalny initrd 09.02.2008 | 16:46
        Pacmaga   Návštevník
        dobre vediet :) .. cize asi to vazne bude iba nieco z modulmi (mam notebook hp nx7300 .. cize mi uz iba vystava otazka ktore moduly su tie skutocne potrebne) ..
        Kazdopadne diky za odtestovanie ..

        ps. Halicky ktory napisal VDL?? .. dobra praca ;-)
        (ked sme pri initoch myslim ze mi nesiel ani initrd+jadro z vasej stranky :-( )
        • Re: Ako postavit univerzalny initrd 09.02.2008 | 17:29
          Avatar Frantisek Klabzuba Debian  Používateľ
          Presne ako som si myslel, mas to zle:

          $ rdev vmlinuz-zero
          Root device /dev/sda3

          Musis pomocou rdev nastavit kernelu root na /dev/ram0, takto:

          $ rdev vmlinuz-zero /dev/ram0

          • Re: Ako postavit univerzalny initrd 09.02.2008 | 17:58
            Pacmaga   Návštevník
            Stalo sa ale nepomohlo .. stale to iste (initrd mi najde .. uroby aj /dev/root .. problem je ze ho nechce namountovat ... )
            • Re: Ako postavit univerzalny initrd 09.02.2008 | 18:09
              WlaSaTy   Návštevník
              problem je v tom, ze init script v danom initrd musi vytvorit vsetky device files (ak to nenehame na sysfs), natiahnut vsetky potrebne ovladace a aj pripojit vsetko co je vyzadovane.

              no a ty je kamen urazu, len nahrat zopar adresarov do initrd nestaci, potrebne je aj pouzit insmod. ci sa podari pomocou molocha zvaneho awk vykusnut co potrebujeme ked sa do initrd zvykne davat busybox.

              initrd je na to aby propojilo konkretny system a nie hociktory do ktoreho pichneme usb klucik alebo nenapadne cdcko. to uz radsej nejake system rescue cd alebo livecd ktore najde a pripoji co chceme.
            • Re: Ako postavit univerzalny initrd 09.02.2008 | 20:39
              Avatar Frantisek Klabzuba Debian  Používateľ
              mne to funguje, daj email poslem ti fungujuce riesenie
              • Re: Ako postavit univerzalny initrd 09.02.2008 | 22:29
                Avatar pacmagatp   Používateľ
                potocny.tomas@gmail.com