commit 58b8605abb68963146b86d90e0527ae408320650 Author: Emiliano Vavassori Date: Sun Jun 24 16:05:18 2018 +0200 Prima versione rivista e corretta. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bbf52ab --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +slides.pdf diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d78cf01 --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +obj = slides.pdf + +default: $(obj) + +run: $(obj) + optirun impressive $(obj) + +clean: + rm -f *.log *.aux *.nav *.toc *.snm *.out + +distclean: clean + rm -f $(obj) + +%.pdf: %.aux + xelatex --shell-escape --interaction=nonstopmode $(*F) + + +%.aux: %.tex + xelatex --shell-escape --interaction=nonstopmode $(*F) + +.PHONY: clean distclean default run diff --git a/README.md b/README.md new file mode 100644 index 0000000..a1c3cb0 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Slides dell'evento «Partizionamento for dummies» # +## 27 giugno 2018 c/o FabLab Bergamo, via Gavazzeni 3, Bergamo ## + +Qui sono riportati i sorgenti delle slides utilizzate come supporto alla +spiegazione dell'evento «Partizionamento *for dummies*», tenutosi presso +[FabLab Bergamo](https://www.fablabbergamo.it/), in via M. Gavazzeni n.3 a +Bergamo, durante la riunione settimanale del [Bergamo Linux Users Group, +BgLUG](https://bglug.it/). + +Riferirsi ai [rilasci](releases) per le slide in formato PDF. diff --git a/immagini/applepartition.png b/immagini/applepartition.png new file mode 100644 index 0000000..2794196 Binary files /dev/null and b/immagini/applepartition.png differ diff --git a/immagini/hdd.jpg b/immagini/hdd.jpg new file mode 100644 index 0000000..0f51105 Binary files /dev/null and b/immagini/hdd.jpg differ diff --git a/immagini/hddchiuso.jpg b/immagini/hddchiuso.jpg new file mode 100644 index 0000000..ed4eae7 Binary files /dev/null and b/immagini/hddchiuso.jpg differ diff --git a/immagini/linux_fhs.pdf b/immagini/linux_fhs.pdf new file mode 100644 index 0000000..41cd2d3 Binary files /dev/null and b/immagini/linux_fhs.pdf differ diff --git a/immagini/linux_fhs.svg b/immagini/linux_fhs.svg new file mode 100644 index 0000000..ba798b0 --- /dev/null +++ b/immagini/linux_fhs.svg @@ -0,0 +1,1534 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + / "root" + + + + + "essential user command binaries" + bashcatchmodcpdateechogrepgunzipgziphostnamekilllesslnlsmkdirmoremountmvnanoopenpingpspwdrmshsutartouchumountuname + /bin + + + + + /dev + "device filesincl. /dev/null" + + + + + /home + "user homedirectories" + + + + + + /proc + "process & kernelinformation files" + + + + + + /lib + "libraries &kernel modules" + + + + + /mnt + "mount files fortemporary filesystems" + + + + + /usr + "read-only user applicationsupport data & binaries" + + + "standard includefiles for 'C' code" + "obj, bin, libfiles for coding& packages" + + /usr/bin + "most usercommands" + + /usr/include + + /usr/lib + + /usr/local + "local software" + + /usr/local/bin/usr/local/lib/usr/local/man/usr/local/sbin/usr/local/share + /usr/share + "static data sharableaccross all architectures" + + /usr/share/man + "manual pages" + + + + + + + /etc + "configuration files for the system" + crontabcupsfontsfstabhost.confhostnamehostshosts.allowhosts.denyinitinit.dissuemachine-idmtabmtools.confnanorcnetworkspasswdprofileprotocolsresolv.confrpcsecurettyservicesshellstimezone + + + + + + /var + "variable data files" + + + /var/cache + "application cache data" + + + + "data modified asprogrammes run" + /var/lib + + + + "lock files to track resources in use" + /var/lock + + + + /var/log + "log files" + + + /var/spool + "tasks waiting tobe processed" + + /var/spool/cron/var/spool/cups/var/spool/mail + + /var/opt + "variable data for installed packages" + + + /var/tmp + "temporary files saved between reboots" + + + + /sbin + "essential systembinaries" + fdiskfsckgettyhaltifconfiginitmkfsmkswaprebootroute + + + + + /opt + "optional softwareapplications" + + + + /root + "home dir. forthe root user" + + + + diff --git a/immagini/logo.pdf b/immagini/logo.pdf new file mode 100644 index 0000000..58165dc Binary files /dev/null and b/immagini/logo.pdf differ diff --git a/immagini/lvm_components.pdf b/immagini/lvm_components.pdf new file mode 100644 index 0000000..c6a8468 Binary files /dev/null and b/immagini/lvm_components.pdf differ diff --git a/immagini/lvm_components.png b/immagini/lvm_components.png new file mode 100644 index 0000000..bc3bfea Binary files /dev/null and b/immagini/lvm_components.png differ diff --git a/immagini/lvm_components.svg b/immagini/lvm_components.svg new file mode 100644 index 0000000..a496818 --- /dev/null +++ b/immagini/lvm_components.svg @@ -0,0 +1,1412 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/immagini/lvmschema.jpg b/immagini/lvmschema.jpg new file mode 100644 index 0000000..de76936 Binary files /dev/null and b/immagini/lvmschema.jpg differ diff --git a/immagini/partizmanuale.jpg b/immagini/partizmanuale.jpg new file mode 100644 index 0000000..897a1ae Binary files /dev/null and b/immagini/partizmanuale.jpg differ diff --git a/immagini/realpartitions.png b/immagini/realpartitions.png new file mode 100644 index 0000000..ada41aa Binary files /dev/null and b/immagini/realpartitions.png differ diff --git a/immagini/schemahdd.pdf b/immagini/schemahdd.pdf new file mode 100644 index 0000000..d3b42ea Binary files /dev/null and b/immagini/schemahdd.pdf differ diff --git a/immagini/schemahdd.svg b/immagini/schemahdd.svg new file mode 100644 index 0000000..b9cc0d4 --- /dev/null +++ b/immagini/schemahdd.svg @@ -0,0 +1,988 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + piatti + + + + + + + + braccio + + + + + + + + tracce + + + + + + + + settori + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + testina + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + attuatore + + + diff --git a/immagini/usbkeys.jpg b/immagini/usbkeys.jpg new file mode 100644 index 0000000..fdeb0ab Binary files /dev/null and b/immagini/usbkeys.jpg differ diff --git a/slides.tex b/slides.tex new file mode 100644 index 0000000..2d6cf72 --- /dev/null +++ b/slides.tex @@ -0,0 +1,788 @@ +% vim:sts=2:sw=2 +% encoding: utf-8 +\documentclass{beamer} +\usetheme[subsectionpage=progressbar]{metropolis} +\usepackage{booktabs} +\definecolor{darkblue}{RGB}{0,0,139} +\usepackage{tikz} +\usepackage{polyglossia,hyperref,fontawesome} +\setdefaultlanguage{italian} +\newfontface\cc{Font Awesome 5 Brands} + +\hypersetup{ + colorlinks=true, + urlcolor=darkblue, + pdfinfo={ + Title={Partizionamento for dummies}, + Author={Emiliano Vavassori} + } +} +\graphicspath{ {immagini/} } +\setcounter{tocdepth}{2} + +% Personal commands +\newcommand{\email}[1]{\faEnvelope~\href{mailto:#1}{\alert{\texttt{#1}}}} +\newcommand{\twitter}[1]{\faTwitter~\href{https://twitter.com/#1}{\alert{\texttt{@#1}}}} +\newcommand{\homepage}[1]{\faHome~\href{https://#1}{\alert{\texttt{#1}}}} +\newcommand{\git}[1]{\faGit~\href{https://#1}{\alert{\texttt{#1}}}} +\newcommand{\wikilemma}[1]{\href{https://it.wikipedia.org/wiki/#1}{\raisebox{.2ex}{\tiny\faWikipediaW}}} +% Logos for CC +\def\faCreativeCommonsBy{{\cc\symbol{"F4E7}}} +\def\faCreativeCommonsSA{{\cc\symbol{"F4EF}}} + +\pgfdeclareimage[width=2cm]{logo}{immagini/logo} +\pgfdeclareimage[width=.98\textwidth]{schemahdd}{immagini/schemahdd} +\pgfdeclareimage[width=.99\textwidth]{linux-fhs}{immagini/linux_fhs} +\pgfdeclareimage[height=.8\textheight]{lvm}{immagini/lvm_components} + +% Redefining logo positioning +\setbeamertemplate{footline}{ + \begin{minipage}[t]{.49\textwidth} + \hskip.5em\raisebox{.5em}{\pgfuseimage{logo}}% + \end{minipage}\hfill% + \begin{minipage}[b]{.49\textwidth} + \hfill\raisebox{.5em}{\insertframenumber/\inserttotalframenumber}\phantom{.}\hskip.5em + \end{minipage} +} + +% The document +\title{Partizionamento \textit{for dummies}} +\date{27 giugno 2018} +\author{ + Emiliano Vavassori\\[.2em]\tiny + \homepage{sys42.eu}\\ + \email{syntaxerrormmm@gmail.com}\\ + \twitter{syntaxerrormmm}\\ + \git{git.sys42.eu}\\[.5em] +} +\institute{% + \begin{minipage}{.5\textwidth} + BgLUG - Bergamo Linux Users Group\\ + c/o FabLab Bergamo\\ + Via M.~Gavazzeni 3, Bergamo + \end{minipage} + \begin{minipage}{.45\textwidth}\flushright% + \includegraphics[width=3.5cm]{logo} + \end{minipage}% +} +%\logo{\includegraphics[width=2cm]{logo}} + +\begin{document} + +\maketitle + +\begin{frame} + \frametitle{Contenuti} + \begin{columns} + \begin{column}{.45\textwidth} + \tableofcontents[sections=1-3] + \end{column} + \begin{column}{.45\textwidth} + \tableofcontents[sections=4-6] + \end{column} + \end{columns} +\end{frame} + +\section{Cosa significa?} + +\begin{frame} + \frametitle{\textsc{Wikipedia}: Partizione} + + \begin{block}{} + \wikilemma{Partizione} Una \textbf{partizione} indica una + \alert{suddivisione logica} di un'unità di memorizzazione fisica + (tipicamente una memoria di massa come un disco rigido o una chiavetta + USB). + + Le singole unità logiche vengono viste dal sistema operativo come + \alert{unità separate} e possono essere \alert{formattate} e gestite in + maniera del tutto indipendente. + + Su ogni disco rigido è sempre presente \alert{almeno una partizione} per la + sua operatività, al più l'intera memoria vista come singola o unica + partizione. + \end{block} + +\end{frame} + +\begin{frame} + \frametitle{\textsc{Wikipedia}: Disco rigido} + + \begin{block}{} + \wikilemma{Disco\_rigido} Un \textbf{disco rigido} o \textbf{disco fisso} + [\ldots] indica un dispositivo di memoria di massa di tipo + \alert{magnetico} che utilizza uno o più dischi magnetizzati per + l'archiviazione dei dati (file, programmi e sistemi operativi). + \end{block} + + \begin{center} + \includegraphics[height=3cm]{hdd}\ \includegraphics[height=3cm]{hddchiuso} + \end{center} + +\end{frame} + +\begin{frame} + \frametitle{Come funziona un disco rigido?} + + \begin{center} + \pgfuseimage{schemahdd} + \end{center} + +\end{frame} + +\begin{frame} + \frametitle{\textsc{Wikipedia}: Chiave USB} + + \begin{block}{} + \wikilemma{Chiave\_USB} Una \textbf{chiave USB} o \textbf{unità flash USB} + o \textbf{penna USB} [\ldots] è una \alert{memoria di massa portatile} di + dimensioni molto contenute (qualche centimetro in lunghezza e intorno al + centimetro in larghezza) che si collega al computer mediante la porta + USB. + \end{block} + + \begin{center} + \includegraphics[width=4cm]{usbkeys} + \end{center} +\end{frame} + +\begin{frame} + \frametitle{\textsc{Wikipedia}: Memoria di massa} + + \begin{block}{} + \wikilemma{Memoria\_di\_massa} Una \textbf{memoria di massa} è un tipo di + memoria che raccoglie tipicamente \alert{grandi quantità di dati} rispetto + alla memoria primaria e in maniera non volatile cioè \alert{permanente}, + almeno fino alla volontà dell'utente. + \end{block} +\end{frame} + +\section{Perché?} + +\begin{frame} + \frametitle{Perché si partiziona?} + + \begin{itemize}[<+->] + \item Migliore organizzazione dei dati + \item Eseguire differenti sistemi operativi su un PC\newline (\emph{multi + booting}) + \item Ridurre il rischio di perdite di dati + \item Comodità di backup e ripristino + \item Selettività nella cifratura del disco + \item Aumento delle performance + \end{itemize} + +\end{frame} + +\section{Come?} + +\begin{frame} + \frametitle{Come partizioniamo?} + + \only<2>{% + \begin{center} + \includegraphics[height=.8\textheight]{partizmanuale} + \end{center}} + + \only<3>{% + \begin{center} + \includegraphics[height=.7\textheight]{applepartition} + \end{center}} + + \only<4>{% + \centering + \begin{tikzpicture} + \tikzstyle{go}=[->,>=stealth] + \node[circle,draw=alert,scale=10.2] (first) at (0,0) {}; + \node[circle,fill=alert!60,scale=10] (first) at (0,0) {}; + \node[circle,fill=alert!40,scale=8] (middle) at (0,0) {}; + \node[circle,fill=alert!20,scale=5] (last) at (0,0) {}; + \node[circle,draw=alert,fill=white,scale=1] (inner) at (0,0) {}; + \node[circle,draw,scale=.1] (p) at (1.3,1.3) {}; + \node (l-mbr) at (3,2) { Settore d'avvio } + edge[go] (1.3, 1.3); + \node (l-first) at (4,1) { Prima partizione } + edge[go] (1.15, 1.15); + \node (l-middle) at (5,0) { Seconda partizione } + edge[go] (.8, .8); + \node (l-last) at (4,-1) { Terza partizione } + edge[go] (.3, .3); + \end{tikzpicture}} + +\end{frame} + +\subsection{L'avvio di GNU/Linux} + +\begin{frame} + \frametitle{\textsc{Wikipedia}: Boot loader} + + \begin{block}{} + \wikilemma{Boot\_loader} Il \textbf{boot loader} è il programma che, nella + \alert{fase di avvio} (\emph{boot}) del computer, \alert{carica il kernel} + del sistema operativo dalla memoria secondaria (ad esempio un \emph{hard + disk}) alla memoria primaria (generalmente la RAM), permettendone + l'esecuzione da parte del processore e il conseguente avvio del sistema. + \end{block} +\end{frame} + +\begin{frame} + \frametitle{\textsc{Wikipedia}: Kernel} + + \begin{block}{} + \wikilemma{Kernel} Il \textbf{kernel} costituisce il nucleo (o + \alert{nocciolo}) di un sistema operativo, ovvero il software avente il + compito di fornire ai processi in esecuzione sull'elaboratore un accesso + sicuro e controllato all'hardware. + + Dato che possono esserne eseguiti simultaneamente più di uno [di processi, + NDR], il kernel ha anche la responsabilità di assegnare una + \alert{porzione di tempo-macchina} (\emph{scheduling}) e di \alert{accesso + all'hardware} a ciascun programma (\emph{multitasking}). + \end{block} +\end{frame} + +\begin{frame} + \frametitle{Schema generico di avvio} + + \begin{tikzpicture}{shapes,arrows} + \tikzstyle{hw}=[rectangle,draw=darkblue!70,fill=darkblue!20,rounded + corners=5pt,node distance=2.75cm,text width=1.8cm,text centered,minimum + height=4em] + \tikzstyle{block}=[rectangle,draw=alert!70,fill=alert!20,rounded + corners=5pt,node distance=2.75cm,text width=1.8cm,text centered,minimum + height=4em] + \tikzstyle{go}=[->,>=stealth,semithick,shorten >=5pt,shorten <=2pt] + \node[hw] (POST) at (0, 0) {\textit{Power On Self Test}}; + \node<2->[hw,right of=POST] (firmware) { Firmware }; + \draw<2->[go] (POST) to (firmware); + \node<3->[block,right of=firmware] (bootloader) { Codice d'avvio }; + \draw<3->[go] (firmware) to (bootloader); + \node<4->[block] (kernel) at (8.15cm, 1.38cm) { Kernel }; + \node<4->[block,below of=kernel] (initrd) { Archivio \texttt{initrd} }; + \draw<4->[go,bend right=20] (bootloader.east) to (kernel.south); + \draw<4->[go,bend left=20] (bootloader.east) to (initrd.north); + \draw<5>[red,thick,dashed,rounded corners] (1.5,1) rectangle (6.75,-1); + \end{tikzpicture} + +\end{frame} + +\begin{frame} + \frametitle{Modalità \textit{legacy}} + + \begin{center} + \begin{tabular}{@{\hspace{1ex}\bfseries}lr} + \toprule + Firmware & \textit{Basic Input/Output System} (BIOS)\\ + Codice d'avvio & MBR/PBR e bootloader\\ + \bottomrule + \end{tabular} + \end{center} + \pause + + \begin{itemize}[<+->] + \item L'utente sceglie l'ordine dei disp.~da cui tentare l'avvio + \item Per ciascun dispositivo, il firmware cerca: + \begin{enumerate} + \item \textit{Master Boot Record} (MBR): \\ + 446 B (\textbf{codice d'avvio}) + 64 B (tabella partizioni) + \item \textit{Partition Boot Record} (PBR) + \end{enumerate} + \item Il codice binario di MBR/PBR cerca un \textbf{bootloader} + in una partizione con flag \alert{avviabile} + \item Il bootloader legge il file di configurazione + (\texttt{grub.conf}) + \item Il bootloader carica kernel e \texttt{initrd} + \end{itemize} + +\end{frame} + +\begin{frame} + \frametitle{Modalità UEFI --- 1} + + \begin{center} + \begin{tabular}{@{\hspace{1ex}\bfseries}lr} + \toprule + Firmware & \textit{\small Unified Extensible Firmware Interface} + (UEFI)~\wikilemma{UEFI}\\ + Codice d'avvio & File \texttt{.efi}\\ + \bottomrule + \end{tabular} + \end{center} + \pause + + Il firmware elenca automaticamente i dispositivi \alert{avviabili} collegati + al PC. L'utente deve stabilire l'\alert{ordine di avvio}. + \pause + + Sono avviabili i disposivi che hanno: + \begin{itemize}[<+->] + \item \textit{EFI System Partition}, ESP: + \begin{itemize} + \item Tipo di partizione: \texttt{ef00} + \item File system: FAT32 (raccomandato) + \item Dimensione: 50~MiB o più + \item Può essere condivisa fra più OS + \end{itemize} + \item Bootloader: file eseguibili con estensione \texttt{.efi} + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Modalità UEFI --- 2} + + Ricapitolando: + \begin{itemize}[<+->] + \item Il firmware cerca dispositivi bootabili e ha già una lista di + bootloader + \item Viene caricato il bootloader dal primo dispositivo avviabile + \item Il bootloader legge il suo file di configurazione + (\texttt{grub.conf}) + \item Il bootloader carica quindi il kernel e \texttt{initrd} + \end{itemize} + + \onslide<5-> + \textbf{N.B.}: Il flag \textit{avviabile} sulla partizione non è più necessario. + + \onslide<6> + \textbf{N.B.}: Un firmware UEFI \emph{di norma} permette anche l'avvio in + modalità \textit{legacy}. + +\end{frame} + +\subsection{Scelte tecniche} + +\begin{frame} + \frametitle{Tabella di partizioni MSDOS} + + \begin{itemize}[<+->] + \item Posizione: 64 B all'inizio del disco (dopo codice d'avvio) + \item 4 partizioni massimo fra \emph{primarie} e \emph{estese} + \item 24 partizioni \emph{logiche} per ciascuna partizione \emph{estesa} + \item Totale: massimo 96 partizioni + \item Non \emph{sarebbe} compatibile con EFI (tabelle part.~ibride GPT) + \end{itemize} + +\end{frame} + +\subsubsection{Tabella partizioni GPT} + +\begin{frame} + \frametitle{Tabella di partizioni \textit{GUID Partition Table} (GPT)} + + \begin{itemize}[<+->] + \item Standard legato a EFI + \item Sicurezza: due copie, una all'inizio (\emph{primaria}) e una alla + fine del disco (\emph{backup}) + \item Dimensioni: 16 kiB ciascuna: LBA1--34 (1 LBA $\approx$ 512 B) + \item Permette un totale di 255 partizioni, tutte identiche + \item LBA 0: \textit{Protective MBR} + \end{itemize} + +\end{frame} + +\subsection{Scelte operative} + +\begin{frame} + \frametitle{Scelte che influenzano il partizionamento} + + \begin{itemize}[<+->] + \item Velocità d'accesso ai dati (assoluta e relativa) + \item Compatibilità fra funzionalità a livello di \textit{file system} + \item Conoscenza dei software in uso + \item Esigenze di backup + \item Posizione dei dati con riferimento a \textit{Filesystem Hierarchy + Standard} (FHS) + \item Esigenze d'uso: \emph{desktop} vs.~\emph{server} + \item Scelte di hardening + \end{itemize} + +\end{frame} + +\subsubsection{Funzionalità a livello di file system} + +\begin{frame} + \frametitle{Funzionalità del \textit{file system}} + + \begin{itemize}[<+->] + \item \textit{Journaling} per la consistenza dei dati + \item Applicazione di quote (per utente, per gruppo) + \item \textit{Access Control List} (ACL) + \item Cifratura (\textit{Linux Unified Key Setup}, LUKS) + \item Memoria virtuale (\textit{swap}) + \item Possibilità di fare \textit{snapshot} + \end{itemize} + +\end{frame} + +\subsubsection{Posizionamento dei dati} +\begin{frame} + \frametitle{Posizionamento dei dati} + + \begin{itemize}[<+->] + \item Dati del database: \texttt{/var/lib} + \item Applicazioni web: \texttt{/var/www} + \item Log di sistema e delle applicazioni: \texttt{/var/log} + \item Dati condivisi SMB: \texttt{/srv} o \texttt{/var} + \item Molti programmi proprietari (giochi): \texttt{/opt} + \item Dati utente: \texttt{/home} + \end{itemize} + +\end{frame} + +\subsubsection{Scelte di hardening} + +\begin{frame} + \frametitle{Scelte di hardening} + + \begin{itemize}[<+->] + \item Limitare il riempimento della partizione \texttt{/}: creare una + \texttt{/tmp} separata + \item Su sistemi identici, condividere \texttt{/usr/share} via NFS + \item Rendere \texttt{/usr} in \textit{sola lettura} + \item Rendere \texttt{/boot} in \textit{sola lettura} + \item Usare file system \textit{legacy} su \texttt{/boot} + \item Usare opzioni di montaggio per protezione: \texttt{nosuid}, + \texttt{noexec} + \end{itemize} + + \onslide<7> + Riferimento: + \href{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Disks}{Wiki + di Gentoo GNU/Linux} + +\end{frame} + +\subsubsection{Esigenze d'uso} + +\begin{frame} + \frametitle{Esigenze d'uso: desktop vs.~server} + + \begin{itemize}[<+->] + \item Dimensione della \textit{swap} + \item Presenza partizione singola/multiple partizioni per il sistema + \item Importanza di \texttt{/home} + \item Automontaggio dispositivi rimovibili + \item Più spazio per \texttt{/usr}: programmi GUI in più + \end{itemize} + +\end{frame} + +\begin{frame} + \frametitle{Indicazioni di massima} + + Se desktop: + \begin{itemize} + \item Partizione \texttt{swap}: quanto la RAM o più (sospensione) + \item Una partizione per \texttt{/}, circa 20--45 GiB + \item Opzionale ma caldamente consigliato: \texttt{/home}, dati utenti + \end{itemize} + + \onslide<2-> + Se server: + \begin{itemize} + \item Partizione \texttt{/boot}, 200--500 MiB + \item Partizione \texttt{swap}, 2--4 GiB indipendentemente dalla RAM + \item Partizione \texttt{/}, 15--40 GiB + \item Partizione \texttt{/tmp}, 2--4 GiB + \item Partizione \texttt{/var}, \textit{ad libitum} + \end{itemize} + +\end{frame} + +\subsection{Strumenti} +\subsubsection{A linea di comando} + +\begin{frame} + \frametitle{Strumenti a linea di comando} + + \begin{itemize}[<+->] + \item \texttt{fdisk} + \item \texttt{cfdisk} + \item \texttt{gdisk} + \item \texttt{parted} + \end{itemize} + +\end{frame} + +\subsubsection{Con interfaccia grafica} + +\begin{frame} + \frametitle{Strumenti con interfaccia grafica} + + \begin{itemize}[<+->] + \item GNOME Disks + \item GParted + \end{itemize} + +\end{frame} + +\section{E poi?} + +\begin{frame} + \frametitle{E poi?} + \tableofcontents[sections={4}] +\end{frame} + +\subsection{La formattazione} + +\begin{frame} + \frametitle{\textsc{Wikipedia}: Formattazione} + + \begin{block}{} + \wikilemma{Formattazione} La \textbf{formattazione} è l'operazione tramite + la quale \alert{si prepara per l'uso} un supporto di memorizzazione di + massa [\ldots] per renderlo idoneo all'archiviazione di dati, impostando + la struttura del \alert{file system} che vi verrà creato sopra. + + Può venire chiamata a volte anche \textbf{inizializzazione}, sebbene in + realtà questa è la fase finale della formattazione, quella di preparazione + logica e scrittura dei dati di etichettatura. + + L'operazione consiste nel \alert{dividere} la capacità del disco \alert{in + una serie di blocchi} di uguali dimensioni e \alert{fornire una struttura + logica} in cui verranno scritte le informazioni che permetteranno + l'accesso ai dati desiderati. + \end{block} + +\end{frame} + +\begin{frame} + \frametitle{\textsc{Wikipedia}: File system} + + \begin{block}{} + \wikilemma{File\_system} Un \textbf{file system} indica informalmente un + meccanismo con il quale i file \alert{sono posizionati e organizzati} su + un dispositivo di archiviazione o su una memoria di massa e, in casi + eccezionali, anche sulla RAM. + + Più formalmente, un file system è l'insieme dei tipi di dati astratti + necessari per la memorizzazione (scrittura), l'organizzazione gerarchica, + la manipolazione, la navigazione, l'accesso e la lettura dei dati. + [\ldots] + + [\ldots] Nella rappresentazione grafica è generalmente utilizzata la + metafora delle \alert{cartelle} che contengono \alert{documenti} (i file) + ed \alert{altre sottocartelle}. + \end{block} + +\end{frame} + +\subsection{Struttura ad albero (FHS)} + +\begin{frame} + \frametitle{\textit{Filesystem Hierarchy Standard}} + + \pgfuseimage{linux-fhs} + +\end{frame} + +\subsection{I principali file system} + +\begin{frame} + \frametitle{I file system} + + \begin{minipage}[t]{.48\textwidth} + Nativi GNU/Linux + \begin{itemize}[<+->] + \item \texttt{ext2} + \item \texttt{ext3} + \item \texttt{ext4} + \item \texttt{btrfs} + \item \texttt{xfs} + \end{itemize} + \end{minipage}\hfill% + \begin{minipage}[t]{.48\textwidth} + Di altri sistemi operativi: + \begin{itemize}[<+->] + \item FAT (12, 16, 32) + \item ExFAT + \item NTFS + \item HFS+ + \item ZFS + \end{itemize} + \end{minipage} + +\end{frame} + +\subsection{Strumenti} +\subsubsection{A linea di comando} + +\begin{frame} + \frametitle{Strumenti a linea di comando} + + \begin{minipage}{.3\textwidth} + \begin{itemize}[<+->] + \item \texttt{mkfs.ext2} + \item \texttt{mkfs.ext3} + \item \texttt{mkfs.ext4} + \item \texttt{mkfs.btrfs} + \item \texttt{mkfs.xfs} + \item \texttt{tune2fs} + \end{itemize} + \end{minipage} + \hfill + \begin{minipage}{.68\textwidth} + \begin{itemize}[<+->] + \item \alert{dosfstools}: \texttt{mkfs.vfat}, \texttt{mkfs.msdos} + \item \alert{exfatutils}: \texttt{mkfs.exfat} + \item \alert{nfts-3g}: \texttt{mkfs.ntfs} + \item \alert{hfsprogs}: \texttt{mkfs.hfs}, \texttt{mkfs.hfsplus} + \item \alert{zfsutils-linux}: \texttt{zfs}, \texttt{zpool} + \item Bonus: \texttt{parted} + \end{itemize} + \end{minipage} + +\end{frame} + +\subsubsection{Con interfaccia grafica} + +\begin{frame} + \frametitle{Strumenti con interfaccia grafica} + + \begin{itemize}[<+->] + \item GNOME Disks + \item GParted + \end{itemize} +\end{frame} + +\subsection{Tecnologie avanzate} +\begin{frame} + \frametitle{Ridondanza: \textit{Redundant Array of Inexpensive Disks} + (RAID)} + + \begin{itemize}[<+->] + \item Backup $\neq$ Ridondanza! + \item \textit{Just a Bunch Of Disks} (JBOD) vs.~\textit{Redundant Array of + Inexpensive Disks} + + \item Velocità di accesso vs.~Sicurezza dei dati + \item Numero di dischi vs.~Sicurezza dei dati + \item Hardware vs.~Software (\texttt{mdadm}) + \item Dimensione relativa dei dischi e perdita di spazio disponibile + \item Lotti di produzione differenti per più sicurezza dei dati + \end{itemize} + +\end{frame} + +\begin{frame} + \frametitle{Alcuni tipi di RAID} + + \begin{center}\small + \begin{tabular}{lccc} + \toprule + \bfseries Nome RAID & \bfseries Liv. & \bfseries Num. min.~HDD & + \bfseries Num.~HDD persi \\ + \midrule + Stripe & 0 & 2 & 0 \\ + Mirror & 1 & 2 & 1 \\ + RAID 5 & 5 & 3 & 1 \\ + RAID 6 & 6 & 4 & 2 \\ + Stripe + Mirror & 0+1 & 4 & 2+ \\ + Mirror + Stripe & 1+0, 10 & 4 & 2+ \\ + \bottomrule + \end{tabular} +\end{center} + +\end{frame} + +\begin{frame} + \frametitle{Gestibilità: \textit{Logical Volume Management} (LVM)} + + \begin{center} + \pgfuseimage{lvm} + \end{center} + +\end{frame} + +\begin{frame} + \frametitle{Cifratura: \textit{Linux Unified Key Setup} (LUKS)} + + \begin{itemize}[<+->] + \item Standard aperto per la cifratura + \item 2004 da Clemens Fruhwirth + \item Garantisce che la gestione delle password avvenga in maniera sicura + e documentata + \item Supporta differenti volumi (dm-crypt, volumi LUKS, + loop-AES, TrueCrypt e VeraCrypt) + \item \`E utilizzabile anche su Windows (FreeOTFE) + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{LUKS: funzionamento di base} + + \begin{center} + \tikzstyle{dark}=[draw=alert!70,fill=alert!30,fill] + \tikzstyle{light}=[draw=alert!70,fill=alert!20] + \begin{tikzpicture}[scale=.9,draw=alert!70] + \draw[dark] (0, 0) rectangle (2.5, 1); + \node at (1.25, 0.5) { LUKS phdr }; + \draw[light] (2.5, 0) rectangle (3.5, 1); + \node at (3, 0.5) { KM1 }; + \draw[dark] (3.5, 0) rectangle (4.5, 1); + \node at (4, 0.5) { KM2 }; + \draw[dashed] (4.5, 0) rectangle (5.5, 1); + \node at (5, 0.5) { \ldots }; + \draw[light] (5.5, 0) rectangle (6.5, 1); + \node at (6, 0.5) { KM8 }; + \draw (6.5, 0) rectangle (12, 1); + \node at (9.25, 0.5) { encrypted data }; + \end{tikzpicture} + \end{center} + \pause + \begin{itemize}[<+->] + \item Master Key (16--32 bytes per default, configurabile) + \item 8 \alert{Key Materials} ($\simeq$ una password ciascuno) + \item LUKS \textit{partition header} (phdr): contiene checksum della MK, + parametri di cifratura dei dati e dei singoli KM + \end{itemize} + \pause + + Sotto GNU/Linux la gestione dei dischi cifrati viene effettuata con + \texttt{cryptsetup} + +\end{frame} + +\begin{frame} + \frametitle{Backup: usare gli \textit{snapshot}} + + \wikilemma{Snapshot} Letteralmente una «istantanea», è generalmente la + cattura di \alert{stato di un oggetto in un determinato momento} nel tempo. Il termine è stato coniato come analogia a quello usato in fotografia. + + Nei sistemi informatici, una snapshot è un'istantanea dello stato di un + sistema in un particolare momento, e può fare riferimento a una copia + reale del sistema. + + \begin{itemize} + \item Indipendente dal FS: LVM-snapshot + \item Dipendente dal FS: ZFS, btrfs + \end{itemize} + +\end{frame} + + +\begin{frame} + \centering + \vspace*{2cm} + Grazie per l'attenzione! + + \homepage{sys42.eu}\\ + \email{syntaxerrormmm@gmail.com}\\ + \twitter{syntaxerrormmm}\\ + \git{git.sys42.eu} + + \vspace*{2cm} + + \begin{block}{}\centering + \mbox{\faCreativeCommons~\faCreativeCommonsBy~\faCreativeCommonsSA} + + \tiny + Quest'opera è distribuita con Licenza\\ + \href{http://creativecommons.org/licenses/by-sa/4.0/}{Creative Commons + Attribuzione - Condividi allo stesso modo 4.0 Internazionale}. + + \href{https://git.sys42.eu/syntaxerrormmm/part4dummies/}{\texttt{git.sys42.eu/syntaxerrormmm/part4dummies}} + \end{block} + +\end{frame} +\end{document}