Montowanie Pendrive i HDD (openWRT)
|
dodo02 |
Dodano 01-05-2008 22:33
|
User
Posty: 114
Dołączył: 01/12/2007 21:27
|
Czesc,
Chce zamontowac na wl-500gP z openWRT Pendrive na przestrzen dla pakietow i paru programow, a HDD miec oczywiscie na server plikow i downloady. Do tej pory mialem tylko HDD.
I teraz mam taki problem. Sprawdzilem jak OpenWRT rozpoznaje moje sprzety. HDD zazwyczaj rozpoznaje pod
/dev/scsi/host0/bus0/target0/lun0
ale z pendrive juz roznie:
/dev/scsi/host0/bus0/target0/lun0
/dev/scsi/host1/bus0/target0/lun0
/dev/scsi/host2/bus0/target0/lun0
w zaleznosci czy HDD jest podpiety czy nie. Sprawdzalem po rebootach i przed. Wtykajac pendrive w rozne porty USB (to chyba nic nie zmienia??)
Wydaje mi sie to dosc normalne aczkolwiek, z powdu tego ze czesto odlaczam HDD i uzywam jako przenosnego dysku, chcialbym miec mozliwosc kontrolowania tego jak OpenWRT wykryje wlozony sprzet, zeby poprawnie montowal udzialu dla FTP, samby i programow.
Jak to zrobic? Zeby zawsze miec pewnosc, ze po reboocie bez wzgledu na to co jest/bylo podlaczone i czy poszedl reboot, czy nie zawsze miec pewnosc ze cos sie nie rozsypie. Jak instalowac poszczegolne pakiety i programy na Pendrive zeby sie zabezpieczyc przed odlaczonym pendrivem (o ile wogole sie da :D)? Na penie chce miec www, i cos do sciagania nerazie, potem moze cos wiecej, ale raczej nic waznego dla samego asusa. |
|
|
|
obsy |
Dodano 02-05-2008 07:00
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Dobrze się dzieje, bo podłączasz to jako następny dysk, więc host się zmienia.
Ty sam montujesz zasoby po podłączeniu dysku. Więc PRZED montowaniem odczytaj sobie np. numer seryjny dysku lub producenta/rodzaj i w zależności od tego zamontuj go w /hdd, /hdd2, /hdd3 itd.
A www/ftp/sambe udostępniaj właśnie z /hddX, dzięki czemu będziesz miał pewność, że www leci zawsze z pendrive a nie dysku czy flesha kolegi.
|
|
|
|
dodo02 |
Dodano 02-05-2008 11:02
|
User
Posty: 114
Dołączył: 01/12/2007 21:27
|
No dobra, tez wlasnie o tym myslalem, zeby uzyc numeru seryjnego urzadzenia lub rodzaju bo to sie nie zmienia i moge odczytac z dmesg.
Ale co dalej majac te informacje?? Nie odrobilem swojej pracy domowej i dalej jestem lamerem, ale jak narazie montowalem dysk standardowo wg. opisow czyli:
Cytat mount -t ext3 /dev/discs/disc0/part2 /hdd/Server
teraz rozumiem zamiast
trzeba by zrobic to w zaleznosci od numeru nosnika.
Jak to zrobic? Musze napisac jakis skrypt, ktory najpierw po numerze wykryje jaki host, a potem podmontuje w zaleznosci od wyniku? Jesli tak to dane pobierac z dmesg? Czy nie da sie prosciej za pomoca jakiegos wbudowanego polecenia, magicznego tricku?
Edytowany przez dodo02 dnia 02-05-2008 11:03
|
|
|
|
obsy |
Dodano 02-05-2008 11:32
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Nie, zaczynasz kombinować
wykorzystaj skrypt w hotplugu. Oczytaj sobie zewnętrznym programem jaki nośnik masz zamontowany
(przez udevinfo, usb_id, volume_id czy coś w tym rodzaju) i wtedy zamontuj nośnik w odpowiednim /hddX
|
|
|
|
dodo02 |
Dodano 02-05-2008 13:41
|
User
Posty: 114
Dołączył: 01/12/2007 21:27
|
Ok, cat /proc/bus/usb/devices i dzieki temu mam Vendor, ProdID i SN urzadzen podpietych do USB ktore zawsze sa stale. Chyba do wykorzystania jako tako nadaje sie tylko vendor i prodID, bo to wykorzystuje hotplug.d (tak mi sie wydaje).
Tylko ze niestety dalej nie wiem jak przerobic plik /etc/hotplug.d/usb/01-mount
Domyslam sie, ze w montowaniu, w pierwszej petli for mam wcisnac pod koniec if'a ktory po porownaniu aktualnego z konkretnym vendor i productID wykona montowanie urzadzenia odrazu pod konkretny /hddX tak jak teraz mam w starupie:
mount -t ext3 /dev/discs/discXX/part2 /hdd/Server
gdzie XX bedzie aktualnie przegladanym przez petle for numerem disc.
Obsy, czy moglbys mi pomoc w tym kodzie? Zabardzo nie znam skladni :( a nie mam kiedy tego linuxa zainstalowac na kompie i sie pouczyc :) |
|
|
|
obsy |
Dodano 02-05-2008 21:41
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Kombinuj, ja jestem pod gruszą i dopiero w niedzielę możesz dostać kod
|
|
|
|
dodo02 |
Dodano 02-05-2008 22:36
|
User
Posty: 114
Dołączył: 01/12/2007 21:27
|
Hehe dobrze Ci, ja siedze niestety w domu i leje deszcz... To milego i jak bedziesz pamietal to prosze o pomoc po powrocie |
|
|
|
Tyllian |
Dodano 03-05-2008 23:02
|
User
Posty: 144
Dołączył: 10/03/2006 21:07
|
witam
jestem poczatkujacy w tej sprawie, gdzie mam wpisac i co aby automatycznie po starcie montowal mi sie pendrive?
Router: WRT54GL v1.1 + Pomidorek
NAS: TS-101 - 300GB
DVD: KiSS DP-600
VoIP: MyFon + PAP2T
|
|
|
|
obsy |
Dodano 04-05-2008 07:05
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
openwrt.pl, jest to opisane.
|
|
|
|
obsy |
Dodano 04-05-2008 08:09
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
@dodo02:
wget http://eko.one.pl/openwrt/01-mount -O /etc/hotplug.d/usb/01-mount
chmod 777 /etc/hotplug.d/usb/01-mount
I reboot :)
Oczywiście jeżeli masz cokolwiek innego do montowania to to wyłączasz/usuwasz. To oryginalny skrypt od whiterussian, przerobiony tak jak chcesz.
Wszystkie nośniki są montowane w /mnt/disc(tu numer dysku)_(tu numer partycji) czyli np. /mnt/disc0_1. Po pierwszym uruchomieniu pojawi się w /tmp plik mount.txt zawierający informacje gdzie dany nośnik jest zamontowany. lsusb pokaże Ci co jest czym. Wtedy edytujesz sobie plik /etc/hotplug.d/usb/01-mount i w miejsce XXXX lub YYYY lub w ogóle dodajesz nowy taki wpis umieszczasz odpowiedni symbol $PRODUCT z pliku /tmp/mount.txt, żeby to wyglądalo np. tak
case "$PRODUCT" in
"13fe/1d00/110")
path=/mnt/pendrive_${part##*part}
;;
(to np. jest mój kingston) Jeżeli na pendrive jest jedna partycja to zamontuje się ona w /mnt/pendrive_1.
Dzięki temu wkładając pendrive wszystkie partycje z niego mogą być montowane np w /mnt/pendrive a dysk w /hdd czy coś ten deseń. Jest niedziela, deszcz pada, więc masz co robić.
Edytowany przez obsy dnia 04-05-2008 08:14
|
|
|
|
dodo02 |
Dodano 04-05-2008 16:10
|
User
Posty: 114
Dołączył: 01/12/2007 21:27
|
@obsy
Dzieki za skrypt! Wlasnie o to mi chodzilo :D Niestety nie dzialaja mi dwie rzeczy:
1. Pendrive formatowalem za pomoca fdisck w openwrt, skasowalem wczesniej partycje (jedna) co mi potwierdzilo. Problem w tym ze open wrt widzi dwie partycje (1 - swap, 2-reszta w ext), ale windows i tak wie swoje i wyswietla jedna partycje ktora zajmuje calego pendrive (moge wgrywac pliki i je otwierac) mimo ze nie powinien wyswietlac w ogole dysku. Z twardzielem tak nie mialem. W efekcie skrypt ktory mi podales znajduje partycje 1 jako caly pendrive w FAT i 2 jako to co zrobilem w fdiscu. Napewno kasowalem partycje i wybralem primary przy tworzeniu nowych. nie bylo tez komunikatow bledu po stworzeniu systemu plikow. Poza tym nie majac jeszcze skryptu montowal mi i SWAPa i przestrzen w ext. Po wgraniu danych przez sambe i wlozeniu potem pena do windowsa nie widac danych, czyli widzi inna partycje FAT.
2. Skrypt ten nie rozpoznaje swapa co jest chyba normalne bo jesli dobrze rozumiem w /mnt/ sa tylko partycje "dyskowe". Jak jednak mam zrobic zeby ustawic swap wiedzac z ktorego nosnika go sobie dobierze? Bo:
Cytat swapon /dev/discs/disc0/part1 mija sie z celem skoro mam ten skrypt i dwa nosniki :( Tutaj jeszcze pytanie bo nie moglem znalezc na forum, a temat napewno pamietam byl. Ma byc jedna partycja wymiany na system a nie na nosnik jak tu ktos juz pytal?
Mam jeszcze trzy techniczne sprawy:
3. Skrypt nie zabezpiecza przed wlozeniem innego pendriva tej samej firmy i bedacego tym samym produktem. Mam dokladnie te same paramety vendor i productID co Ty, bo pewnie mamy takiego samego kingstona. W domu mam jeszcze 4 takie pendrivy (kazdy z rodziny ma swojego podpisanego +1 do rutera :D ). Czy nie daloby sie jeszcze jakos w tym skrypce wyciagnac seriala? Polecenie
cat /proc/bus/usb/devices pokazuje ta informacje ale nie wiem, jak to wykorzystac :). Pisze to juz tak czysto teoretycznie bo przeciez moge poprostu uwazac, zeby nie wlozyc zlego nosnika, albo wylaczac kawalek skryptu w takim wypadku.
4. Planuje kupic USB hub, bo porty mam dwa, a w tej chwili chodzi pendrive dysk i powinna jeszcze drukaka. Planuje za jakis czas moze cos jeszcze ;) Wiem, ze potrzebuje huba aktywnego bo zasilacz w asusie nie wyrabia, ale czy podlaczajac dysk przez huba (dysk jest podlaczony do mostka USB z wlasnym zasilanie dysku i mostka- wiem robi sie platanina ;) ), bede w staniei uzywac skryptu i odczytywac informacje o podlaczonym nosniku? Napewno ktos tu ma tak podlaczone pare dyskow do asusa -gdzies na forum widzialem takiego posta. Jak w takim wypadku rozpoznawac napedy, zeby samba i ftp mialy przydzielone odpowiednie udzialy?
5. Zalozmy ze mam juz tego huba i chce do niego podlaczyc kamerke, bluetooth i inne bajery opisane na openwrt.pl jak np 1-wire. Zanim do tego dojde minie jeszcze duzo czasu, ale czy podlaczajac takie rzeczy przez USB hub jestem w stanie sie do poszczegolnych urzadzen odwolywac?
Bede tez wdzieczny, gdyby ktos mi polecil konkretny produkt USB hub ktory moglbym zastosowac w powyzszych przypadkach. |
|
|
|
obsy |
Dodano 04-05-2008 16:18
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
1. Pokaz wynik fdisk -l /dev/discs/(cos tam)
2. Nie rozpoznaje swapa. On tylko montuje użyteczne partycje. Ale skoro wiesz gdzie jest montowanie, to możesz samodzielnie sprawdzić czy jest tam swap i go zamontować
3. Tak jak, zapomniałem tego napisać. Serial nie jest przekazywany przez hotpluga, musisz samodzielnie go sobie odczytać i np. montowanie uzależnić od tego.
4,5. Teoretycznie hub jest całkowicie przezroczysty i nie ma wpływu na widoczność urządzeń. Ale życie robi swoje i czasami zdarza się dziwny hub, więc niech ktoś poda coś, czego używa na codzień.
|
|
|
|
dodo02 |
Dodano 04-05-2008 18:00
|
User
Posty: 114
Dołączył: 01/12/2007 21:27
|
1.
root@OpenWrt:~# fdisk -l /dev/discs/disc0/disc
Disk /dev/discs/disc0/disc: 2055 MB, 2055208960 bytes
16 heads, 32 sectors/track, 7840 cylinders
Units = cylinders of 512 * 512 = 262144 bytes
Device Boot Start End Blocks Id System
/dev/discs/disc0/part1 1 489 125168 82 Linux swap / Solaris
/dev/discs/disc0/part2 490 7840 1881856 83 Linux
root@OpenWrt:~# df
Filesystem 1k-blocks Used Available Use% Mounted on
none 15256 64 15192 0% /tmp
/dev/mtdblock/4 6336 3768 2568 59% /jffs
/jffs 1024 1024 0 100% /
part1 2006752 32 2006720 0% /mnt/pendrive_1
part2 1852228 36244 1721892 2% /mnt/pendrive_2
part2 98435476 13571272 79863976 15% /mnt/hdd_2
part3 93722148 31341536 57619752 35% /mnt/hdd_3
Na obydwu nosnikach pierwsza partycja jest typu swap.
Przy poleceniu df widac, ze cos jest nie tak w pierwszej partycji dla pendrive (to wlasnie ta partycje widac popd winda jako caly pendrive) i openwrt tak to widzi :/ Jak inaczej to sformatowac poza OpenWRT nie niszczac pendrive?
2. No moge i tak zrobilem, ale to jest takie dzialanie na slepo :) Bo w sumie nie wiem gdzie po reboot bedzie ta partycja czy na /dev/discs/disc0 czy /dev/discs/disc1 czy jeszcze gdzies indziej jak podlacze HUBa. Z drugiej strony majac jedna taka partycje swap na wszystkich urzadzeniach moge przeleciec wszystkie az w koncu zaskoczy ;)
4,5 Czyli teoretycznie jak podlacze "normalnego" huba to powinienem widziec kolejne urzadzenia jakby byly podlaczone do tych portow usb co je mozna wlutowac do asusa i dalej? Sprobuje od kogos cos pozyczyc wczesniej...
Edytowany przez dodo02 dnia 04-05-2008 18:02
|
|
|
|
obsy |
Dodano 04-05-2008 18:17
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
1. Słuchaj, sam typ partycji nie wystarczy. mkswap jeszcze musisz na niej zrobić, bo teraz zapewne nadal masz tam vfat'a bo zmieniłem tylko jej typ.
2. Nie ma znaczenia jak dysk przedstawi się po podłączeniu. Jak jest swap to go podłączasz, jak normalna partycja - to ją montujesz. Po to właśnie to chciałeś, żeby móc odczytać jakąś właściwość i montować zasoby w ściśle określonym miejscu
4,5. Tak jest.
|
|
|
|
dodo02 |
Dodano 04-05-2008 21:57
|
User
Posty: 114
Dołączył: 01/12/2007 21:27
|
No coz... myslalem ze moze rzeczywiscie zapomnialem o tym stworzeniu systemu plikow dla swap, ale wczesniej mi normalnie podlaczal swapa i uzywal go (tak mi sie zdaje). W kazdym razie powtorzylem to samo jeszcze z dwa razy az w koncu uzylem do sformatowania w FAT32 narzedzia HP USB Disk Storage Format Tool. I dopiero wtedy ponowne kasowanie partycji fat i formatowanie pod openWRT dalo zamierzone efekty
obsy, dzieki za pomoc
Chcialbym jeszcze zadac takie lamerskie pytanie. Poniewaz mam ftp (vsftp) chcialbym szybko stworzyc odniesienia do zamontowanych partycji pod /mnt/hdd_2 i /mnt/hdd_3 z jakiegos glownego katalogu /hdd tak zebym po zalogowaniu na ftp widzial obydwie razem w dwoch roznych podkatalogach. Robic to linkami symbolicznymi czy twardymi (cos gdzies kiedys czytalem), czy moze da sie jakos w vsftp zrobic mu virtualny katalog z dwoma lokacjami? |
|
|
|
Tyllian |
Dodano 04-05-2008 21:59
|
User
Posty: 144
Dołączył: 10/03/2006 21:07
|
witam
sorrki ale nie moge sobie z tym poradzic co mam wpisac ?
pen w USB Devices jest widziany
Router: WRT54GL v1.1 + Pomidorek
NAS: TS-101 - 300GB
DVD: KiSS DP-600
VoIP: MyFon + PAP2T
|
|
|
|
obsy |
Dodano 04-05-2008 22:03
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
@Tyllian: masz przecież wyżej jak zrobić. Ty nie robisz nic, samo się zamontuje po wykryciu pendrive.
|
|
|
|
obsy |
Dodano 04-05-2008 22:03
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
@dodo02, kombinujesz :), zwykłe linki wystarczą.
|
|
|
|
dodo02 |
Dodano 04-05-2008 22:17
|
User
Posty: 114
Dołączył: 01/12/2007 21:27
|
@obsy
To moge prosic o jeszcze jedna podpowiedz? Jak sie robi "zwykle" linki? |
|
|
|
obsy |
Dodano 04-05-2008 23:09
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Symboliczne, ln -s
|
|
|