Portál AbcLinuxu, 12. května 2025 04:28

Dotaz: Automatické mapování a připojení disků

13.12.2014 11:36 Honza Papoušek
Automatické mapování a připojení disků
Přečteno: 444×
Odpovědět | Admin
Ahoj, v linuxu jsem začátečník a chtěl bych se s Vámi poradit. Jak by se dal napsat skript co po zapnutí systému zkontroluje připojené disky a když najde nějaký nový tak ho naformátuje a připojí kamkoli do systému?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.12.2014 11:57 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Automatické mapování a připojení disků
Odpovědět | | Sbalit | Link | Blokovat | Admin

Jestli to chcete při připojení disku i dávno po zapnutí, tak se podívejte, jak udev přidává pravidla pro pevné názvy disků nebo síťových rozhraní. Ale není to nic pro začátečníka.

Pokud to chcete více desktopové, podívejte se na udisk a na události, které chodí při připojení disku přes D-Bus.

Pokud to chcete jednorázově a velmi jednoduše, projděte si adresář /dev/disk/by-id.

13.12.2014 12:00 2014
Rozbalit Rozbalit vše Re: Automatické mapování a připojení disků
Odpovědět | | Sbalit | Link | Blokovat | Admin
tak ho naformátuje a připojí kamkoli do systému

Pěkně blbý požadavek. Takže ty zapojíš (externí) (pevný) disk dědečka, na kterém jsou třeba fotky, a on se automaticky zformátuje, protože bude "nový"?

PS: Radši nazývám věci pravými jmény: tzn. neříkám, že disk naformátuju, nýbrž že na něm vytvořím systém souborů.

Max avatar 13.12.2014 12:31 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Automatické mapování a připojení disků
Odpovědět | | Sbalit | Link | Blokovat | Admin
Úplně jednoduše a složitě :)
Nejdřív bych se ovšem být tebou zamyslel, zda to, co chceš dělat, je skutečně "systémové řešení", nebo jsi si jen pro konkrétní problém zvolil nevhodné a nebezpečné řešení.

Pokud jsi rozhodnut, že lepší řešení není a jsi s mířen s tím, že někdy může nastat nějaký problém (zapomeneš si ve skritpu ošetřit nějakou drobnost) a můžeš přijít o nějaká data apod., tak hurá na to. Napiš si skript, třeba v bashi, který ti toto všechno obslouží.

1) Na jaké úrovni potřebuješ, aby se skript spustil?
a) dřív než nějaká služba:
- musíš si vytvořit spouštěcí skripty podle tvého systému (debian třeba "/etc/init.d/skript" a následně službu zapnout do nějakého runlevelu, viz manuál k initu v debianu). Podobně je to u jiných distribucí.
b) po spuštění systému
stačí přidat odkaz na tvůj script do "/etc/rc.local"
c) po přihlášení uživatele
Přidat script do "~/.bashrc" a pořešit sudo, aby měl skript práva

2) Vyřešit detekci nového disku
Zde by jsi si měl říci, co to ten nový disk vlastně je? Je to něco, co nemá záznamy v "/etc/fstab"? Nebo něco, co neobsahuje ani jednu partition? Nebo něco, co nekoresponduje s tvým seznamem (budeš si třeba někde držet seznam SN disků, které máš už v používání, nebo kombinaci PN(part number) a SN(serial number) ). Oboje zjistíš pomocí :

hdparm -I /dev/sda | grep 'Serial\ Number'
hdparm -I /dev/sda | grep 'Model\ Number'
Tzn., že ve skriptu by jsi si mohl projít všechny existující disky a porovnat u nich PN/SN s tvou databází. Ošetřit, co se stane, když se databáze/soubor poškodí, ošetřit, když ti program nic nevrátí a spoustu dalších věcí. Pokud chceš mít větší jistotu, tak si přidej do skriptu ještě checkování, zda nový disk již obsahuje nějakou partition a pokud ano, tak aby nic nedělal, což zase můžež zjistit třeba takto (vypíše počet partition):
sfdisk --dump /dev/sda |grep start |wc -l

3) Spustit sadu na rozkrájení a připojení hdd
To je už myslím klasika :
- pomocí fdisk, nebo sfdisk rozdělit hdd (bude nejspíš zapotřebí si pomocí utilit zjisti aktuální velikost hdd a pomocí zjištěných hodnot následně upravit disk)
- pak naformátovat
- zapsat si do "/etc/fstab" automount pro příště, např. takto : echo "/dev/sdXX /mnt/neco reiserfs defaults 0 1" >> /etc/fstab - připojit :
mount /dev/sdXX
Nebo tu je možnost, že budeš přidávat disk do LVM a roztahovat dynamicky podle toho, jak velký bude lvm groupa.

Něco z toho, co zmiňuji nemusí být úplně košér, takové věci je třeba si prostě vyzkoušet a zjistit si, jaké všechny situace mohou nastat a podle toho si vše ošetřit.
Každopádně na takovou věc potřebuješ znalosti linuxu, spouštění, znalost detekce hw, znalost konkrétní distribuce a samozřejmě umět aspoň trochu skriptovat a googlit.
Nečekej ovšem, že ti sem někdo hodí řešení out-of-box, který si jen zkopíruješ (nevylučuji, že by možná šlo něco takového vygooglit, nezkoušel jsem).
Zdar Max
Měl jsem sen ... :(
13.12.2014 13:45 Honza Papoušek
Rozbalit Rozbalit vše Re: Automatické mapování a připojení disků
Woow :) díky za super odpověď, s out-of-box jsem ani nepočítal :) ještě k tomu proč ten skript potřebuju.. Nebude běhat na pc :) ve škole na předmětu kde probíráme linux učitel řekl že komu se to povede tak má za 1 na konci roku :D tak jsem si řekl že to zkusím :) --> takže potřebuju jen ten skript co po připojení nového(něco co nemá záznam ve fstab)disku ho naformátuje, vytvoří systém souborů a připojí kamkoliv do systému + zapíše do fstab. Na googlu jsem strávil asi tak 2h a jako nejrozumnější mi přišla tahle diskuze :)

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.