lunedì 18 novembre 2013

Installare Chakra su SSD

Complice anche il naturale abbassamento dei costi, le unità SSD divengono sempre più diffuse, tuttavia a fronte di un sostanziale incremento prestazionale, ci sono alcune accortezze da considerare prima e dopo l'installazione.



INTRODUZIONE

Le unità a stato solido SSD sono basate su memoria flash solitamente di tipo NAND per la memorizzazione dei dati, non richiedono parti meccaniche o magnetiche (dischi, motori e testine) apportano di conseguenza vantaggi in termini di sicurezza e prestazioni.


I principali vantaggi delle unità a stato solido rispetto ai tradizionali dischi meccanici sono:
  • Rumorosità assente grazie alla totale assenza di parti in movimento
  • Minore probabilità di rottura, dunque affidabilità maggiore
  • Minore consumo di energia
  • Minore produzione di calore
  • Tempo di accesso ai dati drasticamente ridotto
  • Velocità di lettura costante in tutti i settori dell'unità
  • Leggerezza, importante soprattutto nei notebook

Le unità SSD non sono prive di svantaggi alcuni dei quali sono:
  • Minore durata dell'unità stessa a causa del limite di riscritture delle memorie flash
  • Maggior costo per Gigabyte
  • Prestazioni che degradano con l'aumentare dello spazio occupato
  • Partizioni del filesystem che necessitano di opportune ottimizzazioni
  • Capacità di memorizzazione inferiore rispetto agli HDD classici sul mercato

La presente guida si basa su test effettuati installando Chakra Linux Fritz su un'unità SSD Samsung 840 da 250 GB.




Le procedure per l'installazione su altri tipi di unità dovrebbero essere sostanzialmente le medesime.

PREPARAZIONE DISCO

Prima di esporre la procedura un breve accenno ad alcuni aspetti basilari che possono essere utili per la comprensione dei metodi descritti.

Tabella di partizionamento

GPT (GUID Partition Table) è un nuovo standard per la tabella delle partizioni, si tratta sostanzialmente dell'evoluzione del sistema MBR (Master Boot Record) ormai deprecato.

GPT risulta essere più flessibile nelle operazioni di ripartizionamento, consente ad esempio la creazione di un numero di partizioni virtualmente illimitato.

GPT conserva inoltre informazioni relativamente l'organizzazione del disco dall'inizio alla fine del dispositivo, tale peculiarità consente di ripristinare il caricamento del sistema operativo nel caso di corruzione dei dati archiviati nel blocco di intestazione iniziale.

Questi sono alcuni dei motivi per i quali è caldamente consigliato il partizionamento GPT in particolare per installazione su SSD.

E' da tenere conto che se si intende avere dual boot con Windows (XP, Vista, 7) non sarà possibile utilizzare il partizionamento GPT poiché tali sistemi non lo supportano, optare in tal caso per il tradizionale MBR.

Nella presente guida vedremo esclusivamente il partizionamento secondo tabella GPT.

Allineamento partizioni

I tradizionali dischi meccanici sono suddivisi in settori fisici, il sistema operativo segue esattamente tale logica di funzionamento. Un disco SSD ha una struttura fisica diversa tuttavia permane la logica del funzionamento a settori.


L'allineamento è una procedura necessaria per essere certi che un settore logico cominci esattamente all'inizio di una settore fisico dell'SSD, diversamente la velocità di scrittura può ridursi anche del 50%.

Per essere ragionevolmente certi di un corretto allineamento, è opportuno partizionare alla dimensione dell'EBS (Erase Block Size) dell'SSD.

Per allineare le partizioni si utilizzerà il pacchetto Gdisk, esso è in grado di effettuare automaticamente l'allineamento su un blocco base di 2048 settori (1024 KiB), soluzione compatibile con praticamente ogni SSD sul mercato.

PARTIZIONAMENTO ED ALLINEAMENTO CON GDISK

Gparted e KDE Partition Manager supportano le partizioni GPT, tuttavia per evitare possibili anomalie grafiche è consigliabile utilizzare Gdisk. Gparted e KDE Partition Manager restano validi strumenti che possono restituire una visuale grafica chiara di quanto fatto precedentemente tramite Gdisk.

