Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso:cursuri:curs-10 [2014/12/11 23:34]
razvan.deaconescu
uso:cursuri:curs-10 [2022/12/12 20:02] (current)
sergiu.weisz
Line 1: Line 1:
-====== Curs 10 - Stocarea datelor ​=======+====== Curs 10 - Securitatea Sistemului ​=======
  
-  * [[http://elf.cs.pub.ro/uso/res/cursuri/curs-10/​curs-10-handout.pdf | Slide-uri curs]] +  * [[https://docs.google.com/presentation/d/1_cb_aQCGOEsTfP7r1LXgiLpus9DMM9Fk/edit#​slide=id.p1| Slide-uri curs]] 
-  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-10/​curs-10-handout-4on1-notes.pdf | Handout 4on1 and notes space]] +  * **Suport de curs** 
-  * [[http://elf.cs.pub.ro/uso/res/​cursuri/​curs-10/​curs-10-handout-8on1.pdf ​Handout 8on1]] +    * [[https://github.com/​systems-cs-pub-ro/carte-uso/releases ​Utilizarea sistemelor de operare]] 
-  **Cuvinte cheie**: date digitale, structurate,​ nestructurate,​ entitate, proprietate,​ asociere, format tabelar, format text, format binar, serializare,​ atribut-valoare, INI, JSON, YAML, XML, CSV, spreadsheet,​ bază de date, SGBD, DBMS, relațional,​ RDMBS, interogare, SQL+        Secțiunea 12 Securitatea Sistemului
  
-<​html>​+<HTML> 
 +<iframe src="​https://​docs.google.com/​presentation/​d/​e/​2PACX-1vRwHKFfa4yloqUMRxpZYvfYyvOJ7f7iRwFaGZpIPSmkA7z7XxNlais1y2uK3NqXzg/​embed?​start=false&​loop=false&​delayms=3000"​ frameborder="​0"​ width="​480"​ height="​389"​ allowfullscreen="​true"​ mozallowfullscreen="​true"​ webkitallowfullscreen="​true"></​iframe>​ 
 +</​HTML>​ 
 + 
 +/* 
 + 
 +====== Curs 09 - Considerente hardware. Mașini virtuale ======= 
 + 
 +  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-09/​curs-09-handout.pdf | Slide-uri curs]] 
 +  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-09/​curs-09-handout-4on1-notes.pdf | Handout 4on1 and notes space]] 
 +  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-09/​curs-09-handout-8on1.pdf | Handout 8on1]] 
 +  * **Cuvinte cheie**: hardware, placă de bază, magistrală (//bus//), procesor, memorie (RAM), hard disk, \cmd{dd}, system on a chip, mașină virtuală, //host//, //guest//, //​hypervisor//,​ VMware, VirtualBox, ''​.vmdk'',​ ''​.vmx'',​ ''​.vdi'',​ ''​.vbox'',​ ''​vboxmanage'',​ NAT, //​host-only//,​ //​bridged//,​ Open Virtualization Format 
 +  * **Suport de curs** 
 +    * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC | Introducere în sisteme de operare]] 
 +      * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC&​pg=PA185 | Capitolul 7 - Analiza hardware a sistemului]] 
 +    * [[http://​www.amazon.com/​Virtual-Machines-Versatile-Platforms-Architecture/​dp/​1558609105 | Virtual Machines -- Versatile Platforms for Systems and Processes]] 
 +      * Capitolul 1 -- Introduction to Virtual Machines 
 +      * Capitolul 8 -- System Virtual Machines 
 +  * **Alte resurse** 
 +    * http://​www.binarytides.com/​linux-commands-hardware-info/​ 
 +    * http://​www.binarytides.com/​linux-command-check-disk-partitions/​ 
 +    * http://​www.cyberciti.biz/​faq/​linux-command-to-find-the-system-configuration-and-hardware-information/​ 
 +    * https://​www.virtualbox.org/​manual/​ch08.html 
 + 
 +<HTML>
   <​center>​   <​center>​
-    <iframe src="​http://​docs.google.com/​viewer?​url=http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-10/curs-10-handout.pdf&​embedded=true"​ width="​600"​ height="​480"​ style="​border:​ none;">​+    <iframe src="​http://​docs.google.com/​viewer?​url=http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-09/curs-09-handout.pdf&​embedded=true"​ width="​600"​ height="​480"​ style="​border:​ none;">​
     </​iframe>​     </​iframe>​
   </​center>​   </​center>​
 +</​HTML>​
 +
 +===== Demo-uri =====
 +
 +Pentru rularea demo-urilor de mai jos folosim [[http://​repository.grid.pub.ro/​cs/​uso/​USO%20Demo.ova|mașina virtuală USO Demo]]. Mașina virtuală (în format OVA) poate fi importată în VirtualBox. Comenzile le vom rula în cadrul mașinii virtuale.
 +
 +Mașina virtuală deține două interfețe de rețea:
 +  * ''​eth0''​ pentru accesul la Internet (interfață de tipul NAT)
 +  * ''​eth1''​ pentru comunicarea cu sistemul fizic (gazdă, //host//) (interfață de tipul //Host-only Adapter//)
 +
 +Pentru a rula demo-ul avem două opțiuni:
 +  - Folosim direct consola mașinii virtuale.
 +  - Aflăm adresa IP de pe interfața ''​eth1''​ a mașinii virtuale și ne conectăm prin SSH, de pe sistemul fizic, folosind comanda<​code>​
 +ssh student@<​adresa-IP-vm-eth1>​
 +</​code>​ unde ''<​adresa-IP-vm-eth1>''​ este adresa IP a interfeței ''​eth1''​ din cadrul mașinii virtuale.
 +
 +Pentru conectarea la mașina virtuală folosim numele de utilizator ''​student''​ cu parola ''​student''​. Contul ''​student''​ are permsiuni de ''​sudo''​. Folosind comanda<​code>​
 +sudo su -
 +</​code>​
 +obținem permisiuni privilegiate (de ''​root''​) în shell.
 +
 +<​note>​
 +Dacă dorim să ne conectăm pe SSH iar mașina virtuală nu are adresă IP configurată pe interfața ''​eth1''​ atunci folosim comanda<​code>​
 +sudo dhclient eth1
 +</​code>​
 +pentru a obține o adresă IP.
 +</​note>​
 +
 +<​note>​
 +Dacă optăm pentru rularea prin SSH iar sistemul fizic rulează Windows, putem folosi [[http://​www.chiark.greenend.org.uk/​~sgtatham/​putty/​|Putty]] pe post de client SSH pe sistemul fizic.
 +</​note>​
 +
 +<​note>​
 +Comenzile folosite sunt de uz general. Actualizând adresele IP cu adrese potrivite, putem rula cu succes comenzile pe orice sistem sau mașină virtuală Linux.
 +</​note>​
 +
 +==== Afișarea de informații despre placa de bază ====
 +
 +Placa de bază este suportul pentru alte componente hardware. Placa de bază dispune de socluri (''​socket'',​ ''​slot''​) unde pot fi adăugate alte componente hardware (precum procesor sau module de memorie) sau controllere care fac legătura cu alte componente (precum controller SCSI pentru hard disk).
 +
 +Comenzi prin care putem afișa informații despre componentele hardware conectate la magistralele (''​bus''​) plăcii de bază sunt ''​lspci''​ și ''​lsusb''​. Rularea acestor comenzi în mașina virtuală duce la afișarea componentelor hardware **virtuale** conectate la placa de bază:<​code>​
 +student@uso-demo:​~$ lspci
 +00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
 +00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/​Triton II]
 +00:01.1 IDE interface: Intel Corporation 82371AB/​EB/​MB PIIX4 IDE (rev 01)
 +00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
 +00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
 +00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service
 +00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)
 +00:06.0 USB controller: Apple Inc. KeyLargo/​Intrepid USB
 +00:07.0 Bridge: Intel Corporation 82371AB/​EB/​MB PIIX4 ACPI (rev 08)
 +00:08.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
 +00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/​ICH8M-E) SATA Controller [AHCI mode] (rev 02)
 +
 +student@uso-demo:​~$ lsusb
 +Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
 +Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +</​code>​
 +
 +În output-ul comenzii putem vedea informații despre hardware-ul expus de mașina virtuală, în special controllerele care se regăsesc pe placa de rețea. Observăm controllere pentru:
 +  * placa video (''​VGA''​)
 +  * plăcile de rețea (''​Ethernet''​) de 1 Gb (gigabit): sunt două plăci de rețea, expuse prin interfețele de rețea ''​eth0''​ și ''​eth1''​
 +  * SATA (controller pentru hard disk)
 +
 +Pentru a afișa informații extinse hardware despre componentele sistemului, cel mai bine este să folosim comanda ''​lshw''​. Pentru început, pe mașina virtuală, trebuie să instalăm pachetul ''​lshw'':<​code>​
 +student@uso-demo:​~$ sudo apt-get install lshw
 +</​code>​
 +
 +Printr-o simplă rulare a comenzii ''​lshw''​ vom afișa informații despre întreg hardware-ul sistemului<​code>​
 +student@uso-demo:​~$ sudo lshw 
 +uso-demo ​                 ​
 +    description:​ Computer
 +    width: 32 bits
 +    capabilities:​ smbios-2.5
 +  *-core
 +[...]
 +</​code>​
 +
 +Pentru a afișa informații despre hardware în format tabelar, mai ușor de urmărit, folosim opțiunea ''​-short''​ la comanda ''​lshw''<​code>​
 +student@uso-demo:​~$ sudo lshw -short
 +H/W path        Device ​     Class       ​Description
 +===================================================
 +                            system ​     Computer
 +/0                          bus         ​Motherboard
 +/0/0                        memory ​     500MiB System memory
 +/0/1                        processor ​  ​Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
 +/​0/​100 ​                     bridge ​     440FX - 82441FX PMC [Natoma]
 +/​0/​100/​1 ​                   bridge ​     82371SB PIIX3 ISA [Natoma/​Triton II]
 +/​0/​100/​1.1 ​                 storage ​    ​82371AB/​EB/​MB PIIX4 IDE
 +/​0/​100/​2 ​                   display ​    ​VirtualBox Graphics Adapter
 +/​0/​100/​3 ​       eth0        network ​    ​82540EM Gigabit Ethernet Controller
 +/​0/​100/​4 ​                   generic ​    ​VirtualBox Guest Service
 +/​0/​100/​5 ​                   multimedia ​ 82801AA AC'97 Audio Controller
 +/​0/​100/​6 ​                   bus         ​KeyLargo/​Intrepid USB
 +/​0/​100/​6/​1 ​     usb1        bus         OHCI PCI host controller
 +/​0/​100/​6/​1/​1 ​               input       USB Tablet
 +/​0/​100/​7 ​                   bridge ​     82371AB/​EB/​MB PIIX4 ACPI
 +/​0/​100/​8 ​       eth1        network ​    ​82540EM Gigabit Ethernet Controller
 +/​0/​100/​d ​                   storage ​    ​82801HM/​HEM (ICH8M/​ICH8M-E) SATA Controller [AHCI mode]
 +/0/2            scsi0       ​storage ​    
 +/​0/​2/​0.0.0 ​     /​dev/​sda ​   disk        8589MB VBOX HARDDISK
 +/​0/​2/​0.0.0/​1 ​   /​dev/​sda1 ​  ​volume ​     7806MiB EXT4 volume
 +/​0/​2/​0.0.0/​2 ​   /​dev/​sda2 ​  ​volume ​     383MiB Extended partition
 +/​0/​2/​0.0.0/​2/​5 ​ /​dev/​sda5 ​  ​volume ​     383MiB Linux swap / Solaris partition
 +/0/3            scsi2       ​storage ​    
 +/​0/​3/​0.0.0 ​     /​dev/​cdrom ​ disk        DVD reader
 +</​code>​
 +Ni se afișează informații despre componentele hardware ale sistemului: placă de bază, controllere,​ memorie RAM, hard disk. Putem afișa informații detaliate și despre fiecare componentă în parte, așa cum vom vedea mai jos.
 +
 +<​note>​
 +Alte comenzi care afișează informații despre componentele hardware ale sistemului sunt comenzile ''​dmidecode'',​ ''​inxi''​ și ''​hwinfo''​. Dacă nu sunt instalate le puteți instala folosind comenzi precum cele de mai jos:<​code>​
 +sudo apt-get install dmidecode
 +sudo apt-get install inxi
 +sudo apt-get install hwinfo
 +</​code>​
 +</​note>​
 +
 +<​note>​
 +Detalii despre comnezile de afișare de informații despre hard discuri găsiți și la link-ul indicat ca resursă utilă în partea de sus a paginii: http://​www.binarytides.com/​linux-commands-hardware-info/​
 +</​note>​
 +==== Afișarea de informații despre procesor ====
 +
 +Pentru a afișa informații despre procesorul sistemului putem folosi comanda ''​lscpu''<​code>​
 +student@uso-demo:​~$ lscpu
 +Architecture: ​         i686
 +CPU op-mode(s): ​       32-bit
 +Byte Order: ​           Little Endian
 +CPU(s): ​               1
 +On-line CPU(s) list:   0
 +Thread(s) per core:    1
 +Core(s) per socket: ​   1
 +Socket(s): ​            1
 +Vendor ID:             ​GenuineIntel
 +CPU family: ​           6
 +Model: ​                42
 +Model name:            Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
 +Stepping: ​             7
 +CPU MHz:               ​2491.852
 +BogoMIPS: ​             4983.70
 +Hypervisor vendor: ​    KVM
 +Virtualization type:   full
 +L1d cache: ​            32K
 +L1i cache: ​            32K
 +L2 cache: ​             256K
 +L3 cache: ​             3072K
 +</​code>​
 +
 +Comanda ne afișează tipul procesorului expus de mașina virtuală. Acesta este un procesor single core, și este mapat direct peste procesorul fizic (adică al sistemului fizic peste care rulează mașina virtuală). De aceea, output-ul acestei comenzi va diferi depinzând de sistemul fizic pe care rulează mașina virtuală.
 +
 +În output-ul comenzii ne sunt afișate informații despre procesor, precum numărul de core-uri, numărul modelului, frecvența, dimensiunea memoriei cache.
 +
 +Aceste informații pot fi afișate și cu ajutorul comenzii ''​lshw''<​code>​
 +student@uso-demo:​~$ sudo lshw -class cpu
 +  *-cpu                   
 +       ​product:​ Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
 +       ​vendor:​ Intel Corp.
 +       ​physical id: 1
 +       bus info: cpu@0
 +       ​version:​ 6.10.7
 +       ​serial:​ 0002-06A7-0000-0000-0000-0000
 +       size: 2500MHz
 +       ​width:​ 32 bits
 +       ​capabilities:​ fpu fpu_exception wp vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 rdtscp constant_tsc nonstop_tsc pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm
 +</​code>​
 +
 +Informațiile despre procesor sunt accesibile, în mod tradițional,​ în sistemul de fișiere ''/​proc'',​ prin intermediul fișierului ''/​proc/​cpuinfo'':<​code>​
 +student@uso-demo:​~$ cat /​proc/​cpuinfo ​
 +processor : 0
 +vendor_id : GenuineIntel
 +cpu family : 6
 +model : 42
 +model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
 +[...]
 +</​code>​
 +
 +<​note>​
 +Folosirea oricăror dintre cele trei comenzi de mai sus este aproximativ echivalentă. O folosim pe cea cu care ne simțim cel mai confortabil.
 +</​note>​
 +
 +Dacă ne interesează să aflăm pe scurt, numărul de core-uri/​procesoare din sistem, respectiv arhitectura hardware a sistemului, folosim comenzile<​code>​
 +student@uso-demo:​~$ nproc
 +1
 +
 +student@uso-demo:​~$ arch
 +i686
 +</​code>​
 +
 +<​note>​
 +La fel cum am precizat mai sus, informații depsre procesor putem afla și folosind comenzile ''​dmidecode'',​ ''​inxi''​ și ''​hwinfo''​.
 +</​note>​
 +
 +Dacă dorim să vedem încărcarea sistemului și utilizarea procesorului,​ putem folosi comanda ''​top''​ sau ''​htop''​. Aceste comenzi au avantajul că ne afișează și procesele sistemului și putem identifica procesele care consumă procesor și care afectează performanța sistemului (așa numitele //CPU hogs//).
 +
 +Pentru a afișa sumar informații despre utilizarea procesorului putem folosi comanda ''​mpstat'':<​code>​
 +student@uso-demo:​~$ mpstat
 +Linux 3.16.0-4-586 (uso-demo) 12/05/2015 _i686_ (1 CPU)
 +
 +06:02:14 PM  CPU    %usr   ​%nice ​   %sys %iowait ​   %irq   ​%soft ​ %steal ​ %guest ​ %gnice ​  %idle
 +06:02:14 PM  all    0.25    0.00    0.13    0.70    0.00    0.02    0.00    0.00    0.00   98.91
 +</​code>​
 +În output-ul de mai sus, mare parte din procesor este liberă (''​idle''​):​ ''​98.91%''​ din timpul de procesor este marcat ''​idle''​.
 +==== Afișarea de informații despre memorie ====
 +
 +Pentru a afla informații despre memoria RAM a sistemului putem folosi comanda ''​lshw'':<​code>​
 +student@uso-demo:​~$ sudo lshw -class memory
 +  *-memory ​               ​
 +       ​description:​ System memory
 +       ​physical id: 0
 +       size: 500Mi
 +</​code>​
 +
 +Din păcate comanda ne oferă informații minimale despre memoria RAM. Dacă ne interesează viteza de acces, numărul de module și alte informații,​ putem folosi comanda ''​dmidecode''​. Din păcate, pe mașina virtuală nu afișează informații extinse, dar putem afla informații mai multe rulând comanda pe un sistem Linux instalat nativ:<​code>​
 +razvan@einherjar:​~$ sudo dmidecode --type memory
 +# dmidecode 3.0
 +Getting SMBIOS data from sysfs.
 +SMBIOS 2.6 present.
 +
 +Handle 0x0005, DMI type 16, 15 bytes
 +Physical Memory Array
 + Location: System Board Or Motherboard
 + Use: System Memory
 + Error Correction Type: None
 + Maximum Capacity: 8 GB
 + Error Information Handle: Not Provided
 + Number Of Devices: 2
 +
 +Handle 0x0006, DMI type 17, 28 bytes
 +Memory Device
 + Array Handle: 0x0005
 + Error Information Handle: Not Provided
 + Total Width: 64 bits
 + Data Width: 64 bits
 + Size: 4096 MB
 + Form Factor: SODIMM
 + Set: None
 + Locator: ChannelA-DIMM0
 + Bank Locator: BANK 0
 + Type: DDR3
 + Type Detail: Synchronous
 + Speed: 1333 MHz
 + Manufacturer:​ Samsung
 + Serial Number: 66313530
 + Asset Tag: Unknown
 + Part Number: M471B5273CH0-CH9  ​
 + Rank: Unknown
 +[...]
 +</​code>​
 +În output-ul comenzii ''​dmidecode''​ putem afla numărul de sloturi (''​bank''​),​ fabricantul,​ viteza, tipul.
 +
 +Tot cu ajutorul comenzii ''​dmidecode''​ putem afișa informații despre memoria cache a sistemului:<​code>​
 +razvan@einherjar:​~$ sudo dmidecode -t cache
 +</​code>​
 +
 +Dacă ne interesează informații despre utilizarea memoriei sistemului, putem folosi comanda ''​free'':<​code>​
 +student@uso-demo:​~$ free -m
 +             ​total ​      ​used ​      ​free ​    ​shared ​   buffers ​    ​cached
 +Mem:           ​500 ​       270        230          4         ​24 ​       196
 +-/+ buffers/​cache: ​        ​48 ​       451
 +Swap:          382          0        382
 +</​code>​
 +Comanda afișează totalul de memorie RAM a sistemului și cât din acesta este folosit. În cazul nostru avem ''​500''​ de MB de memorie RAM, dintre care sunt folosiți ''​270''​ MB și sunt disponibili ''​230''​ MB.
 +
 +Detalii despre utilizarea memoriei RAM găsim în fișierul ''/​proc/​meminfo'':<​code>​
 +student@uso-demo:​~$ cat /​proc/​meminfo ​
 +MemTotal: ​        ​512596 kB
 +MemFree: ​         236044 kB
 +MemAvailable: ​    ​468944 kB
 +Buffers: ​          25296 kB
 +Cached: ​          ​201248 kB
 +[...]
 +</​code>​
 +
 +Informații despre utilizarea memoriei sistemului aflăm și prin folosirea comenzilor ''​top''​ sau ''​htop''​. Aceste comenzi au avantajul că ne afișează și procesele sistemului și putem identifica procesele care consumă memorie și care afectează performanța sistemului (așa numitele //memory hogs//​). ​
 +==== Afișarea de informații despre discuri ====
 +
 +La fel ca mai sus pentru afișa informații detaliate despre discurile sistemului putem folosi comanda ''​lshw'':<​code>​
 +student@uso-demo:​~$ sudo lshw -class disk -class storage -class volume -short
 +H/W path        Device ​     Class       ​Description
 +===================================================
 +/​0/​100/​1.1 ​                 storage ​    ​82371AB/​EB/​MB PIIX4 IDE
 +/​0/​100/​d ​                   storage ​    ​82801HM/​HEM (ICH8M/​ICH8M-E) SATA Controller [AHCI mode]
 +/0/2            scsi0       ​storage ​    
 +/​0/​2/​0.0.0 ​     /​dev/​sda ​   disk        8589MB VBOX HARDDISK
 +/​0/​2/​0.0.0/​1 ​   /​dev/​sda1 ​  ​volume ​     7806MiB EXT4 volume
 +/​0/​2/​0.0.0/​2 ​   /​dev/​sda2 ​  ​volume ​     383MiB Extended partition
 +/​0/​2/​0.0.0/​2/​5 ​ /​dev/​sda5 ​  ​volume ​     383MiB Linux swap / Solaris partition
 +/0/3            scsi2       ​storage ​    
 +/​0/​3/​0.0.0 ​     /​dev/​cdrom ​ disk        DVD reader
 +</​code>​
 +
 +Alte comenzi cu un output similar sunt:<​code>​
 +student@uso-demo:​~$ sudo fdisk -l
 +
 +Disk /dev/sda: 8 GiB, 8589934592 bytes, 16777216 sectors
 +Units: sectors of 1 * 512 = 512 bytes
 +Sector size (logical/​physical):​ 512 bytes / 512 bytes
 +I/O size (minimum/​optimal):​ 512 bytes / 512 bytes
 +Disklabel type: dos
 +Disk identifier: 0x1aaa7728
 +
 +Device ​    ​Boot ​   Start      End  Sectors ​ Size Id Type
 +/​dev/​sda1 ​ *        2048 15988735 15986688 ​ 7.6G 83 Linux
 +/​dev/​sda2 ​      ​15990782 16775167 ​  ​784386 ​ 383M  5 Extended
 +/​dev/​sda5 ​      ​15990784 16775167 ​  ​784384 ​ 383M 82 Linux swap / Solaris
 +
 +student@uso-demo:​~$ sudo parted -l
 +Model: ATA VBOX HARDDISK (scsi)
 +Disk /dev/sda: 8590MB
 +Sector size (logical/​physical):​ 512B/512B
 +Partition Table: msdos
 +Disk Flags: ​
 +
 +Number ​ Start   ​End ​    ​Size ​   Type      File system ​    Flags
 + ​1 ​     1049kB ​ 8186MB ​ 8185MB ​ primary ​  ​ext4 ​           boot
 + ​2 ​     8187MB ​ 8589MB ​ 402MB   ​extended
 + ​5 ​     8187MB ​ 8589MB ​ 402MB   ​logical ​  ​linux-swap(v1)
 +
 +
 +student@uso-demo:​~$ sudo lsblk
 +NAME   ​MAJ:​MIN RM  SIZE RO TYPE MOUNTPOINT
 +sda      8:0    0    8G  0 disk 
 +├─sda1 ​  ​8:​1 ​   0  7.6G  0 part /
 +├─sda2 ​  ​8:​2 ​   0    1K  0 part 
 +└─sda5 ​  ​8:​5 ​   0  383M  0 part [SWAP]
 +sr0     ​11:​0 ​   1 1024M  0 rom  ​
 +
 +student@uso-demo:​~$ sudo lsblk -f
 +NAME   ​FSTYPE LABEL UUID                                 ​MOUNTPOINT
 +sda                                                      ​
 +├─sda1 ext4         ​4c03932f-ebdc-4d7d-bf4e-aa65f3889d73 /
 +├─sda2 ​                                                  
 +└─sda5 swap         ​709a57ff-ffc5-4cf2-bfd7-2850a842e41f [SWAP]
 +sr0                                                      ​
 +
 +student@uso-demo:​~$ sudo hwinfo --block --short
 +disk:                                                           
 +  /​dev/​sda ​            VBOX HARDDISK
 +partition:
 +  /​dev/​sda1 ​           Partition
 +  /​dev/​sda2 ​           Partition
 +  /​dev/​sda5 ​           Partition
 +cdrom:
 +  /​dev/​sr0 ​            VBOX CD-ROM
 +</​code>​
 +
 +Comenzile de mai sus ne afișează partițiile sistemului, cu diverse informații precum numele lor, spațiul ocupat, tipul de sistem de fișiere cu care este formatată partiția.
 +
 +Dacă dorim să afișăm informații despre utilizarea spațiului despre partițiile sistemului putem face acest lucru doar pentru partițiile montate folosim comanda ''​df'':<​code>​
 +student@uso-demo:​~$ df -hT
 +Filesystem ​    ​Type ​     Size  Used Avail Use% Mounted on
 +/​dev/​sda1 ​     ext4      7.4G  1.6G  5.5G  23% /
 +udev           ​devtmpfs ​  ​10M ​    ​0 ​  ​10M ​  0% /dev
 +tmpfs          tmpfs     ​101M ​ 4.4M   ​96M ​  5% /run
 +tmpfs          tmpfs     ​251M ​    ​0 ​ 251M   0% /dev/shm
 +tmpfs          tmpfs     ​5.0M ​    ​0 ​ 5.0M   0% /run/lock
 +tmpfs          tmpfs     ​251M ​    ​0 ​ 251M   0% /​sys/​fs/​cgroup
 +</​code>​
 +
 +O afișare ceva mai estetică obținem cu ajutorul comenzii ''​pydf''​. Pentru aceasta instalăm în prealabil pachetul ''​pydf'':<​code>​
 +student@uso-demo:​~$ sudo apt-get install pydf
 +[...]
 +
 +student@uso-demo:​~$ pydf
 +Filesystem ​ Size  Used Avail Use%                                                    Mounted on
 +/​dev/​sda1 ​ 7555M 1589M 5560M 21.0 [##########​......................................] / 
 +</​code>​
 +
 +Comenzile ''​df''​ sau ''​pydf''​ ne afișează dimensiunea totală a unei partiții spațiul ocupat și spațiul disponibil, împreună cu un procent de utilizare a spațiului.
 +
 +<​note>​
 +Detalii despre comnezile de afișare de informații despre hard discuri găsiți și la link-ul indicat ca resursă utilă în partea de sus a paginii: http://​www.binarytides.com/​linux-command-check-disk-partitions/​
 +</​note>​
 +==== Generarea de fișiere folosind comanda dd ====
 +
 +Pentru situații de testare putem avea nevoie de fișiere de diferite dimensiuni. Pentru a genera astfel de fișiere putem folosi comanda ''​dd''​ și intrările speciale ''/​dev/​urandom''​ și ''/​dev/​zero''​.
 +
 +De exemplu, dacă dorim să generăm un fișier de ''​10MB''​ plin cu zero-uri, vom folosi comanda<​code>​
 +student@uso-demo:​~$ dd if=/​dev/​zero of=zero-1OMB bs=1M count=10
 +10+0 records in
 +10+0 records out
 +10485760 bytes (10 MB) copied, 0.0233232 s, 450 MB/s
 +
 +student@uso-demo:​~$ ls -lh zero-1OMB ​
 +-rw-r--r-- 1 student student 10M Dec  5 18:09 zero-1OMB
 +</​code>​
 +Comanda ''​dd''​ citește din intrarea specială ''/​dev/​zero''​ zero-uri și le scrie în fișierul ''​zero-1OMB''​. Face acest lucru în ''​10''​ copieri de blocuri de câte ''​1M''​ (''​bs''​ înseamnă //block size//).
 +
 +Dacă dorim să generăm un fișier de ''​5MB''​ plin cu date aleatoare, vom folosi comanda<​code>​
 +student@uso-demo:​~$ dd if=/​dev/​urandom of=random-5MB bs=1M count=5
 +5+0 records in
 +5+0 records out
 +5242880 bytes (5.2 MB) copied, 0.56655 s, 9.3 MB/s
 +
 +student@uso-demo:​~$ ls -lh random-5MB ​
 +-rw-r--r-- 1 student student 5.0M Dec  5 18:11 random-5MB
 +</​code>​
 +Comanda ''​dd''​ citește din intrarea specială ''/​dev/​urandom''​ date aleatoare și le scrie în fișierul ''​random-5MB''​. Face acest lucru în ''​5''​ copieri de blocuri de câte ''​1M''​ (''​bs''​ înseamnă //block size//).
 +
 +Putem folosi comanda ''​dd''​ și pentru dispozitive fizice. De exemplu, dacă vrem să extragem sectorul 0 de pe un hard disc (adică primii 512 octeți) folosim comanda:<​code>​
 +student@uso-demo:​~$ sudo dd if=/dev/sda of=mbr count=1
 +1+0 records in
 +1+0 records out
 +512 bytes (512 B) copied, 0.00355612 s, 144 kB/s
 +
 +student@uso-demo:​~$ ls -lh mbr 
 +-rw-r--r-- 1 root root 512 Dec  5 18:13 mbr
 +</​code>​
 +Comanda ''​dd''​ citește din intrarea specială ''/​dev/​sda''​ date și le scrie în fișierul ''​random-5MB''​. Face acest lucru într-o singură copiere de bloc de date; dimensiunea blocului este în mod implicit ''​512''​ așa că se vor copia exact ''​512''​ octeți. A fost nevoie de permisiuni de ''​root''​ (prefixarea comenzii folosind ''​sudo''​) pentru că doar cu permisiuni dedicate putem citi de pe dispozitivile ce identifică discul sistemului.
 +
 +Putem valida că am extras sectorul 0 al hard discului folosind comanda ''​xxd''​ (care face //dump// în hexadecimal). Întrucât sectorul 0 este sectorul de boot acesta se va încheia cu semnătura de sector de boot, adică ''​0x55aa'',​ lucru observabil în output-ul comenzii ''​xxd'':<​code>​
 +student@uso-demo:​~$ xxd mbr
 +[...]
 +00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa  ..............U.
 +</​code>​
 +
 +Tot folosind comanda ''​dd''​ un sistem ce posedă unitate de CD și are un CD în unitate poate crea o imagine de tip ''​.iso''​ a CD-ului. Pentru aceasta folosim comanda<​code>​
 +dd if=/​dev/​cdrom of=myimage.iso
 +</​code>​
 +Cu această comandă creăm fișierul ''​myimage.iso''​ ca fișier imagine al CD-ului aflat în unitatea de CD.
 +
 +<note warning>
 +Atenție la folosirea comenzii ''​dd''​ și care este fișierul destinație (în care se scrie). Există riscul să vă corupeți (potențial iremediabil) hard discul dacă folosiți ''/​dev/​sda''​ pe post de fișier destinație.
 +</​note>​
 +==== Crearea unei mașini virtuale în VirtualBox ====
 +
 +Pentru crarea unei mașini virtuale în VirtualBox folosim, de regulă, interfața grafică a VirtualBox. Pentru aceasta urmăm ca pași principali:
 +  * Crearea specificațiilor mașinii virtuale: memorie, hard disc, tip de sisteme de operare
 +  * Alegerea unui mediu de boot, de obicei o imagine de CD bootabil în format ''​.iso''​
 +  * Pornirea mașinii virtuale (bootarea acesteia) și pornirea procesului de instalare
 +
 +Acești pași sunt descriși în video-ul de tip screencast de mai jos, accesibil direct la adresa https://​youtu.be/​xFkkeVoOC_A.
 +
 +<​html>​
 +<​center>​
 +<iframe width="​560"​ height="​315"​ src="​https://​www.youtube.com/​embed/​xFkkeVoOC_A"​ frameborder="​0"​ allowfullscreen>​
 +</​iframe>​
 +</​center>​
 </​html>​ </​html>​
 +
 +==== Afișarea de informații despre mașinile virtuale VirtualBox ====
 +
 +<​note>​
 +Comenzile indicate mai jos pot fi rulate doar pe un sistem fizic (Linux sau Windows) în cadrul căruia a fost instalat VirtualBox.
 +</​note>​
 +
 +În afara interfeței grafice în VirtualBox putem folosi comanda ''​vboxmanage''​ pentru a afișa informații și pentru a configura mașini virtuale VirtualBox.
 +
 +De exemplu, pentru a afișa mașinile virtuale existente în VirtualBox, rulăm comanda<​code>​
 +razvan@einherjar:​~$ vboxmanage list vms
 +"​Windows-7"​ {2a9b2719-2c6c-42df-9f19-5febff6172bf}
 +"​Debian"​ {18565cc7-101d-4ac4-91b4-2ee317b7f9ae}
 +"​Debian 32 bit" {562696b3-efb8-42e4-8a66-519a98aa5ac8}
 +"​Xubuntu-14.04"​ {cd57aa75-82b0-4f07-8236-81517f2ee87d}
 +"SSS - Debian 32bit" {fa9dd108-fe13-4d12-adcd-84e29bcc3232}
 +"SSS - Windows 7 32bit" {4f27ec11-33a8-400d-a898-d252169ab52f}
 +"​Training - Linux Kernel Dev" {3645e7b4-482e-4bd2-aa73-f29e8b15288f}
 +"GSR Debian"​ {409a6ad1-3998-443b-9297-e46aa1d944e5}
 +"USO Demo" {e04f00a6-7530-45d0-95e6-56ba46d6810a}
 +"IOCLA Linux" {5ee0048a-6bd1-4dc6-bf1b-daffc1729066}
 +"USO Linux" {845446cb-0210-4f3b-8df0-91cd1c67b5e2}
 +</​code>​
 +Comanda afișează mașinile virtuale existente în sistemul gazdă împreună cu un identificator unic al acestora (numit UUID -- //​Universally Unique Identifier//​).
 +
 +Dacă vrem să afisăm doar mașinile virtuale care rulează, folosim comanda<​code>​
 +razvan@einherjar:​!$ vboxmanage list runningvms
 +"USO Demo" {e04f00a6-7530-45d0-95e6-56ba46d6810a}
 +<​code>​
 +
 +Dacă ne interesează să aflăm informații detaliate despre o mașină virtuală rulăm comanda<​code>​
 +razvan@einherjar:​~$ vboxmanage showvminfo "USO Demo"
 +Name:            USO Demo
 +Groups: ​         /
 +Guest OS:        Debian (32-bit)
 +UUID:            e04f00a6-7530-45d0-95e6-56ba46d6810a
 +Config file:     /​home/​razvan/​vm/​vbox/​USO Demo/USO Demo.vbox
 +Snapshot folder: /​home/​razvan/​vm/​vbox/​USO Demo/​Snapshots
 +Log folder: ​     /​home/​razvan/​vm/​vbox/​USO Demo/Logs
 +Hardware UUID:   ​e04f00a6-7530-45d0-95e6-56ba46d6810a
 +Memory size:     512MB
 +[...]
 +</​code>​
 +Comanda afișează o multitudine de informații despre mașina virtuală, practic tot ceea ce o definește.
 +
 +<​note>​
 +Comanda ''​vboxmanage''​ are o mulțime de subcomenzi care pot fi folosite pentru inspectarea și configurarea mașinilor virtuale. Puteți folosi comanda<​code>​
 +vboxmanage --help
 +</​code>​
 +pentru a le parcurge pe toate, sau puteți consulta pagina de manual a comenzii<​code>​
 +man vboxmanage
 +</​code>​ sau puteți accesa [[https://​www.virtualbox.org/​manual/​ch08.html|documentația VirtualBox]].
 +</​note>​
 +
 +==== Sumar comenzi Linux legate de hardware ====
 +
 +Mai jos este un sumar al comenzilor Linux folosite pentru inspectarea componentelor harware ale sistemului. Sunt indicate comenzile pe tipuri de componente.
 +
 +^  Componentă hardware ​ ^  Comenzi pentru specificații ​ ^  Comenzi pentru monitorizare ​  ^
 +^  Toate                   | ''​sudo lshw'' ​                     |  |
 +| :::                      | ''​sudo lshw -short'' ​                     | :::  |
 +| :::                      | ''​sudo dmidecode'' ​                | :::  |
 +| :::                      | ''​sudo hwinfo'' ​                | :::  |
 +| :::                      | ''​%%sudo hwinfo --short%%'' ​                | :::  |
 +| :::                      | ''​inxi'' ​                | :::  |
 +| :::                      | ''​inxi -F'' ​                | :::  |
 +^  Magistrale/​Controllere ​ | ''​sudo lscpi'' ​ | |
 +| :::                      | ''​sudo lsusb'' ​ | ::: |
 +^  Procesor ​               | ''​lspcu'' ​  | ''​top'' ​ |
 +| :::                      | ''​sudo lshw -class cpu''​ | ''​htop'' ​ |
 +| :::                      | ''​sudo dmidecode -t processor''​ | ''​mpstat'' ​ |
 +| :::                      | ''​%%sudo hwinfo --cpu%%''​ | |
 +| :::                      | ''​%%sudo hwinfo --cpu --short%%''​ |  ::: |
 +| :::                      | ''​%%inxi -Cxx%%''​ |  ::: |
 +| :::                      | ''​%%cat /​proc/​cpuinfo%%''​ |  ::: |
 +| :::                      | ''​%%nproc%%''​ |  ::: |
 +| :::                      | ''​%%arch%%''​ |  ::: |
 +^  Memorie ​                | ''​sudo lshw -class memory'' ​  | ''​free -m'' ​ |
 +| :::                      | ''​sudo dmidecode -t memory'' ​ | ''​cat /​proc/​meminfo''​ |
 +| :::                      | ''​sudo dmidecode -t cache'' ​ | ''​top''​ |
 +| :::                      | ''​%%sudo hwinfo --memory%%'' ​ | ''​htop''​ |
 +| :::                      | ''​sudo inxi -m'' ​ | |
 +^  Disc                    | ''​sudo lshw -class disk -class storage -class volume -short'' ​ | ''​df -hT'' ​ |
 +| :::                      | ''​sudo fdisk -l'' ​ | ''​pydf'' ​ |
 +| :::                      | ''​sudo parted -l'' ​ |  |
 +| :::                      | ''​sudo lsblk'' ​ | :::  |
 +| :::                      | ''​sudo lsblk -f'' ​ | :::  |
 +| :::                      | ''​%%sudo hwinfo --block --short%%'' ​ | :::  |
 +| :::                      | ''​inxi -DdoP'' ​ | :::  |
 +
 +*/
uso/cursuri/curs-10.1418333663.txt.gz · Last modified: 2014/12/11 23:34 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0