Portál AbcLinuxu, 26. dubna 2024 11:23


Dotaz: neopatrná manipulace - požkození /dev

1.2.2007 20:33 Matlák
neopatrná manipulace - požkození /dev
Přečteno: 115×
Odpovědět | Admin
Dobrý den. Jsem v linuxu relativně nový a již jsem udělal botu, která aspiruje na jednu z největších které kdo kdy udělal ;-).
Story je takováto: Do koše jsem jakožto uživatel vyhodil nějaké balíčky,obsahující zdrojáky a binárky, které jsem vytvořil pod rootem. Z koše nešly v graf.rozhraní smazat, tak jsem najel konzoli, su, a otevřel jsem si ~/.Trash/, ale místo rm -R ./ jsem se překlep a zadal jsem rm -R / a ještě to v té rychlosti odentroval...
Asi je vám jasné, co následovalo.Rychle jsem tisknul Ctrl+C, ale některé soubory v adresáři /dev byly nenávratně zničeny. Po nesmyslném zběsilém rebootu, když přestala pracovat konzole a nic nefungovalo, jsem nabootoval z cédéčka Slacku a přehrál obsah jeho /dev na svůj lokální disk. Systém začal fungovat, i když ještě vyžadoval několik úprav (vytvořit init ram disk, nevím kam se mezitím poděl, přehrát image jádra etc...). Bohužel mi nefunguje zvukovka.

Nevíte, jak se adresář /dev opravuje? Dá se nějak vygenerovat to množství přístupových bodů k zařízením, navrátit původní stav?
Mimochodem, vždycky jsem si myslel, že /dev je něco jako /proc, tedy že je dynamicky generován (i když není virtuální).. Co je na tom pravdy?
Sorry za ty dlouhý dotazy, kdyžtak to smažte :-)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Luboš Doležel (Doli) avatar 1.2.2007 21:42 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: neopatrná manipulace - požkození /dev
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dynamicky generován být může, ale aby systém začal vůbec bootovat v něm musí být něco napevno.
1.2.2007 21:52 Matlák
Rozbalit Rozbalit vše Re: neopatrná manipulace - požkození /dev
To je logický. Ale ty soubory jako hda, hdc tam přece nedávám ručně, ty musí už v základu souviset ze systémem. Když instaluju ovladače, popř. jádro z podporou nových zařízení, tak ty soubory do /dev instaluju už při make install? Nebo vznikají až při načtení jádra/modulu do paměti?
Luboš Doležel (Doli) avatar 1.2.2007 21:59 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: neopatrná manipulace - požkození /dev
Když instaluju ovladače, popř. jádro z podporou nových zařízení, tak ty soubory do /dev instaluju už při make install?
Ne, ten kritický obsah /dev není zapisován při make install jádra, ale bývá součástí nějakého balíčku vaší distribuce (u Gentoo je to součást stage).
Nebo vznikají až při načtení jádra/modulu do paměti?
Ne, jsou uloženy na disku. Jakmile se zinicializuje jádro (které právě potřebuje některé věci z /dev), tak je (obvykle) spuštěn udev. Udev zakryje obsah /dev uložený na disku svým ramdiskem, kde jsou pouze objekty, které se v systému opravdu nachází - to už závisí na načtených modulech apod.
1.2.2007 22:08 Matlák
Rozbalit Rozbalit vše Re: neopatrná manipulace - požkození /dev
Chápu. Takže to mám zkopírovat z instalačního cédéčka? Když jsem pomocí jeho kernelu opravoval svůj pevný disk, výpis jeho /dev se lišil od toho na disku - když jsem diskový /dev zazálohoval a překopíroval přes něj ten z CD, spousta souborů v něm chyběla a systém např.hlásil, že nemá myš (/dev/mouse). Souviselo to z nějakým manažerem, který všechno co nepotřebuji při instalaci překryl svým ramdiskem? Nebo distributor prostě nepředpokládal, že někdo takhle jeho CD použije a soubory v /dev fyzicky ořezal? V instalační příkazové řádce chyběl například celkem běžný příkaz dir.
Luboš Doležel (Doli) avatar 1.2.2007 22:16 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: neopatrná manipulace - požkození /dev
Dir není příkaz, o kterém by se dalo na Linuxu říci, že by chyběl. Je celkem na nic, je to jen hardlink na příkaz ls.

Nabootujte živé CD a udělejte něco jako tohle:
mount -o bind / /mnt/nekam/jinam
Podívejte se do /mnt/nekam/jinam/dev, snad by tam mělo být vše, co systém potřebuje. Zkopírujte obsah tohoto adresáře do /dev na vašem disku.
2.2.2007 10:32 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: neopatrná manipulace - požkození /dev
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jsou dva druhy /dev

Jeden je tam stabilně a používal se tam dříve a pro každěé zařízení se tam musel ručně vytvářet soubor.

Tento se dá vytvořit tak že nabotujeme odjinud a ty speciální soubory se vytváří příkazem mknod -> viz: man mknod

Některé distribuce mají skript MAKEDEV man MAKEDEV u kterého nemusíme zadávat čísla zařízení ale stačí tam zadat pouze jméno zařízení.

Dnes se používá dynamicky generován /dev o to se stará udev démon a vytvoří zařízení který ten PC má.

A aby počítač nabootoval je nutné u obou typů vytvořit ručně zařízení /dev/console, /dev/null.

Pokud nepoužíváte ramdisk je nutné ještě vytvořit zařízení které se používají pro přístup k vašemu HD.
2.2.2007 14:40 Vinicius
Rozbalit Rozbalit vše Re: neopatrná manipulace - požkození /dev
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zvukovka by se mohla rozjet po pouziti programu na konfiguraci zvukovky, coz by mel byt alsaconfig. Asi vam chybi soubor /dev/dsp, coz by mel tento program napravit.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.