Mapujemy napęd

https://xpil.eu/k19

W odróżnieniu od "porządnych" systemów operacyjnych oferujących standardowe, zunifikowane ścieżki dostępu do plików (urządzeń, procesów i czego tam jeszcze), w Windows mamy ideę "napędu". Tradycyjnie oznaczany literami A: i B: dla dyskietek, C: dla dysku systemowego oraz D:, E:, ... i tak dalej dla całej reszty, napęd ów to nic innego jak oznaczenie partycji (w przypadku dysków lokalnych) lub zasobu sieciowego (w przypadku dysków zdalnych). Litery lokalnych dysków "robią się" automatycznie bez niczyjej ingerencji - natomiast te z zewnątrz trzeba zamapować. Czyli wydać magiczną komendę (ewentualnie wyklikać w UI, co i tak kończy się pod maską wydaniem magicznej komendy) NET USE z właściwymi parametrami.

Tyle wstępu.

W domowym biurze używam kofiguracji opartej na dwóch komputerach: jeden z Linuksem, którego głównym zadaniem jest dźwiganie wszystkich kontenerów Dockera tudzież link VPN do sieci klienta, drugi z Windowsem do pisania kodu oraz testowania projektów w przeglądarce łączącej się do maszyny Linuksowej. Maszyna z Windowsem to mój komp prywatny (przeinstalowany wprawdzie od zera i używany wyłącznie w celach służbowych, ale jednak), staram się więc nie mieć na nim żadnych danych służbowych, tak na wszelki wypadek. Przez większość czasu pracuję w VSC (podłączonym - przez WSL - do maszyny linuksowej po SSH) i DBeaver (klient SQL, również podłączony do maszyny linuksowej przez port tcp 3306) oraz trochę w Excelu i Notepad++ - te dwa ostatnie potrzebne mi są jak tlen do edytowania ad-hoc różnych plików "zewnętrznych" względem projektu. Pewnie mógłbym się przestawić z Notepad++ na VSC, ale póki co jakoś się jeszcze nie przestawiłem. No i Excel - tu nie ma bata, muszę mieć zamapowany dysk żeby sobie otwierać różne karkusze.

Excel for the win! - 9GAG

Ponieważ połączenie między jednym a drugim jest bardzo szybkie (sieć lokalna, gigabitowa), nic nie stoi na przeszkodzie aby zamapować sobie folder z maszyny linuksowej na maszynie windowsowej i używać go jak "normalnego" dysku. Wystarczy tylko wpisać w terminalu: net use x: \\192.168.1.123\projekt, puknąć enter i gotowe.

Tylko że niedawno miałem w domu małe przemeblowanie, przetasowanie i prze-w-ogóle, w efekcie zmienił mi się adres IP maszyny linuksowej i teraz zamiast 192.168.1.123 mam 192.168.1.17. Stąd też poprzednio zamapowany dysk X: przestał działać, trzeba było go usunąć (NET USE X: /DELETE) i zamapować od nowa. W międzyczasie podmieniłem adres ip maszyny linuksowej na nowy w pliku hosts (ukrytym - przecież to logiczne - w folderze C:\Windows\System32\drivers\etc), sprawdziłem że inne klamoty dalej działają (mogę się zalogować przez ssh a także otworzyć sesję w przeglądarce, używając wyłącznie nazwy maszyny linuksowej), przyszła pora na telesfora zamapowanie dysku. Uruchamiam więc konsolę powershell i piszę: net use x: \\linuxbox\project /user:admin *. Zgodnie z oczekiwaniem pojawia mi się prompt o hasło, wpisuję dupa123 swoje supertajne hasło... i nic. Nie ma komunikatu błędu. Nie ma time-outu. Nic nie ma.

Jak u Kononowicza, panie.

Spróbowawszy powyższego ze trzy albo i pięć razy stwierdziłem, że trzeba spróbować od dupy strony. Przeguglawszy kawałek sieci wykombinowałem, że mogę od strony linuksowej zapuścić tcpdump, który mi powie dokładnie co się dzieje między tymi maszynami. Zapuściłem, potem znów net use... i nic. Zero reakcji. Zero pakietów na interfejsie maszyny linuksowej.

O taki żeż ty i owaki, pomyślałem sobie (tak naprawdę pomyślałem sobie dużo gorzej, ale nie będę tu pisał co konkretnie, bo może kiedyś jakieś dzieci będą to czytać), po czym zagadałem do Ricka. Rick ku memu zdumieniu akurat miał chwilę, zerknął na mój problem, machnął ręką i doradził, żebym mu nie truł dupy tylko zamapował po adresie IP (zamiast po nazwie) i będzie działać.

No i faktycznie, zadziałało, ale dalej mnie męczyło dlaczego, u diaska, mogę używać nazwy zdalnej maszyny do zapuszczenia sesji SSH, do otwarcia stamtąd stron WWW, ale już nie do zamapowania dysku?

Potem było dużo różnych innych różności (mapowanie mapowaniem, ale świat się toczy dalej, praca, rodzina, wiadomo) i kornik cierpliwie podgryzający moje trzy na krzyż zwoje mózgowe odezwał się dopiero po trzech dniach, za to od razu z grubej rury: "Hej, baranie jeden, miałeś zagadkę do rozwiązania i się poddałeś praktycznie bez walki. Dalejże! Huzia na Józia!"

Skoro huzia, nie miałem innego wyjścia jak tylko wytoczyć najcięższą artylerię: zajrzeć do dokumentacji.

No i się doszukałem. Okazuje się, że w odróżnieniu od wszystkich innych protokołów sieciowych, ten od Samby ignoruje kompletnie wpisy w pliku hosts, zamiast tego oczekując wpisów w pliku... lmhosts. Bo tak.

Dodałem maszynę linuksową do lmhosts (składnia jest identyczna jak w hosts) - i zabanglało, od pierwszego strzału.

Dalibóg nie wiem czemu tak, pewnie jest z milion historycznych zaszłości i wyjaśnień. Nie wiem, nie znam się.

Grunt, że działa.

https://xpil.eu/k19

2 komentarze

  1. Cóż, Microsoft chyba za punkt honoru postawił sobie wprowadzanie własnych standardów tam gdzie to tylko możliwe. Ze szczególnym uwzględnieniem kwestii sieciowych, co wychodzi im szczególnie pociesznie.

    Co do zmiany IP dla maszyny linuksowej – jeśli nie była planowana, a zadziała się przypadkiem, to może wystarczyć skonfigurować serwer DHCP, by dla danego MAC przydzielał określony adres IP? Albo po prostu normalna domena rozwiązywana z serwera DNS, zamiast wpisu w hosts. Choć w kontekście tego, co piszesz, nie wiem czy zadziała.

    1. Mam tak poustawiane, ale przedtem laptop był na kabelku a teraz na wlanie, więc dwa różne adresy IP. Co do lokalnej domeny to po pierwsze nie bardzo wiem jak się to konfiguruje, a po drugie faktyczna nazwa sieciowa laptopa jest całkiem inna niż ta w adresie www, więc dodatkowa komplikacja. Aha, no i po trzecie cała reszta teamu ma to lokalnie skonfigurowane przez /etc/hosts więc nie chcę za bardzo kombinować.

Leave a Comment

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]

Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.