Linux Tutorial – Puntata 5

di jolek78

Care/i fruitrici e fruitori del blog, in questi post  – ogni domenica mattina – si parlerà del sistema operativo GNU/Linux e degli strumenti per utilizzarlo al massimo delle potenzialità. Cercheremo di spiegare come funziona, cosa è il kernel, come costruirsi una vpn, come settare un firewall e giocare col terminale, usare adb e altro. Se il capitalismo della sorveglianza ci vuole passivi consumatori-consumatrici di servizi noi si risponde con un po’ di “cultura informatica” e un MARAMEO (quasi affettuoso). Buona lettura!

Il filesystem
Bentornati. Dopo aver installato la macchina virtuale e settato alcuni pattern principali, cominciamo quindi a entrare nel sistema operativo. Partiamo dal disco, o meglio dal filesystem che abbiamo scelto d’installare. Vedremo e approfondiremo concetti come le partizioni, i differenti tipi di filesystem, i settori del disco, l’ext4, il logical volume manager e cosa sia la swap memory. Questo è soltanto il preludio alla prossima puntata in cui analizzeremo lo spazio disco, la differenza fra du e df, e cosa sia uno sparse file.

Ma… Tempo al tempo.

Le partizioni
Ogni sistema operativo, e anche Linux quindi, una volta installato divide lo spazio disco in partizioni. Le partizioni altro non sono che sezioni ben definite del disco utilizzate per fare alcune cose e non altre, e per organizzare lo spazio in modo che il sistema sappia cosa fare con lo spazio che ha in casa. Immaginate quindi di avere un enorme armadio con tanti cassetti: le partizioni altro non sono che il tentativo, da parte del padrone di casa, di mettere le camicie da una parte, le posate da un’altra e gli asciugamani da un’altra parte ancora. Non vorrete mica asciugarvi la faccia con le forchette, vero?

Nella fase d’installazione, se ricordate, abbiamo settato il partizionamento automatico, escludendo lo ZFS. Quali partizioni abbiamo dunque sul nostro sistema?

Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1050623 1048576 512M b W95 FAT32
/dev/sda2 1052670 31455231 30402562 14.5G 5 Extended
/dev/sda5 1052672 2549759 1497088 731M 83 Linux
/dev/sda6 2551808 31455231 28903424 13.8G 83 Linux

Le due che per noi son davvero fondamentali son la boot partition (/dev/sda1) e la extended partition (/dev/sda2). Notate che la sda2 e la sda6 finiscono sullo stesso settore 31455231, e che sia sda5 che sda6 si sovrappongono completamente a sda2. In poche parole, semplicemente visualizzando questo output, avete a schermo il significato di extended, cioè una partizione che può essere suddivisa in molteplici partizioni.

Ci sono due comandi che ci possono dare informazioni dettagliate su questo. Vediamo il primo. Si chiama fdisk, ed è il tool comunemente utilizzato per aggiungere, rimuovere, modificare le partizioni presenti sul nostro sistema. Con l’opzione -l possiamo, semplicemente, visualizzare lo spazio:

bottega@bottegadelbarbieri  ~  sudo fdisk -l
Disk /dev/sda: 15 GiB, 16106127360 bytes, 31457280 sectors
Disk model: VBOX HARDDISK

I settori disco son quindi 16106127360, lo spazio assegnato è 15GB, e la tipologia è VBOX (virtualbox). Tutto torna. Vediamolo nel suo output completo:

Io, personalmente l’ho sempre trovato molto confusionario. Non perché non spieghi esattamente quali e dove sono i settori, ma perché non è elegante. Vediamolo invece cosi’:

 bottega@bottegadelbarbieri  ~  lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sda 
├─sda1 vfat 880E-018C 511M 0%                                           /boot/efi
├─sda2 
├─sda5 ext4 e         fc51c8f-4202-458a-9210-239d075aee17                444.8M 30%   /boot
└─sda6 crypto_LUKS    6c45a3ec-325e-41cc-98fb-8ac9b5299a5a 
   └─sda6_crypt       LVM2_member monDww-pMsR-jn3G-troM-QWzo-PAQL-u68n0k 
     ├─vgxubuntu-root   ext4 52895bce-6681-4ab1-85f4-8c1883aff472   5.9G   48%   /
     └─vgxubuntu-swap_1 swap 0ceb88d0-19b4-4888-8eab-c173a9e1a335                       [SWAP]