Nella seguente guida immaginiamo di partizionare un SSD vergine da 250 GB, saranno create 3 partizioni:

Partizione 01 [Avvio Bios]
Tipo: Bios boot
Dimensione: 200 MB
Scopo: avvio di sistemi basati su BIOS

Partizione 02 [Sistema]
Tipo: ext4
Dimensione: 100 GB
Scopo: file di sistema (punto di mount /)

Partizione 03 [Home]
Tipo: ext4
Dimensione: circa 150 GB
Scopo: archivio file di configurazione e documenti (punto di mount /home)

Eseguire gdisk sul proprio SSD (supponiamo sda):

sudo gdisk /dev/sda

Si otterrà un responso del tipo

GPT fdisk (gdisk) version 0.6.13

Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present

Creating new GPT entries.

La creazione di una nuova partizione tramite Gdisk si avvia con il comando n, successivamente premere <Enter> per dare alla partizione il numero progressivo libero e nuovamente <Enter> per accettare il settore iniziale di default (un settore sono 512B) per la prossima partizione prima di impostare la dimensione di cui si ha bisogno per l'ultimo settore.

Creazione di una nuova tabella di partizioni (in rosso i comandi da imputare a mano):

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y

Sarà ora creata la Partizione 01 [Avvio Bios], scrivere n per aggiungere una nuova partizione e +200M per dare una dimensione al bootloader.

Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-524288000, default = 34) or {+-}size{KMGTP}:
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-524288000, default = 524288000) or {+-}size{KMGTP}: +200M
Current type is 'Linux filesystem'

Scrivendo L verrà restituita una lista di codici, scrivere ef02 per ottenere una partizione di avvio BIOS:

Hex code or GUID (L to show codes, Enter = 8300): ef02
Changed system type of partition to 'BIOS boot'

La partizione di avvio BIOS non deve essere formattata.

Si proceda a creare la Partizione 02 [Sistema], dare nuovamente n per avviare il processo:

Command (? for help): n
Partition number (2-128, default 2): 2
First sector (34-409600, default = 409600) or {+-}size{KMGTP}:
Last sector (409600-524288000, default = 524288000) or {+-}size{KMGTP}: +100G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8300
Current type is 'Linux filesystem'

Successivamente sarà creata la Partizione 03 [Home], dare sempre n per avviare il processo:

Command (? for help): n
Partition number (3-128, default 3): 3
First sector (34-210124800, default = 210124800) or {+-}size{KMGTP}:
Last sector (210124800-524288000, default = 524288000) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8300
Current type is 'Linux filesystem'

Non dando alcuna indicazione in relazione allo spazio da allocare, sarà utilizzato tutto quello disponibile portando la partizione sino all'ultimo settore del disco.

Per esaminare le partizioni create dare il comando p:

Command (? for help): p
Disk /dev/sda: 524288000 sectors, 250 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F409CFD3-6DDC-4551-BBC5-85DC218C1352
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 524288000
Partitions will be aligned on 2048-sector boundaries
Total free space is 73661 sectors (36.0 MiB)

Number Start (sector) End (sector) Size Code Name
1 2048 409600 200.0 MiB EF00 Boot
2 409600 210124800 100 GiB 8300 Linux File System
3 210124800 524288000 149 GiB 8300 Linux File System

Per aggiungere una descrizione ad ognuna delle partizioni utilizzare il comando c per descrivere lo scopo di ogni partizione ad esempio:

Command (? for help): c
Partition number (1-3): 3
Enter name: Nome descrittivo a scelta

Il comando w scrive i cambiamenti su disco mentre il comando q esce dal programma senza salvare i cambiamenti:

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.

Gdisk crea le partizioni ma non il filesystem, si dovrà quindi formattare ogni partizione creata tramite la console testo, la partizione sda1 (in questo esempio) di avvio bios non deve essere formattata.

Per la Partizione 02 [Sistema]

mkfs -t ext4 /dev/sda2

Per la Partizione 03 [Home]

mkfs -t ext4 /dev/sda3

Dopo la formattazione è necessario riavviare il sistema perchè il nuovo schema di partizionamento possa essere letto dal kernel.

Con l'ausilio di Gparted o KDE Partition Manager sarà possibile avere un responso grafico dello stato del disco. L'installazione potrà a questo punto essere effettuata come su disco meccanico, saranno però necessari alcuni accorgimenti post-installazione per limitare le scritture su disco ed allungarne quindi la vita utile.

