Home Page

Tips page
c
cellulari
debian
egittologia
emacs
emacs-latex
hardware
html
inglese
java
latex
linux

*Alcuni comandi utili utilizzando find
*ARP e MAC address
*Ascoltare un CD audio
*Attivare il NumLock (BlocNum)
*Attivare i tasti i tasti Magic SysRq
*AWK, use an environment variable inside a script
*Bash e Argument list too long
*BogoMIPS
*Cancellare file e non recuperare spazio
*Capacita` dell'hard disk
*Come cambiare i font delle applicazioni con librerie GTK
*Come cambiare l'hostname
*Come tentare di recuperare file, filesystem e partizioni
*Compilare in parallelo
*Condividere una partizione
*Configure proxy for shells
*Continuous disk access
*Controllare la salute di hard disk e filesystem
*Convertire ext2 in ext3 (e viceversa)
*Convertire un file di testo dalla codifica DOS a quella UNIX
*Cosa fare quando si perde la password di root
*Cosa significa l'errore ``TCP
*Creare un boot floppy
*Creare un file temporaneo
*Deframmentazione di un filesystem
*Delete last chars from a string
*Determinare lo spazio libero sul disco
*Eliminare il beep
*Emettere un beep da script
*Enable PPP connection on boot
*Exclude a directory with rsync
*Execute telnet from a script
*Gestione dei file di log
*Gestione dei file .iso
*Gestione della data/ora
*Gestione di utenti e gruppi
*Hash md5 di una stringa
*Identificare la distribuzione installata
*I file ps e pdf
*Il file /etc/fstab
*Il file /etc/issue[.net] e /etc/motd
*Il filesystem SysFs
*I link soft ed hard
*Il path delle applicazioni
*Il sistema tutto in maiuscolo
*I moduli del kernel
*Impostare piu` IP per una scheda di rete
*Introduzione a LVM
*Inviare messaggi agli altri utenti
*I permessi della directory root, /
*La gerarchia del filesystem di Linux
*La memoria Ram sotto Linux
*La memoria swap
*Limitare la possibilita` di diventare root
*Limitazioni alla dimensione del file
*Log dei login utente
*Modificare il comportamento di ctrl+alt+canc
*Modificare le variabili della parent shell
*Montare o rimontare un filesystem come read-only
*More columns in a shell output
*Negare il login durante la manutenzione del sistema
*NoHUP
*Obtain the exact process start time
*Ottenere uno snapshot dello schermo
*Partizionamento di un sistema Linux
*Perche' si usa ./ per avviare alcuni eseguibili
*Permanent PPP connection
*PID of a process
*Programmare l'esecuzione dei programmi
*Quale processo utilizza un certo file o porta
*Quali vantaggi si hanno dalla ricompilazione
*Remove from find results
*Ricreare velocemente /tmp al boot
*Ridirezione dell'output
*Rimappare la tastiera
*Ripristinare i caratteri sballati in console
*Riscrivere l'MBR
*Salvarsi da un ``rm'' di troppo...
*Save MBR
*Scrivere in modo sincrono su filesystem
*Scrivere nel log di sistema di Linux
*Separazione dei comandi nella shell
*Separazione delle parole nella shell
*Share the internet connection
*Shell configuration files
*Single quote character escape with sed
*Spostare una directory in un'altra partizione
*Stimare il carico di lavoro della macchina
*Undelete di un file
*Usare le pendrive USB sotto Linux
*Usare partizioni primarie o estese
*Use md5sum to verify saved files
*Use ssh and scp without password
*Utilizzare hdparm per controllare gli hard disk
*Verificare un file video
*What is a zombie process
*What is the file System.map?
*What is the shebang? (Shell scripts)
*What shared libraries a program uses
*Yesterday date

matlab
misc
mysql
network
octave
programming
python
security
sed
tech
webapps
windows

University Page

Programming

Debian & Linux

Some works

About me

Del.icio.us Bookmarks

BOINC Combined Statistics

Site Statistics

Contact me sending an e-mail (antispam defense activated)

debian

hacker emblem

blogger

GeoURL

View Sandro Tosi's profile on LinkedIn

This is my Google PageRank

Title: Partizionamento di un sistema Linux
Author: Sandro Tosi
Last modified: 2004-11-14   (2004-11-07)   (2004-11-06)   (2004-11-05)
	       (01/11/2004)

Il metodo  piu` pratico per installare  un sistema Linux  e` quello di
farlo  in un'unica  partizione,  che contenga  tutte  le directory.  A
volte,    pero`,   questa    configurazione   non    soddisfa   alcune
necessita`.  Cerchiamo allora  di partizionare  il sistema  in maniera
piu` pratica e funzionale.

Utilizzare il sistema su piu` partizioni aumenta la sicurezza e riduce
la difficolta` di  recupero in caso di problemi; in  piu` si riesce ad
avere maggior controllo su alcuni fattori, come la frammentazione o il
tempo  di check  in  caso di  riavvio  improvviso. Inoltre,  mantenere
separate   parti  del  filesystem   consente  anche   di  reinstallare
facilmente,  poiche`, magari,  la  /home si  trova  in una  partizione
separata e quindi non c'e` bisogno di effettuarne un backup.

