sobota, 19 grudnia 2009

Aktualizacja systemu Ubuntu

Bardzo ważną czynnością jest utrzymywanie systemu w jak najlepszej kondycji. W tym celu należy go jak najczęściej aktualizować. Nie wiem czy zauważyliście, że podczas uruchamiania Ubuntu zaraz po zalogowaniu wyświetla komunikat o poniższej treści:

Ostatnie dwie linijki wskazują wskazują, że dostępne są aktualizacje. W moim przypadku dostępnych jest 36 nowych pakietów, a wśród nich jest aż 14 krytycznych poprawek bezpieczeństwa. Nie ociągajmy się więc i zaktualizujmy system. Tym bardziej, że w dobie kiedy wszystko wykonywane jest automatycznie nie ma łatwiejszej czynności do wykonania. Wystarczy jedna prosta komenda: sudo apt-get upgrade. Zostaniemy poproszeni o potwierdzenie zapisania danych po czym system zostanie zaktualizowany.

Przy ponownym logowaniu nie zobaczymy już komunikatu o dostępnych aktualizacjach, aż do czasu gdy pojawią się nowe wersje.



Problemy z siecią na sklonowanej maszynie

Okazuje się, że klonowanie maszyn nie jest takie bezproblemowe. Gdy dzisiaj chciałem zaktualizować sklonowany system do najnowszej wersji spotkała mnie niemiła niespodzianka. Nie udało się połączyć w żaden sposób z siecią zewnętrzną. Ku mojemu wielkiemu rozczarowaniu poleceni ifconfig zwracało informacje o tym, że uruchomiony jest tylko jeden interfejs sieciowy - tak zwany loopback.

Każda próba zrestartowania urządzeń sieciowych za pomocą komendy: sudo /etc/init.d/networking restart. kończyła się komunikatem: eth0: ERROR while getting interface flags: No such device. Na szczęście od czego ma się wujka Google. Kilka minut później okazało się, że interfejs sieciowy nie zniknął tak po prostu, tylko podczas klonowania, z niewiadomych przyczyn, zmienił nazwę. W moim przypadku na eth1. Podejrzeć tę nazwę można za pomocą wymienianej już komendy ifconfig z przełącznikiem -a (ifconfig -a). Poniżej wynik komendy na jednej ze sklonowanych przeze mnie maszyn (niedziałających poprawnie).

Kiedy wiemy już co się stało trzeba zaaplikować poprawkę. Należy zmienić zawartość pliku /etc/network/interfaces w ten sposób, aby pozmieniane zostały odwołania do nieistniejącego eth0 na eth1. Kiedy już to wykonamy należy jeszcze raz zrestartować urządzenia sieciowe za pomocą komendy: sudo /etc/init.d/networking restart. Po zakończeniu restartu jeszcze raz sprawdzamy, czy interfejs się pojawił za pomocą komendy ifconfig. Wynik działania poniżej:

Pojawił się brakujący interfejs. Maszyna powinna mieć teraz dostęp do internetu. Możemy to sprawdzić wysyłając ping'a np. do www.onet.pl (komenda: ping www.onet.pl).

Niestety zachowanie maszyny podczas klonowania jest dla mnie niezrozumiałe. Nie udało mi się wyjaśnić tego i wyżej opisaną czynność będziemy musieli wykonywać dla każdej sklonowanej maszyny.

niedziela, 13 grudnia 2009

Klonowanie maszyn wirtualnych w VirtualBox

Jeżeli śledziliście ostatnie wpisy dotyczące maszyn wirtualnych to jesteście w stanie utworzyć VMa z wykorzystaniem VirtualBoxa. Jesteście również w stanie zainstalować na maszynie dystrybucję linuxa - Ubuntu. Oczywiście są to pożyteczne umiejętności. Jednak, jeżeli zamierzacie wykorzystywać wiele maszyn do różnych celów to dlaczego mielibyście to robić za każdym razem? Jest to czas stracony. Jak wiadomo czas to pieniądz, więc trzeba go oszczędzać.

Niestety VirtualBox nie udostępnił jak dotąd funkcji klonowania, która w łatwy i przyjemny sposób wykonałaby za nas czarną robotę. Trzeba poradzić sobie bez tego. Komplikuje to trochę sprawę, lecz jest na pewno efektywniejsze od ponownego tworzenia maszyny, konfigurowania jej i instalacji dystrybucji linuxa. Po pierwszy należy zrozumieć jakie elementy wchodzą w skład maszyny wirtualnej w VirtualBoxie.

