Możliwość uruchomienia Linuksa na Windowsie nikogo już nie dziwi. Od pewnego czasu Windows 10 posiada bowiem wbudowaną powłokę bash. Nie każdy jednak decyduje się na taki krok. Po pierwsze sam podsystem nie działa, przynajmniej na razie, idealnie, a po drugie domyślną opcją jest w nim Ubuntu, co niektórych również nie zadowala. A gdyby tak zainstalować na Windowsie dystrybucję Linuksa od SUSE? Hannes Kühnemund poinformował o takiej możliwości.
Microsoft rozwija się w każdym kierunku. Także w kierunku open soure’owym. Na Windows Subsystem for Linux (WSL) śmiało można uruchomić Linuksa. Hannes Kühnemund, Sr. Product Manager w SUSE, pokazał, jak, w prosty sposób, na Windowsie zainstalować openSUSE czy SLES 12.
Jak zainstalować? Krok po kroku:
1. Najpierw włącz Windows Subsystem for Linux. Instrukcję krok po kroku znajdziesz tutaj. Podczas instalacji konieczne będzie utworzenie użytkownika innego niż root i hasła. W kolejnych punktach będę nazywać tego użytkownika <linux_user>.
2. Następnie pobierz stąd dockerowy obraz openSUSE Leap 42.2.
3. Otwórz powłokę bash, którą znajdziesz w Menu Start pod nazwą „Bash on Ubuntu on Windows”.
4. Wypakuj openSUSE (ignorując wszystkie błędy) i wyjdź z powłoki bash.
$ sudo mkdir rootfs
$ sudo tar -C rootfs -Jxf openSUSE-42.2.tar.xz
$ exit
5. Zrób kopię starych plików i podmień je z plikami openSUSE. Otwórz wiersz poleceń (klawisz Windows, wpisz „cmd” i wciśnij Enter) i wykonaj następujące polecenia:
cd %localappdata%\lxss\
rename rootfs rootfs.ubuntu
move .\home\\rootfs .\
6. Ustaw „roota” jako domyślnego użytkownika:
lxrun /setdefaultuser root
7. Po wyjściu z wiersza poleceń uruchom bash z Menu Start (klawisz Windows, wpisz „bash” i wciśnij Enter).
8. Możesz także zmienić kolor ikony z pomarańczowej na zieloną. Pobierz ją stąd. Następnie skopiuj pobrany plik do %localappdata%\lxss\. W wierszu poleceń wykonaj następujące polecenia:
cd %localappdata%\lxss\
rename bash.ico Ubuntu.ico
rename Saki-NuoveXT-Apps-suse.ico bash.ico
9. Zrestartuj system.
10. Przejdź do %AppData%\Microsoft\Windows\Start Menu\Programs i nadaj mu odpowiednią nazwę.
W dalszej części wymagana będzie instalacja narzędzia o nazwie „sudo”, które nie jest zawarte w obrazie openSUSE. Dla tych, którzy nie wiedzą, wyjaśnię, że sudo to program pozwalający użytkownikowi na czasowe podniesienie uprawnień celem wykonywania zadań administracyjnych.
11. Otwórz powłokę bash openSUSE (klawisz Windows, wpisz „bash” i wciśnij Enter) i wprowadź następujące polecenie:
$ zypper in sudo
Poczekaj chwilę, aż zypper pobierze wszystkie niezbędne informacje z repozytorium. Następnie zatwierdź wszystkie pytania, wciskając klawisz [Y], by zainstalować sudo. Nie zamykaj jeszcze powłoki bash, ponieważ mamy do wykonania kilka poleceń.
12. Teraz musimy utworzyć zwykłego użytkownika wewnątrz openSUSE bash. Zanim jednak to zrobimy, musimy uświadomić sobie, że katalog domowy użytkownika nie jest przechowywany w głównym folderze plików, ponieważ je zastąpiliśmy. Jest bowiem osobny folder %localappdata\lxss\home i jest dostępny w openSUSE. Jeżeli nadal jesteś w powłoce bash, możesz przejść do folderu /home i sprawdzić.
$ cd /home
$ ls -la
total 8
drwxr-xr-x 2 root root 0 Jan 1 1970 .
drwxr-xr-x 2 root root 0 Jan 1 1970 ..
drwxr-xr-x 2 1000 1000 0 Jan 20 08:52 <linux_user>
Folder jest teraz w posiadaniu użytkownika, który nie jest znany systemowi operacyjnemu, o czym świadczą numery (ostatnia linia) zamiast nazw. Zmieńmy to, dodając <linux_user> do openSUSE.
$ useradd <linux_user>
13. Teraz poprzedni Linux i openSUSE używają różnych domyślnych grup identyfikatorów dla użytkowników. Poprzedni Linux używa ID=1000, a openSUSE ID=100. Tak wygląda to w obu systemach:
# former Linux
$ grep users /etc/group
users:x:1000:
# openSUSE Leap 42.2
$ grep users /etc/group
Users:x:100
14. Chociaż posiadamy odpowiedniego użytkownika ustawionego dla katalogu domowego, grupa nadal jest wyłączona. Za pomocą polecenia „id” możesz sprawdzić użytkownika i ustawienia grupy dla użytkownika.
$ id <linux_user>
Identyfikator grupy jest inny niż ten, który jest ustawiony dla katalogu domowego.
$ ls –la /home
total 8
drwxr-xr-x 2 root root 0 Jan 1 1970 .
drwxr-xr-x 2 root root 0 Jan 1 1970 ..
drwxr-xr-x 2 <linux user> 1000 0 Jan 20 08:52 <linux_user>
Zatem ustalmy go następującym poleceniem:
$ chgrp 100 /home/<linux_user> -R
15. Zanim z powrotem zmienisz domyślnego użytkownika, musimy ustawić hasło roota, co pozwoli używać systemu (bardziej doświadczeni użytkownicy Linuksa mogą chcieć pracować z /etc/sudoers).
passwd root
Wpisz nowe hasło dla roota i potwierdź, wprowadzając je ponownie.
16. Wszystko, co pozostało, to wskazać WSL użycie <linux_user> jako domyślnego użytkownika. Zamknij powłokę bash openSUSE i wykonaj w wierszu poleceń następujące polecenie:
lxrun /setdefaultuser <linux_user>
17. Wynik tego polecenia powinien być podobny do tego:
Found UNIX user: linux_user
Default UNIX user set to: linux_user
18. Zrobione. Nasz użytkownik jest prawidłowo skonfigurowany i podczas uruchamiania bash openSUSE widniejesz jako . Teraz należy umieszczać sudo na początku poleceń wymagających podniesionych uprawnień, np. „sudo zypper in <pakiet>”.