/
Installazione.tex
262 lines (239 loc) · 9.02 KB
/
Installazione.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
\begin{frame}{Pre-installazione}
Prima di procedere con l'installazione dobbiamo ``architettare''
il nostro sistema.
\begin{itemize}
\item \textbf{Disco}
\item \textbf{Display Server}
\item \textbf{Desktop Environment}
\item ...
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{Disco(1) - Partizionamento}
Per questa installazione faremo un partizionamento abbastanza semplice:
\vspace{20pt}
\begin{center}
\begin{tabular}{ | m{7em} | m{8em} | m{5em}| m{5em} | }
\hline
\textbf{Tipo partizione} & \textbf{Punto di mount} & \textbf{Filesystem} & \textbf{Dimensione} \\
\hline
Boot/EFI & /boot & FAT32 & 500MB \\
\hline
Root & / & ext4 & 31.5GB \\
\hline
Swap & - & - & 8GB \\
\hline
\end{tabular}
\end{center}
\vspace{20pt}
Per la dimensioni delle partizioni si presuppone di avere un disco di 40GB.
\end{frame}
\begin{frame}{Disco(2) - Cifratura}
\begin{figure}[h]
\includegraphics[width=0.3\textwidth]{images/encryption.png}
\end{figure}
I sistemi GNU/Linux supportano 2 tipi di cifratura del disco:
\begin{itemize}
\item Cifratura stacked system (eCryptfs, EncFS)
\item Cifratura dei dispositivi a blocchi: dm-crypt+LUKS
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{Cifratura stacked system: eCryptfs}
\begin{figure}[h]
\includegraphics[width=0.4\textwidth]{images/ecryptfs.jpg}
\end{figure}
\begin{itemize}
\item Cifratura on-the-fly
\item Utilizzo di uno ``strato cuscinetto'' per cifrare/decifrare i dati
\item Possibilità di cifratura per dischi già in uso
\item Non cifra i metadati
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{Cifratura a blocchi: dm-crypt+LUKS}
\begin{figure}[h]
\includegraphics[width=0.4\textwidth]{images/dm-crypt.png}
\end{figure}
\begin{itemize}
\item Opera al di sotto del filesystem
\item Cifratura solo per nuove partizioni
\item Più veloce (anche se parliamo di casi d'uso differenti)
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{Display Server}
Il \textbf{display server} è la componente software responsabile di input e output nei sistemi GNU/Linux.
I display server sono poi utilizzati dai desktop environment per svolgere il loro lavoro.
I display server più conosciuti sono:
\begin{itemize}
\item Xorg (storico)
\item Wayland (recente)
\end{itemize}
\end{frame}
%------------------------------------------------
%------------------------------------------------
\begin{frame}{X Window System}
\begin{figure}[h]
\includegraphics[width=0.3\textwidth]{images/xorg.png}
\end{figure}
\begin{itemize}
\item Architettura complessa
\item Si comunica attraverso Xlib o XCB
\item Problemi di sicurezza (client non isolati)
\item Artefatti visivi
\item Client remoti
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{Wayland}
\begin{figure}[h]
\includegraphics[width=0.2\textwidth]{images/wayland.png}
\end{figure}
\begin{itemize}
\item Architettura semplice
\item Comunicazione con Unix domain socket
\item Client isolati
\item Ogni frame è perfetta
\item Xwayland
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{Desktop Environment}
Il \textbf{desktop environment} è quella componente software che permette di utilizzare il sistema in modo user-friendly
tramite l'interazione con oggetti fisici(finestre, barre, menù ecc.). Arch Linux mette a disposizione, nei repository ufficiali,
una vasta lista di DE:
\begin{itemize}
\item GNOME
\item KDE Plasma
\item Xfce
\item MATE
\item Cinnamon
\item Deepin
\item LXDE
\item LXQt
\item ...
\end{itemize}
Per questa installazione userò \textbf{GNOME}.
\end{frame}
%------------------------------------------------
\begin{frame}{Installazione avanzata}
\begin{itemize}
\item Utilizzo di \textbf{BTRFS} come filesystem
\item \textbf{Snapshot di sistema} e sincronizzazione efficiente con un server esterno
\item Cifratura della partizione di boot sfruttando dei workaround
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{BTRFS}
\begin{figure}[h]
\includegraphics[width=0.4\textwidth]{images/btrfs.png}
\end{figure}
\textbf{BTRFS} (B-tree FS o Butter FS) è un filesystem sviluppato da Oracle con licenza GPL.\\
\vspace{10pt}
Caratteristiche principali:
\begin{itemize}
\item \textbf{Copy-on-write}
\item Compressione trasparente(ZLib, LZO, ZSTD)
\item Checksum su dati e metadati
\item File di swap
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{BTRFS: snapshot}
Grazie alla copy-on-write fare snapshot diventa semplice ed efficiente, in particolare avremo:
\begin{itemize}
\item Dimensioni ridotte grazie ai backup incrementali
\item Tempi di creazione praticamente nulli
\item Avvio degli snapshot direttamente da GRUB
\item Sincronizzazione degli snapshot con un server remoto
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{Serve aiuto?}
\begin{itemize}
\item Installation Guide
\item Arch Official Wiki(\url{https://wiki.archlinux.org/})
\item Arch Official Forum(\url{https://bbs.archlinux.org/})
\item Contattami!
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{L'installazione prima di \textit{archinstall}}
\begin{itemize}
\item Partizionamento manuale attraverso fdisk/cfdisk, creazione del filesystem con mkfs
\item Creazione del sistema base con \textit{pacstrap}
\item Installazione del resto dei pacchetti con \textit{pacman}
\item Configurazioni manuali mediante la modifica di file
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{\textit{archinstall}}
\begin{figure}[h]
\includegraphics[width=0.25\textwidth]{images/archinstall.png}
\end{figure}
Nel 2021 Arch Linux decide di rilasciare un tool di installazione guidata scritto in python dal nome \textbf{archinstall}. \\
Questo strumento può essere usato in due modalità:
\begin{itemize}
\item installazione guidata
\item libreria python (per scrivere i propri script d'installazione)
\end{itemize}
\end{frame}
%------------------------------------------------
\begin{frame}{\textit{archinstall} come libreria}
\begin{itemize}
\item È possibile utilizzare la libreria per scrivere il proprio script d'installazione
\item Lo script è indipendente dalle operazioni che vengono effettuate ``al di sotto''
\item È possibile scrivere lo script una volta ed utilizzarlo in tutte le proprie macchine
\end{itemize}
Trovate un esempio su:
\url{https://github.com/archlinux/archinstall/blob/master/examples/minimal.py}
\end{frame}
%------------------------------------------------
\begin{frame}{Creazione chiavetta USB}
Prima di tutto sarà necessario creare una chiavetta USB avviabile.\\Trovate l'iso su \url{https://archlinux.org/download/}\\
Per la creazione della chiavetta è possibile utilizzare:
\begin{itemize}
\item balenaEtcher(Mac, Windows, Linux)
\item dd(Linux)
\item Rufus(Windows)
\item ...
\end{itemize}
\begin{block}{dd}
\$ dd if=/percorso/a/archlinux.iso of=/dev/sd[x] bs=4M\\
\end{block}
\begin{alertblock}{Tip}
Effettuate la primissima installazione su macchina virtuale per evitare il rischio di rompere tutto.
\end{alertblock}
\end{frame}
%------------------------------------------------
\begin{frame}{Avvio da chiavetta USB}
Entrate nel vostro BIOS e impostate la vostra chiavetta USB come dispositivo primario d'avvio.\\
Riavviando vi ritroverete di fronte ad una schermata del genere:
\begin{figure}[h]
\includegraphics[width=0.7\textwidth]{images/arch1.png}
\end{figure}
\end{frame}
%------------------------------------------------
\begin{frame}{Impostare il layout della tastiera italiana}
Noterete che il layout della tastiera di default è quello US.\\
Per impostare il layout della tastiera in italiano digitiamo:
\begin{block}{}
\$ loadkeys it
\end{block}
\end{frame}
%------------------------------------------------
\begin{frame}{Problemi di connessione?}
Puoi verificare il funzionamento della connessione attraverso
lo strumento \textit{ping}:
\begin{block}{}
\$ ping archlinux.org
\end{block}
Strumenti utili per il collegamento:
\begin{itemize}
\item ip
\item iwctl (wifi)
\end{itemize}
Pagina Wiki: \\
\url{https://wiki.archlinux.org/title/Installation_guide\#Connect_to_the_internet}
\end{frame}