Si  tenga presente  che  avere  piu` partizioni  non  e` necessario  o
obbligatorio, ma sono un sistema di controllo e di fault-tollerance in
piu`; inoltre,  avere piu`  partizioni non aumentera`  le prestazioni:
per ottenere questo, esse devono anche risiedere su dischi differenti.

Quali  parti  del tree  e`  consigliabile  mettere  in una  partizione
separata  e`   strettamente  dipendente  dall'uso   che  faremo  della
macchina: e`  chiaro che le esigenze  di un utente  domestico sono ben
diverse da quelle di un server di produzione.

La prima  regola che possiamo  dare e` quella  di separare i  dati dai
programmi, mettendoli in due partizioni separate (questo consiglio non
vale solo  per Linux,  ma per qualsiasi  altro sistema  operativo). In
questo modo se si incasinano i dati, abbiamo un sistema per cercare di
recuperarli,   mentre   se  si   incasinano   i  programmi,   possiamo
reinstallare a  cuor leggero,  in quanto i  dati sono protetti  in una
partizione separata.

Separare / da  /home e` gia` un primo modo  di partizionare il proprio
sistema.

Esiste, comunque,  il Multi-Disk Partitioning HOWTO,  che si consiglia
di consultare per maggiori indicazioni.


Directory
=========

/
      deve  contenere, almeno,  gli  strumenti necessari  al boot,  le
      utility base di gestione e recovery del sistema.

/etc
      non deve _mai_ essere messa  in una partizione separata da /, in
      quanto altrimenti il kernel  non avrebbe possibilita` di leggere
      alcuni dei file necessari al  boot (uno su tutti /etc/fstab, che
      si trova in una partizione le cui informazioni di montaggio sono
      contenute in un file al sui interno...) e quindi non si potrebbe
      avviare il sistema operativo.

/boot
      puo`  essere in una  partizione separata,  e diventa  questa una
      scelta obbligatoria in caso si  utilizzi LVM: il supporto ad LVM
      puo` essere sia  all'interno del kernel che in  un modulo, ma se
      risiedessero in un volume  LVM non sarebbe possibile leggerli, e
      dunque  effettuare il  boot. In  generale, veniva  posta  in una
      partizione separata quando il filesystem di / non era supportato
      dal kernel  (non era  al suo interno  ma come  modulo): venivano
      messi li`  il kernel e l'immagine  di boot che  conteneva al suo
      interno il supporto al filesystem di /.

      L'utilita`  di averla  separata in  caso di  malfunzionamenti e`
      quasi nulla: infatti se

      - /boot si salva e / si corrompe
        il kernel viene caricato in  memoria, poi forse si avvia init,
        o  forse nemmeno quello,  poi pero`  fsck e`  corrotto. Averla
        separata non e` servito a nulla.

      - /boot si corrompe e / no
        l'opera di recupero e` piu`  facile: si provano tutti i kernel
        e se  sono tutti corrotti,  si usa un  floppy di boot o  un cd
        rescue.

      - /boot e / si corrompono
	Risultato identico ad averle insieme.

      Risulta utile  nel caso  si vogliano provare  piu` distribuzioni
      sul proprio sistema.

/home
      andrebbe  quasi sempre  messa in  una partizione  separata dalle
      altre: in caso si abbia necessita` di reinstallare il sistema, i
      propri  dati  sono  al  sicuro;  inoltre,  in  caso  di  riavvio
      improvviso,  le probabilita`  che si  corrompa la  partizione di
      /home saranno minori che avere tutto in una sola partizione.

/usr
      contiene   tutti   i    programmi   installati   dalla   propria
      distribuzione (ed  in Debian i programmi che  andrebbero in /opt
      finiscono qui dentro), e possono essere veramente tanti. Inoltre
      ci  vengono  spesso  messi  anche  i sorgenti  del  kernel  che,
      decompressi, occupano  circa 300 Mb. Separarla da  / consente di
      mantenere  quest'ultima di dimensioni  contenute, e  separare la
      parte  applicativa da quella  di gestione  vera e  propria della
      macchina.  Separando  /usr/src  da  /usr, e`  possibile  montare
      quest'ultima come  read-only, che non guasta dal  punto di vista
      della sicurezza.

