[HOWTO] Linux w tle na Windowsie

  • 0 replies
  • 4541 views
*

Offline moarcode

  • Siewca hejtu
  • *******
  • 1799
  • 993
  • Płeć: Mężczyzna
  • 1, 2,3 próba klawiatury.
[HOWTO] Linux w tle na Windowsie
« dnia: Listopad 06, 2013, 16:45:02 pm »
Temat w zasadzie skierowany do userów, którzy pracują głównie w konsoli lub którzy chcą mieć Linuksa na Windowsie dostępnego tylko z linii poleceń.

W czym rzecz?

Abstrakt:

Instalacja GNU/Linux na MS Windows poprzez Wirtualną Maszynę w trybie Headless.

Czego potrzebujemy?

  • MS Windows
  • Zainstalowany Oracle VirtualBox
  • Obraz .iso dowolnej dystrybucji Linuksa

Czym jest VirtualBox?

W dużym skrócie to oprogramowanie pozwalające postawić wirtualny komputer na istniejącym systemie bazowym.
W naszym przypadku będzie to MS Windows. Możemy zainstalować dowolną dystrybucję Linuksa lub inne systemy operacyjne.

Jak zainstalować Linuksa na Maszynie Wirtualnej?

Odsyłam do Tutoriala: http://superlama.pl/2011/11/instalacja-ubuntu-na-virtualbox-czyli-poligon-dla-leszczy-w-budowie/
Nie jest to trudne. Jednak należy wprowadzić pewne modyfikacje do wyżej wymienionego tutoriala.

Po poprawnej istalacji systemu należy wejść w ustawienia Wirtualnej Maszyny:



Następnie wchodzimy w zakładkę Network >> Adapter 2 >> zaznaczamy opcję widoczną poniżej:



W zakładce Adapter 1 powinna być wartość NAT. Dzięki takiej konfiguracji mamy dostęp do naszej maszyny poprzez SSH oraz sama maszyna ma dostęp do internetu.

Uruchamiamy maszynę przez kliknięcie START w panelu VirtualBox.
Nazwa maszyny przyda nam się poźniej. Gdy nasz system się uruchomi logujemy się. Zakładam, że zainstalowaliście pochodną Debiania (Ubuntu, Mint) lub samego Debiania.
Otwieramy konsolę i wpisujemy:
sudo apt-get install openssh-server

Zainstalowaliśmy server SSH, który będzie bazą do połączenia się via SSH do naszego systemu postawionego na VirtualBox z poziomu Windowsa. Dla pewności, aby sprawdzić czy serwer jest uruchomiony wpisujemy:
/etc/init.d/ssh status
Wynik:
[15:50] szatan > user$ /etc/init.d/ssh status
[ ok ] sshd is running.

Informuje nas, że serwer działa. I o to nam chodzi. Domyślnie skonfigurowany serwer w zupełności wystarcza do pracy w formie o jaką tak dzielnie walczymy.

Czym jest SSH?

Secure Shell - protokół komunikacji poprzez sieć. Nam będzie to potrzebne do komunikacji Windowsa z naszą Wirtualną Maszyną.
Możliwe jest korzystanie z programu "cmd" w Windowsie, jednakże jest to mało wydajne z uwagi na ograniczone możliwości windowsowskiej konsoli. Czas poświęcony na konfigurację systemu, aby móc łączyć się poprzez SSH używając "cmd" jest niewarty osiągnietych efektów. Należy zainstalować OpenSSH, przypisać zmienna środowiskową etc. Gdyby kogoś interesował temat mogę pomóc.

Znacznie lepszym rozwiązaniem jest skorzystanie z możliwości programu Putty.
Download: http://www.putty.org/

Odpalamy Putty i w polu IP wpisujemy domyślny adres jaki przyjmuje nasza Maszyna Wirtualna:
192.168.56.101
Jeżeli jest inaczej należy sprawdzić adres IP logując się do systemu Linux i wydać polecenie:
sudo ipconfig -a
Polecenie wypisze wszystkie dostępne interfejsy sieciowe. Interesuje nas w szczególności ten z początkiem 192.168.*.*.
Przepisujemy podany adres do pola IP w programie Putty. Nadajemy nazwę w polu zaznaczony poniżej i klikamy SAVE. W ten sposób nie będziemy musieli za każdym razem wpisywać adresu IP.



Po kliknięciu przycisku OPEN połączymy się z serwer SSH, który pozwoli nam się zalogować do systemu Linuks.
Przygotowaliśmy sobię bazę, która w sumie może już posłużyć do łączenia się poprzez SSH na nasz system po ówczesnym włączeniu Maszyny Wirtualnej.

Zastanówmy się co można usprawnić?

Po co włączać cały panel VirtualBox skoro możemy stworzyć prosty skrypt, który odpali nam Maszynę Wirtualną w tzw. trybie Headless, czyli bez okienek. System będzie działał w tle. Jednakże, gdy taki skrypt odpalimy okno konsoli nadal będzie widoczne. Rozwiązanie prezentuję poniżej:
Tworzymy plik i wpisujemy:
cd "C:\Program Files\Oracle\VirtualBox\"
VBoxHeadless --startvm debian
Gdzie "debian" to nazwa naszej Maszyny Wirtualnej. Zapisujemy plik w dowolnej lokalizacji z nazwą startvm.bat
Następnie tworzymy nowy plik i wpisujemy:
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\sciezka\startvm.bat" & Chr(34), 0
Set WinScriptHost = Nothing
Gdzie "C:\sciezka\startvm.bat" to ścieżka do naszego skryptu startvm.bat. Tak stworzony plik nazywamy linux.vbs i umieszczamy w:
C:\Windows\System32. Można mieć kaprys umieścić ten plik w innej lokalizacji, ale wymaga to poźniej zabawy z ustawianiem zmiennych środowiskowych. Moim zdaniem nie warto.

Ok, co dalej?

Start>Uruchom>cmd
Wpisujemy w oknie konsoli:
linux
I odpala nam sie Maszyna Wirtualna. Odczekajmy chwilę, aby mogła się włączyć i załadować system.
Uruchamiamy Putty, LOAD sesji i klikamy na OPEN. Otwiera nam sie okno terminala i możemy zalogować się do systemu na Maszynie Wirtualnej.

Dodatkowo:

1. Można doczytać i zrobić tak, aby Wirtualna Maszyna startowala z systemem, ja wole mieć to pod kontrolą i włączać system wtedy kiedy chcę.
2. Tworzymy plik:
taskkill /F /IM VBoxHeadless.exe
taskkill /F /IM VBoxNetDHCP.exe
taskkill /F /IM VBoxSVC.exe
I nazywamy go linuxkill.bat oraz umieszczamy go w C:\Windows\System32. Po wpisaniu w konsoli Windows
linuxkill
procesy Maszyny Wirtualnej zostaną zabite. Wszelkie niezapisane dane w systemie uruchomionym na MW zostana NIEZAPISANE. Rozwiązanie niezbyt eleganckie, pewnie da się stworzyć skrypt który zamyka poprawnie MW, mi jednak wystarcza takie rozwiązanie.

W razie jakichkolwiek pytań służę pomocą.

« Ostatnia zmiana: Listopad 07, 2013, 12:48:20 pm wysłana przez mati75 »
Look closer, fall deeper.