IMPOSTAZIONI POST-INSTALLAZIONE

Dopo la tradizionale installazione, alcuni accorgimenti aiuteranno a mantenere nel tempo le prestazioni dell'unità SSD.



Opzioni di mount

E' bene modificare le opzioni di mount per limitare le scritture su disco e mantenere invariate nel tempo le prestazioni del dispositivo, a tale scopo modificare fstab aggiungendo le opzioni noatime e discard.

noatime: abilitandola le informazioni inerenti l'ora dell'ultimo accesso ai file non saranno aggiornate ad ogni accesso in lettura al filesystem, limitando l'aggiornamento della data di accesso solo ai file effettivamente modificati.

Tale opzione oltre a ridurre drasticamente i cicli di scrittura, migliora le prestazioni in termini di velocità, va applicato ad ogni partizione presente su SSD eccetto un eventuale partizione di swap.

discard: abilitandola si otterranno i benefici derivanti dal comando TRIM purchè il proprio SSD sia compatibile con tale funzione.

In breve il comando TRIM permette al sistema operativo di indicare i blocchi che non sono più in uso nell'unità SSD, come ad esempio i blocchi liberati dopo l'eliminazione di uno o più file.

Generalmente, nell'operazione di cancellazione, i blocchi data vengono contrassegnati come non in uso. L'istruzione TRIM consente al Sistema Operativo di fornire l' informazione al controller dell'SSD, il quale diversamente non sarebbe in grado di sapere quali blocchi eliminare. Lo scopo dell'istruzione è di mantenere la velocità dell'SSD per tutto il suo ciclo di vita.

Il comando TRIM non funziona con ext3, l'utilizzo dell'opzione discard con una partizione di root con filesystem ext3 ne determinerà l'accesso in sola lettura.

Per modificare le opzioni di mount aggiungendo noatime e discard, editare fstab dando da terminale

sudo nano /etc/fstab

Modificare le stringhe corrispondenti al caricamento delle partizioni dell'SSD come segue

/dev/sda1 / ext4 defaults,noatime,discard 0 1
/dev/sda2 /home ext4 defaults,noatime,discard 0 1

Posizionare /tmp in RAM

La cartella /tmp è utilizzata dal sistema per archiviare file temporanei ad esempio durante le operazioni di compilazione, tale cartella è svuotata automaticamente al riavvio.

Per sistemi con almeno 2 GB di memoria, è possibile posizionare /tmp direttamente in RAM, tale procedura renderà il sistema più scattante ed eviterà scritture superflue su SSD.

L'operazione è molto semplice, prima di tutto cancellare il contenuto della partizione fisica per /tmp , successivamente montarla su tmpfs (RAM) in /etc/fstab.

Editare fstab dando da terminale

sudo nano /etc/fstab

Aggiungere quindi la stringa

none /tmp tmpfs nodev,nosuid,noatime,size=1000M,mode=1777 0 0


Ulteriori approfondimenti su quanto trattato nella presente guida e su altre strategie attuabili per migliorare le prestazioni dell'unità SSD sono disponibili nel wiki di Arch Linux.

Per la guida in formato .odt e .pdf date uno sguardo alla sezione Download!

§ exit


2 commenti:

  1. Bella questa guida! Ho solo dato una lettura veloce alla prima parte ma appena ho un attimo di tempo me la leggo bene. Per natale pensavo proprio di regalarmi un Samsung 840 EVO da 250 GB =). Avevo già letto la pagina relativa agli SSD sulla wiki di Arch che come sempre è ricca di informazioni, però avere qualche riscontro di prove sul campo fa sempre bene.

    RispondiElimina
  2. Siccome ho inenzione di passare da Kubuntu a Chakra utilizzando un HDD SSD partizionato GPT ho dato un'occhiata a questa guida e ne sono rimasto davvero soddisfatto! Ottimo lavoro! Una notizia: se si fa il dual boot con windows 10 è possibile utilizzare tranquillamente il partizionamento GPT. Nel mio caso ho kubuntu su SDA0 e windows su SDA1. Quando avvio posso scegliere se avviare linux o windows10 senza problemi.

    RispondiElimina