Pierwszą rzeczą jest sama konfiguracja zapisana w formacie XML. Można ją obejrzeć zaglądając do pliku: C:\Documents and Settings\\.VirtualBox\Machines\\.xml. Wszystko co jest tam zapisane można w łatwy sposób "wyklikać" w samej aplikacji. Dlatego lepiej się nad tym nie rozwodzić.

Drugą, nie mniej ważną rzeczą jest wirtualny dysk, na którym maszyny wykonuje wszystkie operacje zapisywania i odczytywania danych. Każda maszyna wirtualna musi mieć przypisany co najmniej jeden dysk. Jednak definicje samych dysków znajdują się w globalnej konfiguracji VirtualBoxa. Definicje te są następnie wykorzystywane w konfiguracji samej maszyny. Jak wygląda definicja globalna? Jest to odwołanie do pliku na dysku utworzonego w odpowiednim formacie. Plik ten stanowi 'wirtualne' środowisko pracy VM. Same 'dyski' znajdują się w katalogu: C:\Documents and Settings\\.VirtualBox\HardDisks\.

Ostatnim elementem ważnym z punktu widzenia klonowania są migawki. Zawierają one zrzut stanu systemu z momentu, kiedy taka migawka została zrobiona. Takie migawki umożliwiają przywrócenie stanu maszyny wirtualnej z danego czasu. W przypadku klonowania maszyn z wykorzystaniem migawki, należy zmergować taką migawkę do postaci pliku zawierającego obraz wirtualnego dysku VirtualBoxa. W tym momencie nie będziemy korzystać z takiej możliwości, wiec pominę opis tego jak to wykonać. Skoncentrujemy się na kopiowaniu maszyny, której obecny stan zapisany jest w wirtualnym HDD.

Teoretycznie klonowanie dysku jest bardzo proste, ponieważ ogranicza się do wywołania jednego polecenia z poziomu linii komend konsoli, które udostępnia VirtualBox i podania namiaru na dysk źródłowy i docelowy. Samo polecenie wygląda następująco: "C:\Program Files\Sun\VirtualBox\VBoxManage.exe" clonevdi "DLNA Test.vdi" "template.vdi"
Sama operacja może potrwać krócej lub dłużej w zależności od wielkości pliku z dyskiem, który ma zostać sklonowany. Efekt powinien być taki jak na poniższym zrzucie.

Po wykonaniu tej operacji należy z poziomu aplikacji VirtualBox dodać nowo utworzony plik w Menedżerze nośników wirtualnych wybierając opcję: Plik->Menedżer nośnikó wirtualnych...

W okienku, które się pojawi należy wybrać opcję: Dodaj i wybrać plik z obrazem dysku, który został wcześniej utworzony i potwierdzić wybór.

Ostatnim korkiem, którego niestety nie ominiemy jest utworzenie nowej maszyny wirtualnej. Maszynę należy utworzyć zgodnie z opisem zamieszczonym w następującym wpisie. Gdy dojdziemy do pytania o wybór dysku wirtualnego, to należy zaznaczyć opcję: Użyj istniejącego dysku twardego i następnie wybrać odpowiedni dysk.

Po potwierdzeniu wszystkich zmian w głównym oknie aplikacji VirtualBox powinna się pojawić nowa maszyna wirtualną, którą proponuję uruchomić celem przetestowania. Oczywiście maszyna będzie zachowywać się jak pierwowzór, który sklonowaliśmy.


piątek, 11 grudnia 2009

Interfejs sieciowy maszyny wirtualnej widoczny w sieci lokalnej

Nie raz zdarzają się sytuacje w których chcemy, aby maszyna wirtualna i zainstalowany na niej system operacyjny były widoczne w sieci lokalnej. Ja chciałbym udostępnić (do celów testowych) serwer DMS uruchomiony na Ubuntu zainstalowanym na VM.

Niestety podstawowa konfiguracja maszyny wirtualnej zaraz po jej utworzenia za pomocą VirtualBox zakłada, że system gościa pozostaje ukryty za NATem. Na szczęście VB pozwala w łatwy sposób zmienić ten stan rzeczy. Przestawimy sposób działania "wirtualnej karty sieciowe" na tryb adaptera rzeczywistej karty sieciowej. Dzięki temu zabiegowi jeden fizyczny port karty sieciowej (w moim wypadku karta Wifi) będzie obsługiwał dwa logiczne adresy IP w sieci lokalnej.