sr0

Abbiamo quindi diverse tipologie di filesystem:

—————————————————————————————————–
FAT32 – scelto dal sistema per la partizione di boot perché universalmente riconoscibile da tutte le schede madri. È dove risiede… beh, questo lo vedremo nella puntata in cui parleremo del kernel (oh, spoiler!).

LUKS – non è esattamente un filesystem, ma è un settore del disco criptato, quello che abbiamo selezionato per l’immissione della password nella fase d’installazione. Se non viene decriptato al boot, non parte il sistema.

EXT4 – ecco, questo e’ il filesystem principale dove risiede essenzialmente il sistema. È un tipo di filesystem molto evoluto, difficile descriverne tutte le caratteristiche ma possiamo elencarne alcune piuttosto importanti
– supporta storage con più di un milione di terabite (si, avete letto bene)
– supporta egregiamente un sistema rapido di analisi degli errori sul filesystem chiamato journaling
– permette di settare quote di spazio su alcuni progetti del sistema in modo che non sforino dai limiti massimi
– permette di avere al suo interno un numero illimitato di directory e sub-directory

SWAP – più che un filesystem e’ un tipo di memoria che viene utilizzata dal sistema nei casi estremi, quando la ram è occupata al massimo e il sistema rischia di andare in crash.
—————————————————————————————————–

Potrà sembrare una questione di lana caprina, ma non lo è. Ognuno di questi filesystem ha uno specifico significato nel sistema, e ognuno di essi è adibito a fare cose diverse in contesti diversi.

Potete vedere inoltre che appare anche qualcos’altro nell’output, ed è il LVM, meglio noto come logical volume manager. È, per cercare di non annoiarvi troppo, un “mappatore di blocchi”, una sorta di targa o d’involucro che può funzionare allo stesso modo su differenti sistemi operativi per identificare settori diversi del disco. Nel nostro caso, mappa tutto sda6, e quindi include in maniera intelligente la crypto, la root partition e la swap partition.

Se andiamo in /dev/mapper e listiamo il contenuto abbiamo:

 bottega@bottegadelbarbieri  /dev/mapper  ll
total 0
crw------- 1 root root 10, 236 Feb 28 11:15 control
lrwxrwxrwx 1 root root 7 Feb 28 11:15 sda6_crypt -> ../dm-0
lrwxrwxrwx 1 root root 7 Feb 28 11:15 vgxubuntu-root -> ../dm-1
lrwxrwxrwx 1 root root 7 Feb 28 11:15 vgxubuntu-swap_1 -> ../dm-2

E con lvmdiskscan:

 bottega@bottegadelbarbieri  /dev/mapper  sudo lvmdiskscan
/dev/mapper/sda6_crypt [ <13.77 GiB] LVM physical volume
/dev/sda1 [ 512.00 MiB] 
/dev/sda5 [ 731.00 MiB] 
/dev/sda6 [ 13.78 GiB] 
0 disks
3 partitions
1 LVM physical volume whole disk
0 LVM physical volumes

Per oggi penso di avervi annoiato abbastanza vero?

Alla prossima settimana!
jolek78

>> Indice <<
Puntata 4 < > Puntata 6

Il logo “tux-linux-by-deiby-ybied” e’ stato realizzato da laboratoriolinux in licenza Creative Commons BY-NC-SA 2.0

Fabio
Un tizio che pensava di essere uno scienziato. Si ritrovò divulgatore scientifico. Poi si addormentò e si svegliò informatico. Ma era sempre lui.

2 commenti

  • capita apposta, faccio un uso privato dello spazio, nel caso cancellate. perchè laurearsi in informatica oggi? sembra che ormai sia stato tutto scritto, sistemi operativi, applicazioni, di conseguenza ogni azienda o società potrebbe comprare un prodotto preconfezionato, sicuramente scritto da persone del campo, ma nella ristretta cerchia dei colossi mondiali, mi sbaglio? scusate ancora

  • ciao auleia,
    laurearsi in informatica (o in qualsiasi disciplina) serve per acquisire quelle competenze che un apprendimento da autodidatta non ti potrebbe dare. ma riguardo la conseguenza… non ho capito il senso. forse intendi dire che non c’e’ bisogno di studiare quando hai soldi per comprare il lavoro di un altro? me la spieghi meglio?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *