Instalarea sistemului Alpine Linux într-o maşină virtuală

Lucrăm pe un PC cu arhitectură Intel, în versiunea pe 64 de biţi, şi avem disponibilă o memorie RAM de minim 4 GB. Sistemul de operare gazdă (host) este Microsoft Windows 10 Professional.

Managementul maşinilor virtuale

Instalăm hipervizorul Hyper-V. Astfel, din Control Panel/Programs (apăsând tastele Win şi R, producem apariţia căsuţei Run iar în aceasta scriem control panel), accesăm opţiunea Turn Windows features on and off.

Din fereastra pop-up, bifăm elementul Hyper-V.

Odată instalat hipervizorul, lucrăm cu el folosind Hyper-V Manager: din căsuţa Run (tastele Win + R), apelăm virtmgmt.msc.

Calculatorul pe care lucrăm este conectat la Internet. Pentru a putea instala elementele de care avem nevoie, trebuie ca Internetul să poată fi accesat de pe maşina virtuală în care vom instala sistemul de operare musafir (guest). Din acest motiv, folosind Hyper-V Manager-ul, construim o legătură (switch) virtuală la Internet: în panoul Actions, alegem Virtual Switch Manager.

Optăm pentru un switch de tip External şi apăsăm butonul Create Virtual Switch.

Noul switch va primi un nume potrivit, la mine este vorba de switch_pt_alpine_octag1, vom selecta tipul conexiunii la Internet, External network, după care vom apăsa butonul Apply, respectiv butonul OK. Atenţie, switch-ul foloseşte interfaţa de reţea a calculatorului fizic, deci, când utilizaţi altă interfaţă (precum stick-ul Digi în loc de router-ul de acasă…), maşina virtuală nu se va putea conecta la Internet.

Acum suntem pregătiţi pentru instalarea maşinii virtuale, cu numele alpine_octag1, în care vom instala sistemul de operare Alpine Linux.

Construcţia maşinii virtuale

Într-un director bine ales, cum ar fi C:\…\invatarea_sistemelor_de_operare_2018\alpine_linux, descărcăm imaginea sistemului de operare (ISO) Alpine Linux, varianta Vanilla, x86_64: alpine-vanilla-3.7.0-x86_64.iso (la data scrierii acestei postări). Tot aici, construim subdirectorul masina_alpine_octag1 care va conţine directoarele şi fişierele viitoarei maşini virtuale.

Revenind la Hyper-V Manager, fie din panoul stâng, poziţionându-ne pe numele calculatorului şi folosind butonul drept al mouse-ului, fie din panoul drept, la rubrica Actions/New, apăsăm pe butonul Virtual Machine.

Apăsând butonul Next în ferestra pop-up Before We Begin, ajungem la noua fereastră pop-up, ce va conţine particularităţile maşinii virtuale.

Aici, introducem numele maşinii virtuale, alpine_octag1, bifăm căsuţa Store the virtual machine in a different location şi, cu ajutorul butonului Browse, inserăm calea completă către subdirectorul masina_alpine_octag1. Apoi, apăsăm butonul Next.

În fereastra care urmează, Specify Generation, păstrăm opţiunea Generation 1 şi apăsăm butonul Next.

În fereastra Assign Memory, la rubrica Startup memory, inserăm valoarea dorită. În cazul meu, 512 MB (o putere a lui 2, vezi controversa 1000/1024). Se ţine seama de scopul maşinii virtuale, respectiv de memoria RAM a calculatorului pe care lucrăm şi de memoriile celorlalte maşini virtuale din acesta. Apoi, apăsăm butonul Next.

În fereastra Configure Networking, optăm pentru switch-ul virtual, după care apăsăm butonul Next.

În fereastra Connect Virtual Hard Disk, păstrăm opţiunea Create a virtual hard disk, apoi inserăm o valoare convenabilă în căsuţa Size, de exemplu 6 GB, după care apăsăm butonul Next. HDD-ul virtual se va găsi în subdirectorul dedicat, masina_alpine_octag1.

În fereastra Installation Options, alegem variantele Install an operating system from a bootable CD/DVD-ROM, respectiv Image file (.iso). Aici, cu ajutorul butonului Browse, adăugăm imaginea descărcată anterior, alpine-vanilla-3.7.0-x86_64.iso. Mai departe, apăsăm butonul Finish.

Maşina virtuală alpine_octag1 a fost creată. Rămâne să o pornim, respectiv să îi instalăm sistemul de operare.

Instalarea sistemului de operare musafir în maşina virtuală

Poziţionându-ne în panoul central, Virtual Machines, al Hyper-V Manager-ului, pornim maşina virtuală folosind butonul drept al mouse-ului: apăsăm pe elementul grafic de la rubrica Start.

La fel, folosind butonul drept al mouse-ului, ne conectăm la maşina virtuală: apăsăm pe elementul grafic de la rubrica Connect.

Mai departe, vom lucra în consolă.

Scriem prima comandă (numele generic al administratorului de sistem), apoi apăsăm tasta Enter:

root

Urmează comanda:

setup-alpine

La cerinţa Select keyboard layout [none], scriem:

us us

La cerinţa Enter system hostname (short form, e.g. ‘foo’) [localhost], scriem (în cazul meu):

octag1

Pentru a seta interfaţa de reţea (şi a căpăta acces la Internet), la întrebarea Which one do you want to initialize? (or ‘?’ or ‘done’) [eth0], alegem varianta tipică, din parantezele pătrate, apăsând tasta Enter.