Jakie czynności należy wykonać, aby osiągnąć wyżej opisany efekt? Należy wyłączyć maszynę wirtualną i następnie wybrać opcję Ustawienia i przejść na zakładkę Sieć. Poniższej zaprezentowane są domyślne ustawienia maszyny zaraz po jej utworzeniu.

Na widocznym ekranie należy zmienić opcję "Podłączony do" z "NAT" na "Bridged Adapter" i w opcji Nazwa wybrać interfejs sieciowy, któremu zostanie przypisany dodatkowy, logiczny adres IP i przez który będzie odbywać się komunikacja pomiędzy siecią lokalną, a maszyną wirtualną. Na poniższym zrzucie widać odpowiednie ustawienia. Wybór potwierdzamy przyciskiem OK.

Warto w tym miejscu zwrócić uwagę na to, że takiej wirtualnej karcie sieciowej można nadać adres MAC Robi się to wybierając opcję trybika położonego obok opcji Podłączony do.

W mojej sieci lokalnej znajduje się AP (i ruter jednocześnie), który odpowiada za przydzielanie adresów IP poszczególnym urządzeniom (usługa DHCP). Przydział adresu IP następuje na podstawie listy adresów MAC, które mogą zostać włączone do sieci. W przypadku gdyby Czytelnik korzystał z podobnego rozwiązania, należy pamiętać, aby dołączyć do tej listy adres MAC "wirtualnej" karty sieciowej. W przeciwnym razie możemy czuć się niemile zaskoczeni tym, że w samej maszynie wirtualnej nie będzie działać sieć.

Na zakończenie jeszcze jeden zrzut ekranu, który prezentuje poprawną konfigurację wirtualnej karty sieciowej w mojej sieci lokalnej.


VirtualBox i rozdzielczość konsoli

Jedną z bardziej denerwujących mnie rzeczy, które występują zaraz po zainstalowaniu Ubuntu na maszynie wirtualnej jest niewielka rozdzielczość, którą oferuje konsola. Zdaje się, że są to standardowe rozmiary konsoli: 25 linii na 80 kolumn. Oglądanie tego małego okienka na 17" monitorze LCD nie jest najlepszym doznaniem. Spróbujmy zatem zmienić rozmiar konsoli, którą raczy nas Ubuntu odpalone z maszyny wirtualnej.

Aby wykonać powyższą czynność, trzeba uruchomić VM z Ubuntu, zalogować się i następnie odnaleźć plik: /boot/grub/grub.cfg. Rozpocząć edycję pliku (np. za pomocą komendy sudo pico grub.cfg). W pliku tym należy odnaleźć konfigurację, która odpowiada za uruchomienia systemu podczas startu maszyny. Wpis wyglądać może mniej więcej w następujący sposób: linux /vmlinuz-2.6.31-14-generic.... Należy dodać na końcu tej linijki następujący zapis: vga=0x305 jeżeli chcemy, aby konsola otwierała się w pełnej rozdzielczości: 1024x768. Zapisać plik: CTRL+O, Enter i wyjść z trybu edycji CTRL+X. Po zrestartowaniu maszyny (sudo reboot) konsola otworzy się w wybranej rozdzielczości.

Na pewno nie ujdzie uwagi pojawienie się komunikatu o tym, że sposób przeze mnie opisany jest niepolecany. Jednak tego, który w zamian powinno się używać nie udało się mi uruchomić. Efekt nowego podejścia sprowadza się do czarnego ekranu po załadowaniu systemu, dlatego dopóki nie zostanie wyjaśnione dlaczego tak się dzieje proponuję pozostać przy starym sposobie.
 

czwartek, 10 grudnia 2009

Jak zainstalować Linuxa na wirtualne maszynie na przykłądzie VirtualBox i Ubuntu

W jednym z poprzednich odcinków opisałem w jaki sposób zainstalować VirtualBox oraz jak utworzyć maszynę wirtualną. Dzisiaj chciałbym przedstawić jak zainstalować Linuxa, a konkretnie dystrybucję Ubuntu (można ją ściągnąć z następujące strony), na utworzonym wcześniej środowisku.

Przypomnę jak wygląda okno VirtualBox z utworzoną maszyną wirtualną.