/tmp
      e`  la   directory,  cancellata  ad  ogni   riavvio,  che  viene
      utilizzata  dalle  applicazioni   come  punto  di  appoggio  per
      memorizzare dati temporanei di elaborazioni, a volte richiedendo
      anche  anche  molto  spazio,  considerando che  i  programmi  di
      masterizzazione mettono  i file iso  proprio in /tmp,  oppure si
      provi ad  eseguire il sort di  un file di  grandi dimensioni. In
      generale, ed il  particolare in caso di una  macchina server, e`
      sempre opportuno  dedicare una  partizione separata a  /tmp, per
      varie ragioni:

      o  se il numero di file in /tmp cresce troppo velocemente non si
	 rischia di riempire / ma solo la partizione di /tmp;

      o  utilizzando  opportuni  parametri   di  mount,  e`  possibile
	 incrementare  la sicurezza del  sistema evitando  molte falle
	 note nell'utilizzo di file temporanei.

      Nel caso  /var sia  una partizione separata  e non se  ne voglia
      creare una nuova per /tmp,  e` possibile sempre far puntare /tmp
      a /var/tmp  (non e`  comunque una soluzione  consigliabile: /var
      deve aver spazio per ben altre cose).

/var
      come dice il nome stesso, contiene file il cui numero, contenuto
      e  dimensione  possono   variare  molto  frequentemente:  spool,
      contenuti di web server, database, cache proxy, o anche la cache
      dei  pacchetti  di apt  (per  chi  usa  Debian). Averla  in  una
      partizione separata puo` evitare di riempire / con questi file e
      mantenerne sotto controllo il  contenuto, soprattutto in caso di
      installazione per  server, in  quanto al suo  interno troveranno
      posto una gran mole di dati.

/misc 
      (o un  nome simile) potrebbe  aver senso creare una  cartella da
      dedicare a dati che  vengono scaricati da Internet (filesharing)
      o film e quant'altro.


Dimensioni
==========

La  dimensione   delle  partizioni,  come  il   loro  numero,  dipende
largamente dal tipo di utilizzo che andremo a fare della macchina.

/
      solitamente piccola,  a maggior ragione se /usr,  /tmp, /var, ed
      /home sono in altre partizioni (deve contenere solo /boot, /etc,
      /lib, /bin, /sbin), attorno al giga, direi.

/boot
      contiene  i kernel,  i file  System.map relativi  e  poco altro;
      solitamente  tra   i  10-100  Mb  (a  seconda)   sono  piu`  che
      sufficienti.

/home
      tutto quello che si puo` dare dopo aver fatto il partizionamento
      del sistema:  essa conterra` i  nostri dati personali,  che sono
      tanti e spesso di grandi dimensioni (musica, video, etc.)

/usr (e/o /opt)
      contiene  i  programmi,  e  molti  di  essi  sono  di  grandezza
      notevole: X, OpenOffice, etc. Conviene dimensionarla sui 5-10Gb,
      giusto per  stare largo.  Inoltre, una volta  che il  sistema e`
      installato,  la  sua  dimensione  tende  a  rimanere  abbastanza
      stabile. Dovrebbe essere la piu` grande partizione, dopo /home.

/tmp

      puo` variare molto, diciamo una dimensione anche di 1-2Gb.

/var
      contiene  dati che  possono  variare frequentemente  e tende  ad
      avere un  particolare comportamento fluttuante:  il suo utilizzo
      cresce   e  diminuisce  in   misura  anche   notevole.  Conviene
      dimensionarla generosamente, attorno a 2-5 Gb.

/misc

      se  utilizzata,  contiene solitamente  una  grande quantita`  di
      dati. Ad esempio, se l'utilizzo  che faremo del sistema sara` di
      file server,  questa partizione  conterra` i file  condivisi. E`
      necessario,  quindi,  che  vi  venga dedicato  tutto  lo  spazio
      possibile, sacrificando altre partizioni (/home in particolare).

swap
      conviene  crearla  della  stessa  dimensione  della  Ram  fisica
      installata, ma  se si usano molti programmi  pesanti, puo` anche
      essere necessario  dimensionarla al doppio  della Ram installata
      (certo che avendo 1 Gb di Ram, metterne 2 di swap sembra proprio
      uno spreco...).


Utilizzo
========

Schematiziamo una possibile configurazione delle partizioni per alcuni
utilizzi classici:

casalingo:    / /home swap

game machine: / /home /usr /tmp swap

server:	      / /boot /home /usr /tmp /var swap

file server:  / /usr /tmp /var /misc


Sicurezza
=========

Le opzioni  di boot possono aumentare  la sicurezza di  un sistema che
abbia piu` partizioni:

/boot  rw,nosuid
/home  rw,nodev,nosuid,noexec
/usr   rw,nodev
/tmp   rw,noexec,nosuid
/var   rw,nosuid,nodev

Se  la  /home  contiene  una  directory  di  eseguibili  locali  o  si
sviluppano  programmi,  le  opzioni  ``nosuid,noexec''  devono  essere
omesse, in  quanto utili  solo se non  sono presenti  eseguibili nella
partizione.

Per /home  e /var, quando previsto  dal sistema, e`  possibile usare i
parametri della quota disco: ``usrquota,grpquota''.

/usr potrebbe  anche essere montata come ``ro'',  in quanto l'utilizzo
normale non  richiede una scrittura  in questa directory  (che avviene
solo quando si installa un programma a livello globale, e lo puo` fare
solo root).