Mai departe, optăm pentru IP-uri dinamice, răspunzând la întrebarea Ip address for eth0? (‘dhcp’, ‘none’ or ‘?’) [dhcp] prin apăsarea tastei Enter. Adică, vom folosi DHCP-ul.

Următoarea setare este standard (apăsăm tasta Enter): Do you want to do any manual network configuration? [no]. În cazul meu, calculatorul fizic s-a conectat la un router care funcţionează deja ca un server DHCP. Acesta i-a atribuit maşinii virtuale unul dintre IP-urile disponibile.

Introducem noua parolă a contului root. Dacă este considerată slabă de către sistem, o tastăm încă o dată. Atenţie, se recomandă folosirea unor parole puternice!

Reglăm ceasul maşinii virtuale, pentru a putea realiza sincronizări. Astfel, răspundem la întrebarea Which timezone are you in? (‘?’ for list) [UTC] scriind:

Europe/Bucharest

Urmează o nouă opţiune standard: HTTP/FTP proxy URL? (e.g. ‘http://proxy:8080’ or ‘none’) [none]. Adică, none.

Alegem depozitul de pachete (package repository) cel mai potrivit (mirror): Enter mirror number (1-…) or URL to add (or r/f/e/done) [f]. Am inserat numărul 5, adică dl-3.alpinelinux.org.

Din nou, opţiuni standard: Which SSH server? (‘openssh’, ‘dropbear’ or ‘none’) [openssh], adică OpenSSH, respectiv Which NTP client to run? (‘busybox’, ‘openntpd’, ‘chrony’ or ‘none’) [chrony], adică folosim Chrony.

La întrebarea Which disk(s) would you like to use? (or ‘?’ for help or ‘none’) [none], vom răspunde scriind:

sda

Aceasta pentru că maşinii virtuale i-a fost atribuit, în timp construcţiei, un HDD de 6 GB.

Dorim să păstrăm datele/setările între boot-ări succesive ale maşinii virtuale, respectiv calculatorului fizic. De aceea, la întrebarea How would you like to use it? (or ‘sys’, ‘data’, ‘lvm’ or ‘?’ for help) [?], vom răspunde scriind:

data

Ne vom da acordul în privinţa ştergerii datelor deja existente de pe acest HDD virtual, respectiv a nepăstrării informaţiilor de configurare: tastăm y (pentru întrebarea WARNING: Erase the above disk(s) and continue? [y/N]:), respectiv none (pentru întrebarea Enter where to store configs (‘floppy’, ‘usb’ or ‘none’) [none]).

La întrebarea Enter apk cache directory (or ‘?’ or ‘none’) [/var/cache/apk]:, răspundem tastând Enter.

După încheierea tuturor manevrelor (fetch…), sistemul este instalat. Tastaţi:

clear ; exit

Nu închideţi (re-boot) maşina virtuală! În caz contrar, se pierd toate setările.

Salvarea datelor

După intrarea în contul de root, cu ajutorul parolei, tastăm comanda:

apk upgrade -U

După încheierea execuţiei, instalăm un editor de text, şi anume Vim:

apk add vim

Cu ajutorul său, modificăm setările sistemului de operare:

vim /etc/lbu/lbu.conf

Apăsăm tasta i, pentru a trece în modul INSERT al editorului, apoi ne deplasăm cu tastele săgeţi până la rândul ce conţine cuvântul LBU_BACKUPDIR. Modificăm acest rând, scriind (după ce ştergem diezul):

LBU_BACKUPDIR=/var

Schimbăm modul editorului de text, apăsând tasta Esc, apoi scriem:

:wq

Mai departe, scriem:

lbu commit -v /var

Apoi, ieşim din contul de root (tastând exit) şi, din panoul Virtual Machines al Hyper-V Manager-ului, apăsăm butonul Shut Down… pentru a opri maşina virtuală.

Repornind maşina virtuală, din Hyper-V Manager, vom constata că setările contului de root s-au păstrat. O parte din setări au fost memorate (backed up) într-o arhivă (cu numele octag1.apkovl.tar.gz) dar nu sunt în funcţiune! De exemplu, sistemul nu recunoaşte comanda vim. Pentru a le instala, scriem:

apk upgrade -U

Din acest moment, sistemul cunoaşte comanda vim (de lansare a editorului de text Vim). Pentru a ieşi din editor fără să salvăm nicio modificare, se apasă tasta Esc, după care se foloseşte comanda :q.

Pentru a găsi arhiva setărilor, folosim comanda:

ls -la /media/sda2

Aici, sda2 este partiţia read-only a HDD-ului virtual. Pentru a vă convinge de aceasta, utilizaţi comanda de mai jos. Ea nu va putea fi executată de sistem.

mkdir /media/sda2/director_de_proba

Pentru a putea păstra (între opriri succesive ale maşinii virtuale) fişiere ori directoare personale în această partiţie, utilizăm comanda (conform recomandării oficiale):

mount -o remount,rw '/media/sda2'

Construim un director personal:

mkdir /media/sda2/octavian

În acest director, construim un fişier oarecare:

vim /media/sda2/octavian/notita1

Pe primul rând al fişierului notita1, scriem

Salutare!

Salvăm textul scris, cu comanda :wq, apoi ieşim din contul de root şi oprim maşina virtuală.

Persistenţa datelor

Repornind maşina virtuală, verificăm existenţa fişierului de probă cu comanda:

ls -la /media/sda2/octavian

Conţinutul fişierului poate fi vizualizat cu comanda:

cat /media/sda2/octavian/notita1

Maşina virtuală alpine_octag1, cu sistemul de operare Alpine Linux 3.7, este gata de utilizare!