Zanim uruchomimy maszynę musimy zamontować obraz ściągniętej dystrybucji tak, aby była ona widoczna. Należy wybrać w tym celu opcję Plik, następnie Menedżer nośników wirtualnych i przejść na zakładkę Obrazy CD/DVD.

Lista dostępnych obrazów powinna być pusta. My dodamy nowy element z naszą dystrybucją. Klikamy opcję Dodaj i w okienku dialogowym, które się pojawi wyszukujemy obraz z Ubuntu, a następnie potwierdzamy wybór przyciskiem Otwórz. Na liście dostępny obrazów powinien pojawić się nowy wpis - tak jak na poniższym zrzucie ekranu.

Zatwierdzamy wszystkie wprowadzane zmiany przyciskiem OK.

W ten sposób VirtualBox symulować będzie zawartość napędu optycznego w postaci załączonego obrazu z dystrybucją Linuxa. Należy jeszcze konkretnej maszynie wskazać, że przy uruchamianiu w napędzie optycznym ma być widoczna nowa zawartość. W tym celu zaznaczamy na liście dostępnych maszyn wirtualnych, tą na której będziemy instalować Ubuntu. Następnie wybieramy opcję Ustawienia i na widocznej liście wybieramy element CD/DVD-ROM. Na ekranie, który się nam pokaże zaznaczamy checkbox'a Zamontuj napęd CD/DVD i po uaktywnieniu się opcji Plik obrazu ISO zaznaczamy ją. Jeżeli wprowadziliśmy wcześniej tylko jeden obraz to automatycznie powinien on zostać wybrany na liście, jeżeli jest ich kilka to trzeba wybrać odpowiedni.

Po zatwierdzeniu wprowadzonych zmian przyciskiem OK maszyna jest gotowa do uruchomienia. Nie ma zatem co zwlekać - wybieramy maszynę i odpalamy ją przyciskiem Uruchom. Z racji tego, że najpierw następuje próba załadowania zawartości symulowanego napęd z obrazem Ubuntu odpali się aplikacja instalacyjna, która pozwoli nam zainstalować system operacyjny. Poniższy zrzut przedstawia odpalony instalator z prośbą o wybranie języka.

Wybieramy Polski (chyba, że wolimy inny ;-) i zatwierdzamy Enterem. Zostaniem następnie poproszeni o wybranie operacji, którą chcemy wykonać - wybieramy Zainstaluj Ubuntu Serwer. Uruchomi się teraz właściwy instalator OS, który zadawać będzie nam pytania odnośnie konfiguracji systemu.

Jeżeli w pewnym momencie zniknie Wam kursor myszki i nie będziecie wiedzieć jak go odzyskać to nie panikujcie. VirtualBox obsługuje magiczny skrót, który pozwoli powrócić do systemu hosta - jest to prawy CTRL+HOME.

Zaczyna się prosto od pytania: czy chcemy zezwolić instalatorowi na detekcję klawiatury? Wybieramy opcję nie i następnie na zaprezentowanej liście wybieramy Poland i ponownie Poland na kolejnym ekranie. Po krótkiej chwili podczas której wyszukiwane są komponenty składowe maszyny pojawia się komunikat z prośbą o podanie nazwy komputera (w naszym wypadku maszyny wirtualnej, ale sic! instalator o tym nie wie ;-). Wprowadzamy nazwę, zatwierdzamy ją i ponownie czekamy, aż pojawi się kolejne okienko.

Najwyższy czas przydzielić przestrzeń dyskową. Wybieramy zaznaczoną opcję. Warto w tym miejscu zauważyć jak duży dysk wykrył instalator - oczywiście dysk ma tyle GB ile przydzieliliśmy maszynie wirtualnej podczas jest konfigurowania. W moim wypadku jest to 8,6 GB. Potwierdzamy wybór dysku i na następnym ekranie również zatwierdzamy, aby instalator automatycznie wykonał za nas czarną robotę. Przy kolejnych dwóch okienkach również zrzucamy odpowiedzialność na instalator wybierając Tak. Nastąpi teraz instalacja na utworzonych partycjach systemu.

W tym miejscu chciałem zaznaczyć ogromny plus wirtualizacji. Zawsze kiedy chciałem zainstalować dowolną dystrybucję linuxa obok windowsa obawiałem się tego czy czasem czegoś nie zepsuję. Tym razem wcale nie muszę się niczym przejmować, ponieważ w najgorszym przypadku usunę maszynę i cały proces rozpocznę raz jeszcze.


Po zakończeniu wgrywania komponentów systemu operacyjnego pojawi się okienko z prośbą o podanie nazwy użytkownik i haseł. Zapytani zostaniem również o to czy System ma automatycznie szyfrować i deszyfrować katalog domowy użytkownika przy odpowiednim wylogowywaniu się i zalogowaniu się. Nic nie stoi na przeszkodzie, aby tak robił dlatego zgadzamy się na propozycję.

W kolejnym oknie zostaniem poproszeni o podanie konfiguracji serwera proxy http jeżeli z takiego korzystamy - ja nie korzystam, więc pozostawiam to pole puste. Następnie pytanie o aktualizacje - wybór moim zdaniem jest jeden: Instaluj automatycznie aktualizacje bezpieczeństwa.

Teraz czas na wybór serwisów, które serwer będzie oferował. Ja ograniczę się w tej chwili wyłącznie do OpenSSH server. Nie zamierzam na dzień dzisiejszy korzystać z pozostałych usług. Natomiast te które zamierzam zainstalować będę dogrywał w późniejszym czasie.

No i to by było na tyle, jeżeli chodzi o sam proces instalacji. Instalator poprosi nas o wyciągnięcie płyty instalacyjnej ;-). Nie musimy tego jednak wykonywać w jakiś sposób po automatycznym restarcie maszyny włączył się zainstalowany Linux. To co nam pozostaje to zalogować się i cieszyć z Ubuntu.


Na koniec drobna rada: Jak wyłączyć maszynę wirtualną z uruchomionym linuxem? Elegancki sposób to wywołać polecenie sudo shutdown -h now.  Dzięki temu nastąpi poprawne zamknięcie wszystkich procesów linuxowych i okienko z maszyną samo się zamknie.

środa, 9 grudnia 2009

Freenet c.d.

W poprzednim poście zaznaczyłem, że nie udało mi się uruchomić wyszukiwania w sieci Freenet. Problemy wiązały się z tym, że nie miałem najnowszej wersji Javy. Pomimo tego, że ją jednak zainstalowałem i wykonałem kilka innych, dodatkowych czynności, opcja wyszukiwania nie była dostępna.

Dzisiaj postanowiłem upewnić się, że rzeczywiście związane jest to z Javą i po uruchomieniu aplikacji okazało się... że wszystko działa. Trudno mi to wytłumaczyć. Podejrzewam, że wymagany był restart komputera, ponieważ sama aplikacja działa jako serwis Windowsa. W każdym razie teraz jest już OK.

Napiszę w takim razie jakie dodatkowe czynności wykonałem, oprócz instalacji najnowszej Javy w pierwszej kolejności, że wszystko teraz ruszyło. Otóż wymusiłem, aby Windows w pierwszej kolejności uruchamiał aplikację javaw.exe zamieszczoną w katalogu z najnowszą Javą. Jak można to zrobić? Dodając do zmiennych systemowych zmienną JAVA_HOME wskazującą na główny katalog z Javą i następnie dodają na samym początku zmiennej PATH (!bardzo ważne jest, aby było to na samym początku tej zmiennej!) %JAVA_HOME%\bin;. Jak dodać zmienną systemową bądź ją zmienić? Trzeba otworzyć odpowiednie okienko: Start-> Ustawienia -> Panel Sterowania -> System -> Zaawansowane (zakładka) -> Zmienne środowiskowe (przycisk) -> Zmienne systemowe (okienko). Po wprowadzeniu tych zmian trzeba zrestartować kompa.

Przypomniałem sobie jeszcze jeden szczegół, który może być ważny w momencie podłączania się do samej sieci. Jeżeli podczas konfiguracji ustawiony zostanie zbyt duży poziom bezpieczeństwa i anonimowości to Freenet nie połączy się z sąsiednimi węzłami. Przy takich ustawieniach połączenia są nawiązywane tylko z Przyjaciółmi, a tych możemy nie mieć po instalacji aplikacji. Rozwiązaniem tego problemu jest obniżenie poziomu bezpieczeństwa. Można to wykonać klikając w pierwszy odnośnik po Security Levels, na głównej belce aplikacji Freenet. Następnie wystarczy obniżyć poziom (Protection against a stranger attacking you over the Internet) do Normal. Po zaakceptowaniu zmian (przycisk Uaktywnij na samy dole strony) trzeba chwilę odczekać i po chwili można cieszyć się możliwością korzystania z dobrodziejstw sieci Freenet.