Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

290

description

il manuale in lingua Italiana di DEFT 7

Transcript of Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

Page 1: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7
Page 2: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

1 Manuale DEFT 7

Gli autori

Stefano “youngSTEr” Fratepietro

Si laurea nel 2006 in Information Technology and Management (Scienze di Internet)

presso l’Università degli Studi di Bologna con tesi di laurea in Informatica Forense dal

titolo “Uno studio del caso virus Vierika”; certificato Offensive Security OSCP e ISECOM

OPST, attualmente è un security specialist presso l’ufficio IT-security del CSE (Consorzio

Servizi Bancari) ed effettua attività peritali per tribunali, forze dell’ordine e privati

partecipando come consulente tecnico a casi di fama nazionale come “Buongiorno!

Vitaminic” e “Pirelli-Telecom-Ghioni”. Dal 2005 è creatore e project leader del sistema

DEFT. Saltuariamente effettua attività di docenza in Informatica Forense per Università

italiane e corsi privati.

Sandro “bUSBoy” Rossetti

Alessandro Rossetti vive e lavora a Roma. Molti dei suoi interessi personali riguardano

l'Information Technology, in particolare le problematiche di intelligence e forensic. È

membro di diverse organizzazioni indipendenti quali ISACA ed IACIS.

Paolo Dal Checco

Ha conseguito il titolo di Dottore di Ricerca nel 2006 presso l’Università degli Studi di

Torino, nel Gruppo di Sicurezza del Dipartimento di Informatica. Ha svolto docenza in

ambiti universitari, ICT e aziendali oltre a collaborazioni con aziende che operano nel

settore della sicurezza e privacy delle comunicazioni. È socio fondatore dello studio di

consulenza informatica forense “Digital Forensics Bureau” (www.difob.it) di Torino. È

Socio Amministratore della Digit Law Srl (www.digitlaw.it). Effettua attività di consulenza

tecnica per tribunali e procure, forze dell’ordine e privati.

Page 3: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

2 Manuale DEFT 7

Licenza d’uso

Attribuzione - Non commerciale 3.0 Italia

Tu sei libero di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico,

rappresentare, eseguire, recitare e di modificare quest'opera alle seguenti condizioni:

Attribuzione — Devi attribuire la paternità dell'opera nei modi indicati dall'autore o da chi

ti ha dato l'opera in licenza e in modo tale da non suggerire che essi avallino te o il modo

in cui tu usi l'opera.

Non commerciale — Non puoi usare quest'opera per fini commerciali.

Rinuncia — È possibile rinunciare a qualunque delle condizioni sopra descritte se ottieni

l'autorizzazione dal detentore dei diritti.

Pubblico Dominio — Nel caso in cui l'opera o qualunque delle sue componenti siano nel

pubblico dominio secondo la legge vigente, tale condizione non è in alcun modo

modificata dalla licenza.

Altri Diritti — La licenza non ha effetto in nessun modo sui seguenti diritti:

Le eccezioni, libere utilizzazioni e le altre utilizzazioni consentite dalla legge sul diritto

d'autore;

I diritti morali dell'autore;

Diritti che altre persone possono avere sia sull'opera stessa che su come l'opera viene

utilizzata, come il diritto all'immagine o alla tutela dei dati personali.

Nota — Ogni volta che usi o distribuisci quest'opera, devi farlo secondo i termini di questa

licenza, che va comunicata con chiarezza.

Questo è un riassunto in linguaggio accessibile a tutti della licenza integrale:

http://creativecommons.org/licenses/by-nc/3.0/it/legalcode

Page 4: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

3 Manuale DEFT 7

Dedicato ad Ele ed a Silvia per la infinita pazienza.

Dedicato anche a Stefano e Alessandro,

sperando che prendano più dalle madri che dai loro padri.

A Samanta e Kim.

Page 5: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

4 Manuale DEFT 7

Ringraziamenti

Ci teniamo a ringraziare quanti nel corso degli ultimi anni hanno contribuito alla nostra

crescita personale.

Ringraziamo anche chi ha lavorato dietro le quinte per la realizzazione di DEFT,

contribuendo anche indirettamente alla realizzazione del manuale d’uso.

Massimiliano Dal Cero

Davide “Rebus” Gabrini

Bartolomeo “Meo” Bogliolo

Valerio Leomporra

Marco Giorgi

Emanuele Gentili

Un doveroso ringraziamento va anche a Simone e Ivan per il loro aiuto nel ricontrollare

questo manuale.

Vogliamo infine ringraziare Architecture Technology Corporation per averci permesso di

inserire “Dropbox Reader™” in questa distribuzione.

Page 6: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

5 Manuale DEFT 7

Premessa

Tramite questo manuale vogliamo dare al lettore un assaggio delle principali funzioni e

potenzialità della distribuzione DEFT, un punto di partenza per stimolare la crescita delle

proprie conoscenze tecniche.

Non troverete quindi in queste pagine spiegazioni esaustive sull’utilizzo di tutti gli

applicativi e comandi attualmente presenti nella distribuzione.

Per cercare di facilitare lo studio, abbiamo inserito alcuni esempi che suggeriscono

all’utente come poter svolgere alcune delle principali attività di Digital Forensics quali:

l’acquisizione e preservazione di memorie di massa (dischi rigidi, penne USB,

lettori mp3, Smartphone, ecc.) o traffico telematico su rete IP;

l’analisi e la gestione di casi.

Buona lettura!

Page 7: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

6 Manuale DEFT 7

Sommario

CAPITOLO 1: INTRODUZIONE .................................................................................................. 9

1.1 COS’È DEFT? ............................................................................................................................ 9

1.2 PERCHÉ DEFT È IMPIEGABILE NELL'ATTIVITÀ DI DIGITAL FORENSICS? .................................................. 10

CAPITOLO 2: REQUISITI DI SISTEMA ....................................................................................... 11

2.1 DEFT..................................................................................................................................... 11

2.2 DART .................................................................................................................................... 11

CAPITOLO 3: ELENCO DELLE APPLICAZIONI ............................................................................ 12

3.1 DEFT LINUX ............................................................................................................................ 12

3.2 DART 1.0 .............................................................................................................................. 13

CAPITOLO 4: AVVIARE DEFT LINUX LIVE DVD ......................................................................... 15

4.1 VERIFICARE L’INTEGRITÀ DELL’IMMAGINE DI DEFT SCARICATA DA INTERNET ........................................ 15

4.2 MASTERIZZARE DEFT LINUX SU UN SUPPORTO OTTICO .................................................................... 16

4.3 CREARE UNA PENNA USB AVVIABILE CONTENENTE DEFT LINUX ........................................................ 17

4.4 IMPOSTAZIONE DEL BIOS E/O DEL BOOT SELECTION POPUP/MENU .................................................. 18

4.5 PARAMETRI DI AVVIO DI DEFT .................................................................................................... 19

4.6 INSTALLAZIONE DI DEFT LINUX 7 ................................................................................................ 22

CAPITOLO 5: DEFT LINUX TEXT MODE ................................................................................... 24

5.1 GESTIONE DELLE MEMORIE DI MASSA ........................................................................................... 24

5.1.1 Comandi utili .............................................................................................................. 25

5.1.2 Mount delle memorie ................................................................................................ 25

5.1.3 Mount di un device (hard disk, penna USB, floppy disk, CDROM, ecc...) ................... 26

5.1.4 Mount di un file immagine DD/RAW ......................................................................... 27

5.1.5 Mount di un file immagine DD/RAW suddiviso in più file (split raw) ......................... 28

5.1.6 File di tipo EWF/Encase .............................................................................................. 30

5.1.7 File di tipo AFF ............................................................................................................ 30

5.2 CALCOLO DELL’HASH ................................................................................................................. 31

5.2.1 Md5sum ..................................................................................................................... 31

5.2.2 Sha1sum..................................................................................................................... 32

5.2.3 Md5 e sha deep .......................................................................................................... 32

5.2.4 Dhash ......................................................................................................................... 32

5.3 ACQUISIZIONE MEMORIE DI MASSA .............................................................................................. 33

5.3.1 dd ............................................................................................................................... 33

5.3.2 ddrescue ..................................................................................................................... 33

Page 8: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

7 Manuale DEFT 7

5.3.3 dcfldd ......................................................................................................................... 34

5.3.4 Dhash ......................................................................................................................... 34

5.4 CREAZIONE DI UNA TIME LINE ...................................................................................................... 35

5.4.1 fls ............................................................................................................................... 35

5.4.2 mactime ..................................................................................................................... 36

5.5 CREAZIONE DI UNA SUPERTIMELINE .............................................................................................. 38

5.6 RICERCA FILE E CARTELLE ............................................................................................................ 42

5.6.1 Locate......................................................................................................................... 42

5.6.2 Find ............................................................................................................................ 43

5.7 CARVING DI FILE ....................................................................................................................... 43

5.7.1 Foremost .................................................................................................................... 43

CAPITOLO 6: DEFT LINUX GUI MODE ..................................................................................... 45

6.1 INTRODUZIONE ........................................................................................................................ 45

6.2 GESTIONE DELLA MEMORIA DI MASSA ........................................................................................... 48

6.3 MOUNT MANAGER ................................................................................................................... 49

6.4 CALCOLO DELL’HASH ................................................................................................................. 50

6.5 ACQUISIZIONE DI MEMORIE DI MASSA ........................................................................................... 50

6.5.1 Dhash ......................................................................................................................... 51

6.5.2 Guymager .................................................................................................................. 52

6.6 RICERCA DI FILE E CARTELLE ........................................................................................................ 53

6.6.1 Catfish ........................................................................................................................ 53

6.7 FINDWILD ............................................................................................................................... 54

6.8 CARVING DI FILE DA GUI ............................................................................................................ 55

6.9 GESTIONE DI UN CASO CON AUTOPSY ........................................................................................... 57

6.10 XPLICO .............................................................................................................................. 65

6.10.1 Creazione di un caso .............................................................................................. 66

6.11 HYDRA .............................................................................................................................. 70

6.12 KEEPNOTE .......................................................................................................................... 72

6.13 MALTEGO .......................................................................................................................... 73

CAPITOLO 7: MOBILE FORENSICS ........................................................................................... 74

7.1 ANDROID ................................................................................................................................ 76

7.2 BREVE PANORAMICA SULLE APPLICAZIONI GOOGLE ......................................................................... 77

7.2.1 Gmail .......................................................................................................................... 78

7.2.2 Market ....................................................................................................................... 79

7.2.3 File System in uso ....................................................................................................... 79

7.2.4 EXT4 file system ......................................................................................................... 80

Page 9: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

8 Manuale DEFT 7

7.2.5 Policy di utilizzo delle memorie di massa ................................................................... 81

7.2.6 Accesso al file system del sistema operativo ............................................................. 81

7.3 SAMSUNG GALAXY S I9000– CARATTERISTICHE HARDWARE ............................................................. 83

Processore: S5PC110 CPU, 45 nm 1 GHz ARM Cortex-A8 based PowerVR SGX 540 GPU con

supporto OpenGL ES 1.1/2.0. ................................................................................................... 83

7.3.1 Procedura per il “rooting” del dispositivo .................................................................. 84

7.3.2 Samsung Galaxy S - acquisizione fisica della memoria flash interna ......................... 85

7.4 SAMSUNG GALAXY S - ACQUISIZIONE FISICA DELLA MEMORIA ESTERNA ............................................... 87

7.4.1 Lavorare direttamente sullo smartphone .................................................................. 88

7.4.2 Posizione e analisi delle applicazioni e dei file di comune interesse .......................... 88

7.4.3 Esempio di analisi sull'applicazione Google Maps ..................................................... 90

CAPITOLO 8: DART – DIGITAL ADVANCED RESPONSE TOOLKIT .............................................. 92

CAPITOLO 9: PER APPROFONDIRE ......................................................................................... 96

CAPITOLO 10: APPENDICE 1 – PARAMETRI PER IL BOOT DEL KERNEL ...................................... 97

CAPITOLO 11: APPENDICE 2 – MAN PAGE.............................................................................. 184

11.1 MOUNT ........................................................................................................................... 184

11.2 AFFUSE ............................................................................................................................ 215

11.3 SHA1SUM ........................................................................................................................ 221

11.4 MD5, SHA1, SHA256 DEEP ................................................................................................. 223

11.5 DHASH ............................................................................................................................ 227

11.6 GREP .............................................................................................................................. 228

11.7 DD.................................................................................................................................. 241

11.8 DD RESCUE ...................................................................................................................... 244

11.9 DCFLDD .......................................................................................................................... 246

11.10 FLS ................................................................................................................................. 251

11.11 MACTIME ........................................................................................................................ 253

11.12 LOCATE............................................................................................................................ 254

11.13 FIND ............................................................................................................................... 259

11.14 FOREMOST ....................................................................................................................... 285

Page 10: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

9 Manuale DEFT 7

Capitolo 1: Introduzione

1.1 Cos’è DEFT?

La distribuzione Linux1 DEFT2 è composta da un sistema Gnu/Linux e da DART (Digital

Advanced Response Toolkit), suite dedicata alle attività di digital forensics3 ed

intelligence4.

È attualmente sviluppata e gestita da Stefano Fratepietro, con il supporto di Massimiliano

Dal Cero, Sandro Rossetti, Paolo Dal Checco, Davide Gabrini, Bartolomeo Bogliolo, Valerio

Leomporra e Marco Giorgi.

La prima versione di DEFT Linux ha visto la luce nel 2005 grazie anche all’aiuto del corso di

Informatica Forense della facoltà di Giurisprudenza dell’Università degli Studi di Bologna.

Questa distribuzione è tutt’oggi utilizzata durante le ore di laboratorio del corso di

Informatica Forense nell’Università di Bologna ed in molte altre università internazionali

ed enti privati.

È inoltre una delle principali soluzioni impiegate durante l’attività di Digital Forensics di

molte forze dell’ordine.

Oltre ad un numero considerevole di applicazioni e script linux, Deft contiene anche la

suite DART contenente applicazioni Windows (sia open source5 sia closed source) di cui

ancora non esiste un equivalente altrettanto valido nel mondo *nix.

Questo manuale contiene:

una breve descrizione dei principali applicativi che compongono la suite;

alcuni how-to esplicativi.

DEFT è distribuita gratuitamente senza alcuna garanzia di funzionamento.

1 GNU/Linux è un sistema operativo libero di tipo Unix (o unix-like) costituito dall'integrazione del kernel Linux con elementi

del sistema GNU e di altro software sviluppato e distribuito con licenza GNU GPL o con altre licenze libere. Wikipedia 2 Acronimo di Digital Evidence & Forensic Toolkit.

3 Scienza che studia l'individuazione, la conservazione, la protezione, l'estrazione, la documentazione e ogni altra forma di

trattamento del dato informatico al fine di essere valutato in un processo giuridico e studia, ai fini probatori, le tecniche e gli

strumenti per l'esame metodologico dei sistemi informatici. Wikipedia 4 Questo aspetto della distribuzione sarà affrontato in un altro documento.

5 Il termine indica un software i cui autori permettono il libero studio e l'apporto di modifiche da parte di altri

programmatori indipendenti.

Page 11: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

10 Manuale DEFT 7

1.2 Perché DEFT è impiegabile nell'attività di Digital Forensics?

Un software è considerato adatto per l’attività di Digital Forensics quando assicura che la

struttura e i metadati dei file6 o del sistema sottoposto ad analisi non siano alterati e sia in

grado di fornisce gli strumenti idonei a garantire la catena di conservazione del reperto

acquisito7.

In DEFT, a tale scopo, sono state implementate alcune caratteristiche che riducono al

minimo il rischio di alterare il dato sottoposto ad analisi.

Alcune di queste sono:

1. All’avvio, il sistema non utilizza le partizioni di swap presenti nel sistema

sottoposto ad analisi;

2. Non vi sono automatismi di mount delle memorie di massa all’avvio del sistema;

3. Non vi sono automatismi di alcun tipo durante l’attività di analisi delle evidenze;

4. Tutti i software di acquisizione di memorie di massa e di traffico su rete IP non

alterano l’integrità del dato sottoposto ad acquisizione.

6 RFC 3227: “Minimise changes to the data as you are collecting it. This is not limited to content changes; you should avoid

updating file or directory access times.”

7 Art. 247 comma 1bis con modifiche apportate dalla ratifica della Convenzione di Budapest nella L. 18 marzo 2008, n. 48:

“[…] adottando misure tecniche dirette ad assicurare la conservazione dei dati originali e ad impedirne l’alterazione”

Page 12: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

11 Manuale DEFT 7

Capitolo 2: Requisiti di sistema

2.1 DEFT

Per l’utilizzo delle funzionalità di DEFT, è sufficiente avviare con il CDROM o penna USB di

DEFT Linux un qualsiasi sistema dotato delle seguenti caratteristiche:

Lettore CD/DVD-rom o porta USB da cui il BIOS supporti il boot.

Una CPU x86 (Intel, AMD o Citrix) 166 Mhz o superiore per eseguire DEFT Linux in

modalità testuale, 200Mhz per eseguire DEFT Linux in modalità grafica;

64 Mbyte di memoria RAM per eseguire DEFT Linux in modalità testuale o 128 per

la modalità grafica.

Sono inoltre supportate le nuove architetture Apple con processori Intel.

2.2 DART

La suite DART può essere eseguita in tutti i sistemi Microsoft Windows a 32bit. Nelle

versioni a 64bit sono state riscontrate alcune piccole limitazioni per alcuni tool che non ne

garantiscono il totale supporto.

DART può essere eseguita direttamente in DEFT Linux mediante l’utilizzo di Wine8.

8 Wine è un framework per Linux che permette l’esecuzione di applicativi Windows che possono essere installati o avviati

direttamente all’interno di una distribuzione Linux (www.winehq.org)

Page 13: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

12 Manuale DEFT 7

Capitolo 3: Elenco delle applicazioni

3.1 DEFT Linux

sleuthkit 3.2.3

autopsy 2.24

dff 1.2

ptk forensic 1.0.5

maltego CE

keepNote 0.7.6

hunchbackeed file carver 0.6

findwild 1.3

bulk extractor 1.2

emule forensic 1.0

dhash 2.0.1

libewf 20120304

aff lib 3.6.14

disk utility 2.30.1

guymager 0.6.5-1

dd rescue 1.14

dcfldd 1.3.4.1

dc3dd 7

foremost 1.5.6

photorec 6.13

mount manager 0.2.6

scalpel 2

wipe 0.21

hex dump

outguess 0.2

sqlite database browser 2.0b1

bitpim 1.0.7

bbwhatsapp database converter

dropbox reader

iphone backup analyzer 10/2012

iphone analyzer

creepy 0.1.9

xprobe2 0.3

xmount 0.4.6trID 2.11 DEFT edition

readpst 0.6.41

chkrootkit

rkhunter 1.3.8

john 1.7.8

catfish

pasco 1.0

md5sum

sha1sum

sha224sum

sha256sum

sha512sum

md5deep

sha1deep

sha256deep

pdfcrack cracking tool

fcrackzip cracking tool

clam antivirus 0.97.3

mc 4.7.0.9

dmraid

testdisk 6.11

ghex, light gtk hex editor

vinetto 0.6

xplico 1.0 DEFT edition

wireshark 1.6

Page 14: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

13 Manuale DEFT 7

ettercap 0.7.3

nmap 5.21

hydra 7.1

log2timeline 0.60

rifiuti2

wine 1.3.28

mobius forensic

3.2 DART 1.0

WinAudit 2.28.2

MiTeC

Windows Registry Recovery 1.5.1.0

Zeroview 1.0

FTK Imager 3

Nigilant32 0.1

Windows Forensic Toolchest 3.0.05

MoonSols Win32dd 1.0.2.20100417

MoonSols Win64dd 1.0.2.20100417

Windows File Analyzer 1.0

UltraSearch 1.40

Pre-Search xx.08

XnView 1.97.8

X-AgentRansackk 2010 (build 762)

Index.dat Analyzer 2.5

AccessEnum 1.2

Autoruns 10.03

DiskView 2.4

Filemon

Process eXPlorer 12.04

RAM Map 1.1

Regmon

Rootkit Revealer 1.71

VMMap 2.62

WinObj 2.15

AlternateStreamView 1.15

ChromeCacheView 1.25

CurrPorts x86 e x64 1.83

CurrProcess 1.13

FoldersReport 1.21

IE Cache View 1.32

IE Cookie View 1.74

IE History View 1.50

Inside Clipboard 1.11

Live Contacts View 1.07

Mozilla Cache View 1.30

Mozilla History View 1.25

Mozilla Cookie View 1.30

Opened File View 1.46

Opera Cache View 1.37

Outlook Attack View x86 e x64 1.35

Process Activity View x86 e x64 1.11

Recent File View 1.20

Regscanner x86, x64 e win98 1.82

ServiWin 1.40

MUI Cache View 1.01

MyEventView 1.37

SkypeLogView 1.15SmartSniff x86 e x64

1.71

StartupRun 1.22

MyLastSearch 1.44

Mozilla Cookie View 1.30

Opened File View 1.46

Opera Cache View 1.37

Page 15: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

14 Manuale DEFT 7

Outlook Attack View x86 e x64 1.35

Process Activity View x86 e x64 1.11

Recent File View 1.20

Regscanner x86, x64 e win98 1.82

ServiWin 1.40

USBdeview x86 e x64 1.80

User Assist View 1.01

User Profile View 1.01

Video Cache View 1.78

WhatInStartup 1.25

WinPerfectView 1.10

Password Tool

ChromePass 1.10

Dialupass 3.10

IE PassView 1.20

LSA Secrets Dump x86 e x64 1.21

LSA Secrets View x86 e x64 1.21

Mail PassView 1.65

MessenPass 1.35

Network PassRecovery x86 e x64 1.30

Opera PassView 1.01

PasswordFOX 1.25

PC AnyPass 1.12

Protected Pass View 1.63

PST Password 1.12

Remote Desktop PassView 1.01

VNC PassView 1.02

Win9x Passview 1.1

WirelessKeyView x86 e x64 1.34

AViScreen Portable 3.2.2.0

Hoverdesk 0.8

File Restore Plus 3.0.1.811

WinVNC 3.3.3.2

TreeSizeFree 2.40

PCTime

LTFViewer 5.2

Sophos Anti-Rootkit 1.5.4

Terminal with tools command line

Spartakus 1.0

Testdisk 6.11.3

Photorec 6.11.3

Page 16: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

15 Manuale DEFT 7

Capitolo 4: Avviare DEFT Linux live DVD

4.1 Verificare l’integrità dell’immagine di DEFT scaricata da Internet

Trattandosi di una distribuzione destinata ad attività di computer forensics è buona

norma, prima di masterizzare il file scaricato da internet, verificare che corrisponda

esattamente a quello presente online.

La verifica può esser fatta tramite il calcolo del valore hash MD59 sull’immagine o

sull’archivio scaricato e il successivo confronto con i valori presenti nel file md5.txt

presente nella root della directory di download.

DEFT/DART: Directory di download

Ad esempio, nel caso del file “deft7.iso”, il calcolo dell’hash MD5 deve dare come risultato

lo stesso indicato all’interno del file md5.txt, un valore del tipo

“d98307dc53ca83358a2dfdb33afc2672”.

Per calcolare il valore hash MD5 di un file è possibile utilizzare diversi tool: ad esempio

md5summer10 o hashmyfiles11 (su Windows) o il tool a linea di comando md5sum per

Linux/MacOS.

Se l’hash del file scaricato non coincide con quello presente sul sito wew può significare

che il file, seppure di dimensione uguale a quello online, presenta errori dovuti a problemi

nello scaricamento o corruzione di una o più parti.

9 http://it.wikipedia.org/wiki/MD5

10 http://www.md5summer.org/

11 http://www.nirsoft.net/utils/hash_my_files.htm . Il programma è già incluso in DART.

Page 17: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

16 Manuale DEFT 7

4.2 Masterizzare DEFT Linux su un supporto ottico

DEFT 7 Linux, nella versione destinata all’utilizzo Live su macchine fisiche, viene distribuita

sotto forma di un’immagine ISO che, per poter essere utilizzata, è necessario masterizzare

su un supporto ottico – nel caso di DEFT 7 su un DVD12.

Per masterizzare un’immagine ISO è sufficiente utilizzare un qualsiasi programma di

masterizzazione, seguendo le procedure che possono variare da programma a

programma.

Le immagini ISO sono una sorta di “fotografia” dell’intero filesystem (in realtà degli interi

filesystem, poiché ne può essere presente più di uno) contenuto all’interno del supporto.

Si può pensare a una sorta di “copia forense” del CD/DVD. Come tale, il file ISO deve

essere masterizzato riapplicando in un certo senso la “fotografia” su un supporto, così

come si farebbe con un’immagine DD/RAW di un disco del quale si vuole fare una copia

avviabile da un nuovo supporto.

La masterizzazione d’immagini ISO è possibile con quasi tutti i software di

masterizzazione13, semplicemente selezionando la voce riguardante le immagini.

ImgBurn permette di scrivere file immagine su disco

12 Data la loro dimensione ridotta, DEFT 6 e precedenti potevano essere masterizzate anche su CD .

13 Su Windows suggeriamo di utilizzare, per comodità, i tool gratuiti Imgburn o Infrarecorder. Su Linux il software di

masterizzazione K3B ha le funzionalità necessarie per poter masterizzare file immagine. In Mac OS è sufficiente, invece,

utilizzare l’applicazione Disk Utility.

Page 18: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

17 Manuale DEFT 7

In rete sono disponibili migliaia di link e howto che illustrano in dettaglio le modalità di

scrittura di immagini ISO su CD/DVD con i più disparati sistemi operativi.

4.3 Creare una penna USB avviabile contenente DEFT Linux

In alternativa all’utilizzo di un supporto ottico, è possibile creare una penna USB

contenente DEFT Linux e avviabile come se fosse un Live CD/DVD (sui PC che supportano

l’avvio da periferica USB).

Ci sono diversi modi di creare periferiche di archiviazione di massa USB contenenti DEFT

Linux Live. Per sistemi Windows, Linux e Mac consigliamo l’utilizzo dell’applicazione

gratuita universale UNetBootin14.

Essa permette di eseguire l’operazione di scrittura, selezionando semplicemente

l’immagine ISO da riversare su penna USB e la lettera di sistema acquisita dalla penna

USB.

Consigliamo di formattare la chiavetta USB con filesystem FAT32, impostando

possibilmente una “volume label” tale da ricordarvi, in futuro, quale distribuzione e quale

versione è presente nella chiavetta.

Preparazione della penna USB

14 http://unetbootin.sourceforge.net/

Page 19: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

18 Manuale DEFT 7

Avviate il programma UNetbootin – non richiede installazione – e, abilitando il radio

button “Diskimage”, selezionate il file ISO che volete convertire in Live USB avviabile,

scegliendo la lettera della chiavetta USB che desiderate utilizzare.

UNetbootin: Schermata principale

Al termine dell’operazione di scrittura otterrete una versione Live USB che potrà essere

utilizzata per avviare DEFT Linux su qualsiasi PC in grado di supportare l’avvio da porta

USB, funzionalità ormai peraltro diffusa su quasi tutte le più recenti macchine.

4.4 Impostazione del BIOS e/o del Boot Selection Popup/Menu

È importante assicurarsi che il BIOS del sistema da analizzare sia impostato per l’avvio da

CDROM/DVDROM/BDROM o da memorie di massa esterne (in base al supporto in cui è

presente DEFT). In caso contrario configurate il BIOS, salvate e riavviate il sistema con il

dvd già inserito nel lettore cd/dvd o con la penna USB già collegata15.

Si consiglia, in ogni caso, di modificare l’ordine di avvio delle periferiche direttamente nel

BIOS per evitare che un riavvio accidentale della macchina (ad esempio dovuto a sbalzi di

corrente) provochi il boot del sistema operativo originario.

15 In genere, durante l’avvio è indicato il tasto da premere per visualizzare il boot meu, spesso chiamato “Boot Selection

Popup” o “Boot Device Menu”. I tasti solitamente dedicati al Boot Menu sono F8, F9 e F12, ma in alcune architetture il

menù di avvio può anche essere richiamato dal tasto ESC.

Page 20: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

19 Manuale DEFT 7

4.5 Parametri di avvio di DEFT

Avviato il boot loader di DEFT, ci si trova di fronte ad una schermata con diverse opzioni di

avvio. La prima scelta che è richiesta riguarda la lingua dell’interfaccia di DEFT16.

Scelta della lingua

Una volta selezionata la lingua, è possibile utilizzare le frecce su/giù per spostarsi nel

menù a tendina. Tramite i tasti funzione è possibile impostare ulteriori parametri quali:

Help (F1)

Lingua (F2)

Tastiera (F3)

Modalità (F4)

Accessibilità (F5)

Altre opzioni (F6)

Il tasto funzione F6 permette di personalizzare alcuni parametri di avvio di DEFT,

scegliendo tra alcuni pre-impostati sul menù e potendone aggiungere altri in base alle

proprie necessità.

16 Richiamabile con il tasto F2 nella finestra di impostazioni di avvio

Page 21: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

20 Manuale DEFT 7

I parametri del kernel accesibili premendo il tasto F6 sono:

acpi=off

Al boot non sono utilizzate le funzioni ACPI per la gestione dell’energia

elettrica usata dal proprio sistema. Utile in caso di problemi ad avviare la

live, nel caso in cui il PC non supporti ACPI oppure se l’implementazione

ACPI crea problemi di reboot o blocchi di sistema.

noapic Disabilita il controller interrupt APIC (Advanced Programmable Interrupt

Controller).

nolapic Disabilita la funzione APIC per le architetture basate su CPU Intel.

edd=on Abilita l’Enhanced Disk Drive.

nodmraid Disabilita l’opzione del kernel dmraid per i raid di tipo software.

vga=xxx

Setta la risoluzione del framebuffer se la scheda video è in vesa mode. È

possibile scegliere tra le seguenti modalità:

In rosso i parametri deprecati, in nero i parametri che non hanno

riscontrato alcun problema di funzionamento. Per maggiori informazioni

sui parametri modificabili al boot, è possibile consultare l’Appendice 1.

nomodeset

Per eseguire il boot di DEFT Linux su un Mac Book Air è necessario

aggiungere il paramentro nomodeset17 al boot. Tale parametro permette

di gestire correttamente i driver video e di poter usare il sistema senza

alcun problema di visualizzazione delle schermate.

17

Tratto da www.kernel.org/doc/Documentation/kernel-parameters.txt

This is a kernel boot option that tells the kernel not to enable kernel mode setting (KMS). Video support is usually a

combination of a drm kernel driver and a Xorg driver working together. KMS is used with Intel, Nouveau, and Radeon kernel

modules. KMS is required for Intel and Nouveau, and optional for Radeon (although, with different features).

If you want to use the vesa Xorg driver, and you have hardware that uses the Intel, Nouveau, or Radeon kernel

modules, you may need to boot with nomodeset, or blacklist the matching module, or just delete the module. The modules

will be found in /lib/modules/<kernel-version>/kernel/drivers/gpu/drm/

Page 22: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

21 Manuale DEFT 7

toram

Impone (quando possibile) il caricamento dell’intera immagine di DEFT in

RAM, permettendo la rimozione del DVD o della penna USB. La velocità di

esecuzione è incrementata notevolmente poiché non si rendono più

necessarie operazioni di lettura da disco o da flash. È Inoltre possibile

utilizzare il lettore DVD per eventuali acquisizioni forensi (ad esempio

tramite guymager18) oppure per masterizzare dati (ad esempio tramite il

programma di masterizzazione xfburn19 presente nel menù “Sound &

Video”). Il parametro “toram” viene attivato solo se la memoria RAM

presente è sufficiente per contenere l’immagine del DVD/USB DEFT20. La

distribuzione DEFT 7 occupa circa 1.4GB, consigliamo quindi di avviarla in

modalità “toram” soltanto quando il PC dispone di almeno 2GB di

memoria. La distribuzione DEFT 6, invece, occupa soltanto 700MB, è

quindi avviabile in modalità “toram” anche su PC che possiedono soltanto

1GB di memoria.

Per selezionare i parametri del kernel mostrati sul menù, premere la barra spaziatrice o il

tasto INVIO in corrispondenza di quelli prescelti: una ‘X’ verrà inserita a confermare

l’aggiunta al kernel.

Nel caso in cui si desideri specificare ulteriori parametri del kernel, dopo aver premuto F6

premere il tasto “ESC” per far scomparire il menù e visualizzare sullo sfondo la riga di

avvio del kernel dove potete digitate direttamente il o i parametri prescelti mantenendoli

separati tra di loro con degli spazi.

18 http://guymager.sourceforge.net/

19 http://www.xfce.org/projects/xfburn

20 Si raccomanda in ogni caso di lasciare una parte di RAM libera per le normali attività del sistema

Page 23: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

22 Manuale DEFT 7

4.6 Installazione di DEFT Linux 7

Dalla release 7 DEFT può essere installata su qualsiasi sistema x86.

Di seguito sono riportati i requisiti del sistema minimi e consigliati per l’installazione:

Requisiti minimi

CPU x86 200Mhz

128 MB di memoria RAM

Disco rigido da 20 GB

Scheda Video Vesa compatibile

16MB

Scheda di rete 10/100

Interfacce USB 2.0

Lettore DVD

Requisiti ottimali

CPU Intel dual core

2GB di memoria RAM

Disco rigido SATA da 500 GB

Scheda Video intel con memoria

dedicata

Scheda di rete 10/100/1000 -

WiFi N

Interfacce USB 3.0 ed e-sata

Lettore DVD

L’installazione del sistema avviene tramite una procedura guidata standard in cui l’utente

deve rispondere ad alcune domande. L’operazione dove è richiesta maggior attenzione è il

partizionamento della memoria di massa che ospiterà il sistema.

Nonostante le esigenze cambino sulla base dell’esperienza e il modo di lavorare

dell’operatore, ci permettiamo di dare alcuni suggerimenti sul come ottenere

un’installazione ottimale:

Riservare al sistema almeno 20GB di memoria;

Partizionare il disco secondo le proprie esigenze creando una partizione di SWAP

con un livello di swappiness21 pari a 10. in questo modo si ridurranno i

rallentamenti improvvisi dovuti all’utilizzo della partizione di swap23;

Creare un utente durante l’installazione ricordandosi però di utilizzare DEFT Linux

sempre con l’account root per evitare problemi dovuti alla richiesta di permessi

da parte alcuni applicativi;

o Per abilitare l’account root impostandone la password digitare il comando

“sudo passwd” e rispondete alle domande;

o Per diventare root digitare “sudo su -” (verrà richiesta la propria

password) oppure “su –“ (verrà richiesta la password di root);

21 Per maggiori informazioni https://help.ubuntu.com/community/SwapFaq

23 Nel caso in cui il computer sia dotato di più di 4GB di RAM, potrebbe essere considerata una soluzione il non creare una

partizione di SWAP: in questo modo si eviteranno rallentamenti improvvisi dovuti all’utilizzo della partizione di swap.

Page 24: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

23 Manuale DEFT 7

Non rimuovere PER ALCUN MOTIVO il freezing sull’aggiornamento di alcuni

pacchetti volutamente bloccato: sono parte di un processo di personalizzazione di

tutti i meccanismi di protezione delle memorie di massa collegate al sistema.

Page 25: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

24 Manuale DEFT 7

Capitolo 5: DEFT Linux text mode

Completata la fase di boot, il sistema presenta la sessione ad interfaccia testuale (con sei

terminali accesibili tramite la combinazione di tasti ALT + F1 -> ALT + F6) con una shell

bash dotata di permessi di root24.

DEFT: sessione ad interfaccia testuale

5.1 Gestione delle memorie di massa

DEFT, anche in versione live, supporta le memorie di massa ed i filesystem più diffusi.

Come già accennato DEFT non esegue il mount automatico tipico delle distribuzioni Live

(es. Knoppix, Ubuntu, ecc...) evitando l’alterazione accidentale della memoria di massa

collegata.

Il contenuto di una memoria di massa può essere comunque alterato dall’operazione di

mount eseguita in modalità read/write, azione che DEFT non esegue in automatico.

24 Questa implementazione si rivela molto utile quando si avvia DEFT Linux su computer molto vecchi che non permettono

l’utilizzo ottimale dell’interfaccia grafica oppure per l’utente esperto che preferisce operare direttamente da linea di

comando.

Page 26: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

25 Manuale DEFT 7

5.1.1 Comandi utili

Riportiamo alcuni comandi utili per eseguire operazioni inerenti alla gestione delle

memorie di massa:

fdisk –l: elenca tutte le partizioni e memorie di massa collegate al sistema;

mmls /dev/xxx oppure mmls nomefile.dd: elenca le partizioni presenti nella periferica

o nell’immagine raw indicando l’offset di partenza di ogni partizione e gli spazi non

allocati;

hdparm –Ig /dev/xxx: visualizza le caratteristiche della memoria di massa xxx;

tail –f /var/log/messages: visualizza in tempo reale i messaggi di information,

warning e debug degli eventi che riguardano anche le memorie di massa;

mount: visualizza il tipo di filesystem delle memorie collegate al sistema e la

modalità con la quale sono state montate (read only / read-write);

df –h: visualizza informazioni sulla dimensione dei dispositivi montati e lo spazio

libero.

5.1.2 Mount delle memorie

Il comando mount permette di collegare un file system – presente su in una periferica

oppure in un file memorizzato su disco – a una directory di sistema.

Nel caso in cui si desideri eseguire il mount di un dispositivo quale hard disk, chiavetta

USB, CD/DVD/CDROM, floppy disk, ecc... si utilizzerà come sorgente il device stesso che lo

identifica. Avremo in questo caso:

/dev/fdX25 per i floppy disk (in genere con un solo floppy si ha /dev/fd0);

/dev/hdX per gli hard disk IDE;

/dev/sdX per gli hard disk SATA o le periferiche USB;

/dev/cdrom per i CDROM.

In ambito forense, il mount diretto di un’evidence (quindi di un disco, di una chiavetta

USB, ecc...) deve essere fatto in sola lettura e solo nei casi in cui è realmente necessario26.

In questo modo può essere garantita la totale inalterabilità della memoria.

Il file system selezionato, oltre ad essere composto di un device, può essere contenuto

all’interno di un file memorizzato su disco e contenente il dump o l’immagine forense bit-

25 La X identifica il numero di periferica presente sul sistema, così avremo /dev/sda per il primo disco e /dev/sdb per il

secondo, mentre i numeri che si osservano dopo il device tramite il comando “fdisk –l” (/dev/sda1, /dev/sda2, ecc...)

identificano il numero della partizione all’interno del device.

26 Le best practice indicano chiaramente che non si dovrebbe lavorare mai sulla memoria di massa originale ma sempre e

solo su una copia.

Page 27: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

26 Manuale DEFT 7

stream del device acquisito. Ci troveremo di fronte, in questo caso, a immagini:

nel formato “bit stream image”(dd o raw)27;

nel formato “Encase”(ewf);

nel formato “Advanced Forensic Format”(aff).

5.1.3 Mount di un device (hard disk, penna USB, floppy disk, CDROM, ecc...)

Per eseguire il mount in sola lettura di file system di memorie basterà digitare un

comando di tipo:

mount –t tipo –o opzioni sorgente punto_di_mount

dove

tipo è la tipologia del filesystem, solitamente vfat, ntfs-3g, ext3… ecc., o auto quando

non si è sicuri del tipo di file system28 (se si omette il parametro il mount cerca

autonomamente di riconoscere il tipo di filesystem e in genere ha successo);

sorgente può essere una partizione come ad esempio /dev/hda1 o /dev/sda1;

punto_di_mount è solitamente una directory di /media – che deve essere creata

prima di eseguire il comando di mount29.

Le opzioni di uso frequente (che devono seguire il delimitatore –o nella riga di comando di

mount) sono:

ro - read-only: monta in sola lettura;

rw - read-write: monta in scrittura30;

loop - per montare un file immagine;

noatime - non modifica le date di ultimo accesso;

noexec - non permette l’esecuzione di file;

offset=N - quando si monta il file immagine di un disco (argomento approfondito nel

paragrafo successivo) fornisce il numero di byte da saltare per puntare all’inizio della

partizione logica da montare (recuperabile con mmls o fdisk –lu).

Esempio 1: montare in scrittura una partizione NTFS sulla quale verrà salvato il dump di

un device (risultato di un’acquisizione forense):

mount –t ntfs-3g –o rw /dev/sdb1 /media/dest

27 Spesso il formato bit-stream viene suddiviso in file di dimensione ridotta (2-4 Gbytes l’uno) in modo da poter essere

salvato su filesystem con filesize limit (es. FAT32), in tal caso viene definito split raw.

28 Se omesso in genere il comando mount riesce ad identificare autonomamente il tipo di filesystem.

29 Ad esempio con il comando mkdir /media/nomecartellachevoglio

30 Da usare per la directory dove verra salvata la copia

Page 28: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

27 Manuale DEFT 7

Esempio 2: montare in sola lettura una partizione NTFS di un disco di cui si desidera fare

acquisizione forense, ad esempio per avere un’anteprima dei file in essa contenuti magari

durante un’attività sul campo (è essenziale utilizzare l’opzione -o ro per impedire qualsiasi

scrittura accidentale sul disco):

mount –t ntfs-3g –o ro /dev/sdb1 /media/evidence

5.1.4 Mount di un file immagine DD/RAW

Per eseguire il mount in sola lettura di un file immagine (contenente il dump di un intero

disco, non di una singola partizione) si può utilizzare il seguente comando:

mount –t tipo –o ro,loop,offset=$((512*partition-start)) opzioni file_immagine.dd

punto_di_mount

Le opzioni ed il formato del comando mount sono le stesse indicate nel paragrafo

precedente.

In questo caso però deve essere obbligatoriamente utilizzata una modalità di mount

basata su loop device che “converte” (in modo virtuale, senza quindi andare ad alterare il

sorgente) un file immagine (statico) in un device linux (dinamico), permettendo quindi al

kernel di farne il mount come se si trattasse di un dispositivo vero e proprio.

L’opzione loop permette questo tipo di astrazione e deriva dall’applicazione implicita e

automatica al layer sottostante del comando losetup, tramite il quale è possibile associare

un device loop all’immagine della memoria image.dd.

In questo modo è possibile utilizzare le applicazioni funzionati su device anche su

immagini di memorie di massa.

Se si vuole vuole evitare di inserire -o loop, è necessario far precedere al mount la

creazione di un loop device tramite il comando:

losetup -r /dev/loop0 /media/disco1/dump.dd

Tale loop device sarà utilizzato come se fosse un disco sorgente da montare nella modalità

descritta precedentemente31.

Quindi, potendo utilizzare direttamente l’opzione -o loop si evita di dover creare noi stessi

un loop device che poi dovremmo ricordare di rilasciare tramite il comando “losetup –d

/dev/loop0”.

L’altro parametro essenziale quando si fa il mount di un file immagine contenente

l’acquisizione di un disco intero (e quindi non di una singola partizione) è il valore “offset”.

Tramite l’utility mmls è possibile scoprire l’offset d’inizio di una partizione del disco:

31 Sarà necessario quindi un comando tipo mount –o ro /dev/loop0 /mnt/dest

Page 29: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

28 Manuale DEFT 7

mmls dump.dd

l’output ottenuto sarà simile al seguente:

DOS Partition Table

Offset Sector: 0

Units are in 512-byte sectors

Slot Start End Length Description

00: Meta 0000000000 0000000000 0000000001 Primary Table (#0)

01: ----- 0000000000 0000002047 0000002048 Unallocated

02: 00:00 0000002048 0000032255 0026624000 Unknown Type (0x27)

03: 00:01 0000032256 0086598247 0000204800 NTFS (0x07)

05: ----- 0086598248 0976773167 0000002048 Unallocated

Montiamo la partizione identificata come 03 dall’output di mmls specificando l’offset

moltiplicato per 51232:

mount –t ntfs –o ro,loop,noatime,noauto,noexec,offset=16515072 dump.dd

/media/dest

Invece di eseguire il calcolo dell’offset moltiplicando per 512 il punto di “Start” della

partizione ricavato dal comando mmls, è possibile utilizzare un operatore di calcolo della

shell: inserendo come offset il valore $((512*partition-start)), dove “partition-start” indica

l’offset in byte della partizione che si intende montare (nell’esempio precedente è il

valore 33256).

Avremmo quindi il comando di mount:

mount –t ntfs –o ro,loop,noatime,noauto,noexec,offset=$((512*32256)) dump.dd

/media/dest

Portate a termine le operazioni sulle memorie, prima di scollegare dal sistema la periferica

montata, è necessario eseguire il comando umount:

umount /media/punto_di_mount.

Si è scritto più volte che i comandi citati possono essere utilizzati per eseguire il mount di

un file contenente il dump di un intero disco. Nel caso in cui – raro ma possibile – sia fatto

il dump di una singola partizione, non è necessario utilizzare il parametro “offset” in

quanto l’inizio della partizione coincide con quella del file.

5.1.5 Mount di un file immagine DD/RAW suddiviso in più file (split raw)

Nel caso in cui il file immagine dd/raw (quindi immagine bit-stream o bit-to-bit di un

disco) sia splittato (suddiviso) in più file, è necessario preparare il file su cui si andrà a fare

il comando di mount mostrato nel paragrafo precedente.

32

512 byte è la grandezza di default di un settore che compone una memoria di massa

Page 30: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

29 Manuale DEFT 7

Ipotizziamo di avere un’immagine composta dai file dump.001, dump.002, dump.003,

dump.004 e dump.005. Non possiamo applicare direttamente le azioni illustrate nel

paragrafo precedente, perché non abbiamo in questo caso un solo file immagine su cui

lanciare il comando mount, bensì cinque33.

Per montare file immagini raw suddivisi, in formato split-raw, abbiamo a disposizione tre

possibilità.

Il primo metodo consiste nella concatenazione dei singoli file in un unico file immagine,

riportandoci quindi al caso descritto nel paragrafo precedente di mount di un singolo file

dump.dd. Lo svantaggio evidente è che, in questo caso, lo spazio richiesto per

l’operazione sarà pari a quello occupato dalla somma dei singoli file poiché li copieremmo

concatenandoli in un nuovo file unico34.

Il comando da eseguire è il seguente:

cat dump.* > image.raw

Si ottiene così un unico file image.raw contenente l’intero disco ricavato dalla

concatenazione dei singoli segmenti di immagine.

Su tale file andremo a operare come indicato nel paragrafo precedente.

Il secondo metodo prevede l’utilizzo del comando affuse, della suite Afflib35.

Sarà utilizzato anche in seguito per il mount di immagini nel formato AFF. Con tale

comando creeremo una sorta d’immagine “virtuale” (quindi visibile dal sistema ma non

esistente nella realtà36) che sarà montata come descritto nel paragrafo precedente. Il

comando da eseguire, dopo aver creato la directory /mnt/raw, sarà:

affuse dump.001 /mnt/raw

Tale comando produrrà, all’interno della directory /mnt/raw, un file “virtuale” contenente

l’immagine dd/raw composta dalla concatenazione dei vari file che la compongono nella

realtà. Tale file sarà visibile con il nome dump.001.raw e sarà utilizzabile come parametro

del mount visto nel paragrafo precedente.

mount –t ntfs ro,loop,noatime,noauto,noexec,offset=16515072

/mnt/raw/dump.001.raw /media/dest

Va ricordato che, quando prepariamo il mount tramite il comando affuse, è necessario

smontare oltre alla partizione montata anche il file “virtuale” contenente l’immagine,

tramite il comando:

33 Nella realtà, nel caso di acquisizioni di grossi dischi, il numero salirà a decine o centinaia.

34 Questa soluzione è illustrata solo a scopo didattico, poiché in genere si preferisce una delle due seguenti.

35 http://afflib.org/

36 Similmente a quanto accade ai file contenuti nella cartella /proc del filesystem

Page 31: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

30 Manuale DEFT 7

fusermount –u /mnt/raw

Il terzo metodo per montare un’immagine split-raw è quello di utilizzare il tool da linea di

comando xmount37. Similmente a quanto visto con il comando affuse, xmount crea

anch’esso un file virtuale contenente l’immagine composta dalla concatenazione dei

singoli segmenti che la compongono nella realtà.

Il comando in questo caso è:

xmount --in dd --out dd dump. * /mnt/raw

Sarà creato un file “virtuale” nella directory /mnt/raw, denominato “dump” senza alcuna

estensione. Tale file potrà essere montato, come illustrato nel caso precedente,

selezionando l’offset del filesystem desiderato in modalità read-only.

5.1.6 File di tipo EWF/Encase

Il mount di una memoria acquisita in formato EWF è possibile mediante l’applicazione

mount_ewf. Questo programma è in grado di convertire virtualmente i file EWF nel

formato raw permettendo così il mount del device come se fosse una memoria acquisita

in formato dd.

Esempio: la memoria disk01 suddivisa nei seguenti file:

disk01.E01 disk01.E07 disk01.E13 disk01.E19 disk01.E02 disk01.E08 disk01.E14

disk01.E20 disk01.E03 disk01.E09 disk01.E15 disk01.info disk01.E04 disk01.E10

disk01.E16 disk01.E05 disk01.E11 disk01.E17 disk01.E06 disk01.E12 disk01.E18

Tramite il comando

mount_ewf /media /case1/disk01.E* /mnt/raw

è possibile ricostruire lo split ed eseguire la conversione virtuale in formato raw.

L’operazione darà luogo alla creazione del file raw /mnt/raw/disk01, contenuto nella

cartella /mnt/raw/.

Esso sarà visto dal sistema come un unico file dd, anche se virtuale, e potrà essere

montato seguendo la procedura indicata nel paragrafo precedente.

Esempio:

mount –t ntfs –o ro,loop,offset=$((512*63)) /mnt/raw/disk01 /mnt/c

5.1.7 File di tipo AFF

Come per il formato EWF, anche per le memorie acquisite in formato AFF è possibile

eseguire il mount, grazie all’utility affuse. Essa permette di utilizzare acquisizioni in

formato aff come se fossero immagini raw.

37 http://www.forensicswiki.org/wiki/Xmount

Page 32: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

31 Manuale DEFT 7

La sintassi è la seguente:

affuse /media/disk/disk01.aff /mnt/raw

L’output sarà il file /mnt/raw/disk01.aff.raw che potrà essere montato seguendo la

procedura per il mount di immagini raw illustrata in precedenza.

5.2 Calcolo dell’hash

L’hash di un blocco di dati (es. un file) è una sequenza di caratteri alfanumerici di

lunghezza fissa generata da una funzione matematica.

Questa funzione è mono direzionale: dato un hash è impossibile ricostruire il blocco che

lo ha originato.

Qualsiasi modifica dei dati, seppur minima, porterà alla creazione di un hash totalmente

diverso.

All’interno del sistema Linux quest’operazione è possibile mediante l’utilizzo delle

seguenti applicazioni:

md5sum;

sha1sum;

md5, sha1 e sha256 deep;

dhash.

5.2.1 Md5sum

L'acronimo MD538 (Message Digest algorithm 5) identifica un algoritmo crittografico di

hashing realizzato da Ronald Rivest nel 1991 e standardizzato con la Request for

Comments RFC 1321.

Quest’algoritmo, presa in input una stringa di lunghezza arbitraria (ad esempio un file), ne

produce in output un'altra di 128 bit utilizzabile per calcolare la firma digitale dell'input. La

codifica è molto veloce e l'output restituito (noto anche come "MD5 Checksum" o "MD5

Hash") è tale per cui è altamente improbabile che avvenga una collisione (cioè l’esatta

coincidenza) tra gli hash di due file diversi. Infine, come per la maggior parte degli

algoritmi di hashing, la possibilità di risalire alla stringa iniziale partendo dall’hash

prodotto è in pratica nulla, se non per tentativi (forza bruta)39.

Ad esempio per calcolare il valore dell’hash MD5 di un disco si utilizza il comando:

md5sum /dev/sda

38 http://it.wikipedia.org/wiki/MD5

39 La gamma di possibili valori in output è infatti pari a 2 alla 128esima potenza.

Page 33: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

32 Manuale DEFT 7

5.2.2 Sha1sum

Il termine SHA40 indica una famiglia di cinque diverse funzioni crittografiche di hash

sviluppate dal 1993 dalla National Security Agency (NSA) e pubblicate dal NIST come

standard federale dal governo degli USA.

Come ogni algoritmo di hash, lo SHA produce un valore di lunghezza fissa partendo da un

messaggio di lunghezza variabile tramite una funzione non reversibile.

Gli algoritmi della famiglia sono denominati SHA-1, SHA-224, SHA-256, SHA-384 e SHA-

512. Il primo tipo, SHA-1, produce una stringa di soli 160 bit, mentre gli altri producono

digest di lunghezza in bit pari al numero indicato nella loro sigla41.

In questo momento l’algoritmo più diffuso della famiglia SHA e lo SHA-1 ed è utilizzato in

numerose applicazioni e protocolli.

Per calcolare il valore di hash SHA-1, ad esempio di un disco, si utilizza il comando:

sha1sum /dev/sda

5.2.3 Md5 e sha deep

Md5, sha1, sha256 e sha512 deep permettono di calcolare hash di più file ricorsivamente.

Esempio:

md5deep –l /root/evidence/ > hash_device.txt

La sintassi sopra citata calcola l’hash md5 di tutti i file contenuti nella cartella

/root/evidence/ e salva i valori degli hash nel file hash_device.txt

5.2.4 Dhash

Dhash, disponibile in italiano ed in inglese, permette di calcolare gli hash di file e memorie

di massa fornendo in tempo reale informazioni quali il tempo stimato prima del termine

l’operazione e lo stato di avanzamento del calcolo.

Al termine è inoltre possibile generare un report in formato html42.

Da test eseguiti in laboratorio Dhash è risultato essere 10% più veloce rispetto ai tool

precedentemente elencati.

Esempio:

dhash -t -f /dev/sda --md5 --sha1 -l dhashlog.html

La sintassi sopra citata calcola simultaneamente l’hash md5 e sha1 sul device /dev/sda e

ne riporta i valori nel file dhashlog.html.

40 Secure Hash Algorithm - http://it.wikipedia.org/wiki/Secure_Hash_Algorithm

41 Es.: SHA-256 produce un digest di 256 bit.

42 Dhash è inoltre in grado di eseguire allo stesso tempo le operazioni di acquisizione e calcolo del hash.

Page 34: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

33 Manuale DEFT 7

5.3 Acquisizione memorie di massa

Per acquisizione di una memoria di massa s’intende l’operazione che permette una vera e

propria clonazione della memoria fisica oggetto di analisi. All’interno del sistema Linux

quest’operazione è possibile mediante l’utilizzo dei seguenti tool:

dd;

ddrescue;

dcfldd;

dhash.

In aggiunta a questi comandi, il team DEFT ha creato Cyclone: un wizard eseguibile da

terminale per l’acquisizione guidata tramite la semplice risposta alle domande che

appaiono su schermo.

5.3.1 dd

dd prende in input un file o un device e ne restituisce, su un altro file o device, l’esatta

sequenza binaria che lo compone.

Esempio:

dd if=/dev/sda of=/media/diskimage.img

Il comando prende in input la memoria di massa /dev/sda e restituisce come output il suo

clone all’interno del file diskimage.img contenuto nella cartella /media/.

È possibile eseguire l’acquisizione da memoria di massa a file (o viceversa) ma anche da

memoria di massa a memoria di massa43.

Esempio:

dd if=/dev/sda of=/dev/sdb

Si raccomanda di avere la massima attenzione con quest’ultimo commando poiché il

device di destinazione (nell’esempio /dev/sdb) è cancellato e sovrascritto per tutta la

dimensione del device sorgente (nell’esempio /dev/sda).

Ciò significa che se /dev/sda è un hard disk di 60GB e /dev/sdb un disco da 250GB, il

comando sopra riportato andrà a sovrascrivere i primi 60GB del disco destinazione

(/dev/sdb) con l’intero contenuto bit-a-bit del disco sorgente (/dev/sda), rendendo così

completamente irricuperabile quanto ivi contenuto e compromettendo anche i dati

presenti nella parte non sovrascritta del disco.

5.3.2 ddrescue

Come dd, ddrescue permette di clonare il contenuto di un disco riversandolo direttamente

43 Questa è una pratica molto meno usata in campo di computer forensics.

Page 35: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

34 Manuale DEFT 7

in un’altra memoria.

ddrescue rappresenta un’evoluzione di dd: permette, infatti, l’acquisizione di memorie di

massa che presentano errori durante l’accesso a determinati settori del disco.

L’acquisizione tramite ddrescue permette di includere anche quei settori danneggiati che

saranno acquisiti impostando su zero tutti i bit non leggibili in essi contenuti. Durante

l’acquisizione della memoria l’applicazione fornisce aggiornamenti su quanti byte sono

stati letti e scritti, quanti errori di lettura sono stati riscontrati e la velocità di acquisizione

calcolata per byte/s.

Esempio:

ddrescue /dev/sda /media/disco.img

5.3.3 dcfldd

dcfldd è un’altra evoluzione di dd che permette il calcolo dell’hash (sia md5 che sha1,

singolarmente o contemporaneamente) durante l’acquisizione della memoria. Durante le

operazioni di acquisizione sono fornite informazioni dettagliate su quanto è stato letto e

scritto.

Esempio:

dcfldd if=/dev/sda of=/media/disco.img hash=sha1 hash=md5

5.3.4 Dhash

Questo software permette l’acquisizione in formato dd e il calcolo contemporaneo degli

hash.

È risultato più veloce del 10% rispetto agli altri programmi in circolazione.

Esempio:

dhash -t -f /dev/sda --md5 --sha1-o disco.dd

La sintassi sopra citata acquisisce e calcola contemporaneamente l’hash md5 e sha1 del

device /dev/sda riportandone infine i valori nel file dhashlog.html.

Page 36: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

35 Manuale DEFT 7

5.4 Creazione di una time line

Uno degli strumenti più noti per la creazione di time line è mac-time, applicazione della

suite Sleuthkit realizzata da Brian Carrier.

Sono due i comandi principali per generare timeline del filesystem:

fls44 prende come input un file raw derivante dall’acquisizione di un memoria di

massa (sia essa una singola partizione o una raw image di un disco con più partizioni),

e restituisce l’elenco di tutti i file (allocati e non ma di cui comunque il record è

ancora contenuto nella tabella di allocazione del filesystem), da utilizzare

successivamente con mac-time;

mactime45 prende in input un elenco, creato mediante fls, completo dei dati

contenuti all’interno del file system posto ad analisi e fornisce una timeline in

formato ASCII.

5.4.1 fls

È riportato un esempio di come utilizzare fls nel caso in cui l’immagine image-1.dd

contenga un singolo filesystem/partizione46:

fls -z GMT -s 0 -m C: -f ntfs -r /images/disco-c.dd > /workdir/disco-c.body

Nell’esempio, sono stati utilizzati i seguenti parametri:

-z: fuso orario impostato sul sistema in analisi;

-s: disallineamento in secondi dell’ora di sistema con l’ora reale47;

-m: il testo da anteporre al percorso e al nome del file nella timeline48;

-f: il file system della memoria acquisita;

/images/disco-c.dd: l’immagine data come input per l’estrazione della timeline;

/workdir/disco-c.body: il file, in formato bodyfile, contenente la timeline estratta

dall’immagine data in input.

Nel caso in cui l’immagine dd contenga invece più partizioni, è necessario utilizzare il

parametro -o per indicare a fls l’offset in settori (e non in byte, come nel caso del

parametro offset del comando mount) dal quale comincia la partizione in analisi. Per

avere l’elenco delle partizioni e dei relativi valori di offset (espressi in settori e non in

byte), si raccomanda l’utilizzo del comando mml della suite TSK oppure il comando fdisk

44 http://wiki.sleuthkit.org/index.php?title=Fls

45 http://wiki.sleuthkit.org/index.php?title=Mactime

46 Va notata l’assenza del parametro “offset”.

47 Si ricava verificando nel bios, durante l’acquisizione, la differenza tra l’orario di sistema e quello reale.

48 In genere si indica la lettera su cui è montato il drive, quindi “C:”, “D:” e così via.

Page 37: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

36 Manuale DEFT 7

con i parametri “-lu”. Nel caso di un’immagine contenente un disco con una partizione al

settore 63 (in genere le partizioni uniche o la prima partizione cominciano sempre al

settore 63) avremmo quindi:

fls –o 63 -z GMT -s 0 -m C: -f ntfs -r /images/disco-c.dd > /workdir/disco-c.body

A questo punto avremo un file (per comodità con estensione .body) in formato body49,

contenente la timeline del sistema in analisi.

Tale formato non è immediatamente fruibile da parte dell’esaminatore poiché contiene le

date codificate e i record non ordinati. È quindi necessario elaborarlo in modo da renderlo

leggibile, ordinato e nel formato prescelto50.

Riportiamo un estratto di un file body, dal quale si deduce chiaramente la difficoltà

nell’interpretazione del contenuto da parte dell’operatore:

[...]

0|C:/WINDOWS/inf/mdmpin.PNF|4718-128-

3|r/rrwxrwxrwx|0|0|19268|1299255392|1299255392|1299255392|1299257718

0|C:/WINDOWS/inf/mdmpn1.inf|804-128-

3|r/rrwxrwxrwx|0|0|6376|1299257379|1092916800|1299257709|1092916800

0|C:/WINDOWS/inf/mdmpn1.PNF|4717-128-

3|r/rrwxrwxrwx|0|0|10424|1299255392|1299255392|1299255392|1299257718

0|C:/WINDOWS/inf/mdmmod.PNF|4747-128-

3|r/rrwxrwxrwx|0|0|18540|1299255386|1299255386|1299255386|1299257719

0|C:/WINDOWS/inf/mdmmoto.inf|779-128-

3|r/rrwxrwxrwx|0|0|96032|1299257378|1092916800|1299257709|1092916800

[...]

5.4.2 mactime

Mactime è lo strumento della suite TSK che si occupa di convertire le timeline dal formato

body al formato CSV, ordinandone le voci e modificando i parametri di visualizzazione in

base alle necessità dell’operatore.

Solitamente il comando da eseguire è il seguente:

mactime -b /workdir/disco-c.body -z gmt -d > /workdir/disco-c.csv

-b specifica il file da dare in input, -z la time zone, -d > /workdir/disco-c.csv rappresenta il

file di output contenente la time line in formato csv51.

Aspetto da non sottovalutare, il comando mactime ha una funzionalità di reportistica

riassuntiva dell’attività giornaliera ed oraria rilevata sul filesystem, che si va ad aggiungere

alla funzione di conversione in formato CSV e ordinamento dei record generati dal

comando fls. Tale informazione può essere indispensabile per valutare in quali giorni – o

in quali orari – sono rilevabili sul PC attività marcate di utilizzo, evidenziando picchi e

49 http://wiki.sleuthkit.org/index.php?title=Body_file

50 In genere si utilizzerà il formato .CSV per la compatibilità con gli editor e con i fogli di calcolo.

51 È preferibile l’esportazione in formato csv per facilitare la consultazione tramite applicazioni come OpenOffice o Excel.

Page 38: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

37 Manuale DEFT 7

anomalie magari dovute ad attività durante il week-end che in una timeline tradizionale

difficilmente saltano all’occhio.

Per avere un report delle attività su filesystem avvenute giornalmente, è sufficiente

aggiungere i parametri –d –i seguiti dal nome del file in cui si desidera salvare tale report.

L’attività oraria si ottiene, invece, con i parametri –h –i seguiti dal nome del file in cui si

desidera salvare tale report.

Otterremo, in questo modo, un file contenente record simili ai seguenti:

[...]

Wed Oct 12 2011: 801

Thu Oct 13 2011: 987

Fri Oct 14 2011: 252

Sun Oct 16 2011: 25352

Mon Oct 17 2011: 463

Tue Oct 18 2011: 711

[..]

Nell’esempio precedente si può notare che in data 16 ottobre 2011 si sono verificate

25352 attività su file52. Tale valore potrebbe non essere d’interesse ma può, in alcuni

contesti, essere di grande importanza53.

è consigliabile dare verificare la continuità o la media dei valori durante la maggior parte

dei giorni analizzati, che si attesta magari su un determinato valore (es. <1000), e

raggiungere, come nell’esempio, picchi di decine di migliaia in un giorno specifico.

L’operatore dovrebbe procedere, a questo punto, ad analizzare più in dettaglio la timeline

del giorno in cui è stata rilevata l’anomalia54.

La tabella seguente è utile per interpretare il significato dei valori che appaiono nella

colonna “Activity Type”. Essi indicano le azioni compiute su file e cartelle in un

determinato arco temporale.

52 Si intende accesso, creazione o modifica di file a livello di entry MFT o di file.

53 Ad esempio, se il PC in analisi è un asset di un’azienda in cui l’attività lavorativa avviene dal lunedì al venerdì,

l’investigatore dovrebbe approfondire il motivo per cui un’attività così elevata si sia verificata di domenica.

54 Eseguendo ad esempio nuove analisi del registro, inserimento di penne USB, avvio di programmi, creazione di file LNK,

ecc.

Page 39: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

38 Manuale DEFT 7

Vediamo ora un esempio di risultato dell’elaborazione di un file in formato body generato

dal comando mactime:

[…]

Fri Mar 04 2011 16:08:04 618605 .ac. r/rrwxrwxrwx 0 0 10618-128-1

C:/WINDOWS/system32/dllcache/fp4autl.dll

Fri Mar 04 2011 16:08:11 17672 ...b r/rrwxrwxrwx 0 0 10624-128-4

C:/WINDOWS/Prefetch/IMAPI.EXE-0BF740A4.pf

Fri Mar 04 2011 16:11:20 3014 ...b r/rrwxrwxrwx 0 0 10630-128-3

C:/WINDOWS/system32/wbem/Logs/wmiadap.log

Fri Mar 04 2011 16:11:29 10296 ..cb r/rrwxrwxrwx 0 0 10631-128-3

C:/WINDOWS/system32/drivers/ASUSHWIO.SYS

[…]

5.5 Creazione di una supertimeline

Le timeline, così come illustrate al paragrafo precedente, sono molto utili ma limitate alle

attività rilevate sul filesytem55. Oltre ai timestamp riguardanti i file, sono numerosissimi i

metadati presenti sul sistema in analisi che possono essere integrati con la timeline del

filesystem56.

Gli strumenti per generare questo genere di “timeline arricchite”57 sono già inclusi in deft.

Anche in questo caso il punto di partenza è l’immagine di un disco o un disco stesso, così

come avviene per le timeline tradizionali realizzate tramite fls + mactime (o l’interfaccia

grafica Autopsy).

Lo strumento specifico che utilizzeremo è log2timeline58, framework scritto da Kristinn

Gudjonsson e al cui sviluppo dei plugin ha collaborato l’intera comunità scientifica.

Log2timeline lavora elaborando (parsing), in modo ricorsivo, i file contenuti in una

partizione montata con alcuni parametri specifici, per permettere l’accesso ai metadati

del filesystem. In particolare, i metadati che log2timeline è in grado ad oggi di elaborare

ed inserire in una supertimeline sono elencati in questo elenco di input modes:

1. Apache2 Access log;

2. Apache2 Error log;

3. Google Chrome history;

4. Encase dirlisting;

5. Windows Event Log files (EVT);

6. Windows Event Log files (EVTX);

55 Quindi limitate alle mere operazioni di creazione, modifica o accesso dei file.

56 Alcuni esempi: i log di visite del browser, le modifiche alle chiavi di registro del sistema, i log degli antivirus, l’attività del

registro di sistema, i file link in formato LNK, i prefetch ecc.

57 Nel gergo forense si indicano ormai con il termine di “supertimeline”.

58 http://log2timeline.net

Page 40: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

39 Manuale DEFT 7

7. EXIF;

8. Firefox bookmark;

9. Firefox 2 history;

10. Firefox 3 history;

11. FTK Imager Dirlisting CSV file;

12. Generic Linux log file;

13. Internet Explorer history file, parsing index.dat;

14. Windows IIS W3C log file;

15. ISA server text export;

16. Mactime body file;

17. McAfee AntiVirus Log;

18. MS-SQL Error log;

19. Opera Global and Direct browser history;

20. OpenXML metadata (Office 2007);

21. PCAP files;

22. PDF;

23. Windows Prefetch directory;

24. Windows Recycle Bin (INFO2 or I$);

25. Windows Restore Point;

26. Safari Browser history file;

27. Windows XP SetupAPI.log file;

28. Adobe Local Shared Object file (SOL/LSO), aka Flash Cookies;

29. Squid Access Logs (httpd_emulate off);

30. TLN (timeline) body file;

31. UserAssist key of the Windows registry;

32. Volatility (psscan e psscan2 output);

33. Windows Shortcut files (LNK);

34. Windows WMIProv log file;

35. Windows XP Firewall Log file (W3C format).

La supertimeline può essere salvata in diversi formati. Il più utilizzato è il formato CSV59,

interpretabile dai più disparati fogli di calcolo e visualizzabile/modificabile anche

59 https://it.wikipedia.org/wiki/Comma-separated_values

Page 41: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

40 Manuale DEFT 7

semplicemente tramite editor testuali.

L’elenco completo degli output modes nei quali è attualmente possibile esportare l’elaborazione della supertimeline è il seguente:

BeeDocs;

CEF;

CFTL;

CSV;

Mactime;

SIMILE;

SQLite;

TLN;

TLNX.

Il primo passo per generare una supertimeline è, come già scritto, l’avere l’immagine raw

contenente la partizione da esaminare. Si può utilizzare un device (es. /dev/sda), un file

immagine dd/raw oppure ancora file EWF, AFF o split raw convertiti come spiegato nei

paragrafi precedenti.

Ipotizziamo di avere un file image.dd contenente l’immagine del disco che intendiamo

analizzare. La prima cosa è montare, nelle modalità precedentemente indicate, le

partizioni di cui intendiamo ottenere una supertimeline.

Decidiamo di voler analizzare l’unica partizione NTFS del disco posizionata all’offset 63 e

identificata dalla lettera C: in Windows.

Eseguendo il comando:

mount -o ro,loop,show_sys_files,streams_interface=windows,offset=$((512*63))

/mnt/raw/img.dd /mnt/c

Il disco C: sarà montato nella directory /mnt/c da dove eseguiremo il programma

log2timeline:

log2timeline -p –f winxp -r -z Europe/Rome /mnt/c/ -m C: -w c-log2t-unsorted.csv

I parametri suggeriti sono i seguenti:

-p: indica a log2timeline di fare un “preprocessing” ricorsivo della directory in

analisi allo scopo di ottenere informazioni utili per i plugin che saranno avviati in

seguito60;

-f: indica il tipo di sistema operativo (e quindi il set di plugin) che si desidera

applicare alla directory passata in input61;

-r: indica a log2timeline di analizzare i file ricorsivamente senza quindi limitarsi

quindi a quelli contenuti nella directory indicata;

-z: indica il fuso orario (timezone) impostato nel PC in analisi62;

-m: indica la stringa da anteporre al percorso e al nome del file nell’output di

generazione della supertimeline, in genere si utilizza per indicare la lettera del

60 Ad esempio può essere ricavato l’hostname della macchina, gli utenti, il browser predefinito, la timezone, ecc.

61 Può essere omesso, indicando quindi a log2timeline di testare tutti i plugin su tutti i file.

62 Può essere ricavato automaticamente tramite il parametro “-p” ma spesso è utile indicarlo manualmente.

Page 42: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

41 Manuale DEFT 7

drive del disco in analisi (es. “C:”, “D:”, ecc.);

-w: indica il file in cui salvare la supertimeline generata in formato CSV.

Risultato dell’operazione è un file CSV contenente le singole voci ricavate dall’analisi dei

diversi artefatti, disposti nell’ordine in cui sono stati analizzati.

è quindi necessario utilizzare un strumento per ordinare le entry, selezionare

eventualmente un periodo di interesse e filtrare, se necessario, contemporaneamente su

parole chiave di interesse.

Lo strumento dotato di queste funzionalità è l2t_process, anch’esso parte del framework

log2timeline.

Per ordinare e visualizzare, ad esempio, l’attività del PC avvenuta nel 2011, registrata nel

file CSV c-log2t-unsorted.csv ci avalleremo del seguente comando:

l2t_process -i -b c-log2t-unsorted.csv -y 2008-01-01..2008-12-31 –k keywords.txt > c-log2t-

2008.csv

Le opzioni interessanti dello script l2t_process sono:

-i: sono inserite in output anche entry fuori dall’intervallo temporale indicato, se

queste contengono informazioni che fanno sospettare attività di

timestomping63;

-y: forza il formato delle date in yyyy-mm-dd piuttosto del predefinito mm-dd-

yyyy;

-b: indica quale file deve essere analizzato dallo script;

-k: indica il file contenente le parole chiave a cui siamo interessati, escludendo

dall’output i record che non le contengono.

Il risultato dell’esecuzione di log2timeline e l2t_process sarà un lungo elenco di attività

rilevate su filesystem64 e dai metadati ricavati dai tipi di file indicati in precedenza

(registro, eventi, link, browser history, ecc...).

63 Es. MFT record con valore 0 sui millisecondi.

64 Nel caso di NTFS avremo voci ricavate dalla tabella MFT.

Page 43: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

42 Manuale DEFT 7

Le colonne del file avranno l’intestazione seguente:

1. Date

2. Time

3. Timezone

4. MACB

5. Source

6. Sourcetype

7. Type

8. User

9. Host

10. Short

11. Desc

12. Version

13. Filename

14. Inode

15. Notes

16. Format

17. Extra

A questo punto la difficoltà sarà nel filtrare le migliaia, a volte centinaia di migliaia, di voci

per concentrarsi su quelle rilevanti.

Da linea di comando, il programma grep può fornire un valido aiuto per escludere o, a

posteriori, includere nella lista alcuni tipi di attività.

È altresì possibile importare la supertimeline in un foglio di calcolo65 per filtrare ed

analizzare il contenuto utilizzando le funzionalità tipiche di questo tipo di applicazione.

Una delle categorie principali sulla quale è interessante applicare filtri è quella

concernente il tipo di metadato rilevato, nella colonna 6 Sourcetype. Tra i tipi disponibili

cui avremo interesse a filtrare, ci saranno ad esempio NTFS $MFT, REG, Event Log,

WEBHIST, XP Prefetch, ecc... che ci permetteranno di distinguere tra navigazione internet,

inserimento di penne USB (cercando USBSTOR nei record relativi il registro), apertura file

(NTFS $MFT), o quanto altro di nostro interesse.

5.6 Ricerca file e cartelle

È possibile effettuare ricerche di file e cartelle utilizzando uno dei seguenti strumenti:

locate;

find.

5.6.1 Locate

Locate permette la ricerca di file all’interno di memorie di massa.

Prima è necessario eseguire un’indicizzazione tramite il comando updatedb.

Esempio:

locate finanza –q–i

65 Deft presenta la suite libreoffice che include il foglio di calcolo Calc,

Page 44: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

43 Manuale DEFT 7

Esegue una ricerca, senza distinguere tra maiuscole e minuscole (-i), dei file che

contengono nella propria nomenclatura la parola finanza. Grazie all’opzione -q saranno

segnalati gli errori di accesso a determinate directory del sistema indicandone anche il

motivo (es. errori di tipo “access denied”).

Esempio:

locate “*.png” -q

Esegue una ricerca di tutti i file con estensione png.

5.6.2 Find

Find permette di eseguire la ricerca di file senza alcuna indicizzazione preventiva.

Esempio:

find . -iwholename “*porn*.png”

Ricerca tutti i file che contengono la stringa porn nel nome e che abbiano estensione .png,

senza alcuna distinzione maiuscole e minuscole.

Esempio:

find . -ctime -2 > lista.txt

Trova tutti i file creati negli ultimi 2 giorni e riportandone l’elenco nel file lista.txt

5.7 Carving di file

L’attività di carving consiste nel recupero di file non più referenziati dal file system,

attraverso il riconoscimento di header e footer66 del file. È un procedimento molto lungo

perché il disco è esaminato dal primo all’ultimo bit.

Metaforicamente parlando, possiamo paragonare questo processo di lettura a quello di

un’unità nastro.

5.7.1 Foremost

Foremost permette il recupero di file cancellati direttamente da memorie di massa o,

preferibilmente, da file bit stream image.

Il comando

foremost -o outpdir dump.img

esegue il carving sul file dump.img secondo la configurazione impostata in

/etc/foremost.conf e salva i file estratti nella directory outpdir.

66 Header e footer sono firme che caratterizzano l’inizio e la fine di un determinato tipo di file; nel dettaglio consistono in un

gruppo di valori ottali o esadecimali consecutivi sempre presenti in una certa posizione di un determinato file all'inizio o alla

fine dello stesso.

Page 45: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

44 Manuale DEFT 7

Il comando

foremost -t png -o outpdir dump.img

esegue il carving di tutti i file png sul file dump.img e salva i file estratti nella cartella

outpdir.

Tramite il parametro –t è possibile ricercare i seguenti tipi di file:

jpg

gif

png

bmp

avi

exe

mpg

wav

riff

wmv

mov

pdf

ole

doc

zip

rar

htm

cpp

Page 46: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

45 Manuale DEFT 7

Capitolo 6: DEFT Linux GUI mode

6.1 Introduzione

L’interfaccia grafica di DEFT Linux è basata sul “desktop environment” LXDE (Lightweight

X11 Desktop Environment)67. La scelta del desktop manager è caduta su questo progetto

perchè ad oggi è una delle interfacce grafiche più leggere e perforanti del mondo Linux.

L’utilizzo della modalità grafica è richiesto nei casi in cui si debbano utilizzare programmi

che non nascono per l’utilizzo a riga di comando, come ad esempio, Digital Forensic

Framework (DFF)68 o Catfish.

Dalla versione 6 le applicazioni native per sistemi Microsoft Windows, di cui non esiste un

equivalente altrettanto potente per Linux, sono stati integrate ed emulate direttamente

da DEFT Linux mediante il software Wine69.

Per avviare l’interfaccia grafica di DEFT Linux è sufficiente digitare il comando deft-gui.

67 http://www.lxde.org

68 http://www.digital-forensic.org/

69 http://www.winehq.org/

Page 47: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

46 Manuale DEFT 7

Deft: Linux GUI

Il desktop presenta i seguenti elementi:

1. Directory per la raccolta delle evidenze

2. Procedura per l’installazione di DEFT Linux

3. Terminale dei comandi

4. Menu applicazioni

5. PcmanFM File Manager

6. Gestione lingua tastiera

7. Mostra Desktop

8. Gestione multi desktop

9. Controllo audio del sistema

10. Network manager

11. Data e ora

12. Gestione fuso orario

13. Spegnimento e riavvio sistema

Page 48: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

47 Manuale DEFT 7

DEFT: Linux menu

Nel dettaglio il Menu Applicazioni presenta le seguenti sezioni:

Accessories: Archive Manager, Character Map, Disk Utility, File Manager, Galculator,

Image Viewer, Leafpad, LXTerminal, Truecrypt e Xpad.

DEFT: Analisys tool, Antimalware tools, Carving tools, Hashing tools, Imaging tools,

Mobile forensics, Network forensics, Osint tools, Password recovery, Reporting tools,

Disk utility, File Manager, Gparted, Midnight commander, Mount ewf,

MountManager, Wipe e Xmount.

Graphics: Document viewer.

Internet: Firefox e Sun Java 6 web start.

Services: Apache start, Apache stop, Mysql start, Mysql stop, Samba start, Samba

stop, SSH start, SSH stop, Xplico start, Xplico stop.

Sound & Video: Audacious, Desktop recorder, VLC media player e Xfburn.

Wine.

System tools: Gdebi package installer, Gparted, Printing, Synaptic package manager,

System Profiler and benchmark, Task manager, Time and date, update manager, Users

and groups e Windows wireless drivers.

Page 49: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

48 Manuale DEFT 7

Preferences: Additional drivers, Adobe Flash Player, Customize look, Desktop session

setting, Disk utility, Keyboard and mouse, Language support, Lxkeymap, Monitor

settings, Network connections, Openbox configuration, Preferred applications,

Software sources, Sun Java 6 Plugin control panel e Sun Java 6 Policy tool.

6.2 Gestione della memoria di massa

Come già scritto in precedenza, il sistema non compie alcuna azione ad eccezione del

rilevamento dei device collegati al sistema.

Utilizzando il file manager, tutte le memorie di massa, interne ed esterne, direttamente

collegate al sistema non saranno mai montate in automatico.

Facendo clic con il tasto destro sull'icona della memoria di massa saranno visualizzate le

policy per il mount:

Mount Read Only: permette l’accesso alla memoria di massa in sola lettura

evitando qualsiasi tipo di alterazione dei dati contenuti e della memoria stessa;

Mount Volume: permette l’accesso alla memoria di massa in lettura e scrittura;

Eject volume: permette la rimozione sicura della memoria dal sistema.

Tramite l’applicazione Mount Manager l’operatore potrà definire le policy di mount sulla

base delle sue esigenze operative.

Attività di Mount usando PcmanFMr

Page 50: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

49 Manuale DEFT 7

6.3 Mount manager

Mount manager permette di creare in semplici clic policy di mount avanzate.

Nell’immagine abbiamo riportarto la procedura per eseguire il mount di una memoria di

massa in RO (read only) bloccando qualsiasi azione che possa alterare il file system.

Policy di mount per bloccare le possibili alterazioni al file system

Per eseguire il mount è necessario associare una directory esistente ad una partizione

della memoria assicurandosi che siano stati configurati i parametri noatime, noauto, ro,

noexec che garantiscono che la memoria di massa non sia alterata durante l’utilizzo. Solo

in questo modo sarà possibile accedere al file system in sola lettura e usarlo senza

aggiornare l’inode access time70.

Con Mount Manager è possibile eseguire anche il mount di file di acquisizioni in formato

dd e di file system di rete come Samba (Windows share) e NFS.

70 Informazione temporale di ultimo accesso ad una risorsa del file system

Page 51: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

50 Manuale DEFT 7

6.4 Calcolo dell’hash

Dhash è l’unico strumento in DEFT Linux dedicato al calcolo di hash in modalità grafica.

dhash: Calcolo dell’hash di un device

Avviato il programma, fate clic su open device per scegliere una memoria di massa o su

Open file per selezionare un file.

Indicate la tipologia di hash da calcolare (md5, sha1 od entrambi) e fate clic su Starts.

Una volta terminata l’operazione è possibile salvare un report html dei risultati facendo

clic su save log.

6.5 Acquisizione di memorie di massa

Come già indicato, in DEFT Linux è possibile acquisire memorie di massa anche tramite

interfaccia grafica utilizzando Dhash o Guymager. Il primo è adatto per le acquisizioni in

formato dd, mentre il secondo è caldamente consigliato per le acquisizioni in parallelo ed

in formato ewf.

Page 52: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

51 Manuale DEFT 7

6.5.1 Dhash

In Dhash, la procedura per l’acquisizione è simile a quella per il calcolo dell’hash.

Selezionate il device da acquisire facendo clic su open device e poi su Acquire.

Potete inoltre decidere di acquisire e comprimere in formato gz spuntando la casella

Compress e/o scegliere se eseguire il calcolo del o degli hash.

Acquisizione con calcolo simultaneo degli hash md5 e sha1

Premendo il pulsante Starts è avviata l’acquisizione.

Al termine delle attività, è possibile salvare un report in formato html facendo clic sul

pulsante Save log.

Page 53: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

52 Manuale DEFT 7

6.5.2 Guymager

Guymager permette una gestione più avanzata delle acquisizioni rispetto a Dhash.

Guymage: Gestione caso per la fase di acquisizione

Guymager permette, oltre all’acquisizione simultanea di più memorie di massa, anche

l’inserimento di informazioni quali:

Codice caso;

Catalogazione dell’evidence;

Nome dell’operatore che sta compiendo le operazioni;

Descrizione dell’oggetto che si sta acquisendo.

Il programma supporta tutti i principali formati di acquisizione (dd, aff ed encase) e

permette di eseguire il controllo d’integrità, tramite verifica dell’hash md5 o sha256, sia

dell’immagine creata sia del device originale (anche su immagini “splittate”).

Per avviare il processo di acquisizione in Guymager fate clic con il tasto destro del mouse

Page 54: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

53 Manuale DEFT 7

sulla memoria di massa da clonare e selezionare la funzione Acquire image.

Nella finestra Acquire Image è possibile indicare numerosi parametri dell’acquisizione o

della gestione del caso.

6.6 Ricerca di file e cartelle

6.6.1 Catfish

Catfish permette di compiere le stesse operazioni che si possono eseguire a riga di

comando tramite i comandi find e locate.

Nell’esempio riportato nell’immagine, selezionata la memoria o la cartella dove compiere

la ricerca, è stata lanciata una ricerca di tutti i file aventi estensione JPG scrivendo nel

campo di ricerca *.jpg. Una volta terminata la ricerca è possibile aprire i vari file elencati

con un semplice doppio clic.

Catfish: Ricerca di file

Nella finestra sono riportate anche ulteriori informazioni dei file riguardanti la data

dell’ultima modifica, il percorso del file e la sua dimensione sul disco.

Page 55: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

54 Manuale DEFT 7

6.7 Findwild

Findwild è un programma che permettere di ricercare parole all’interno di file.

Specificando la directory d’interesse e le parole chiave, è possibile ottenere un elenco dei

file contenenti le chiavi di ricerca.

Findwild: Ricerca di contenuti

Page 56: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

55 Manuale DEFT 7

6.8 Carving di file da GUI

Hunchbacked 4most (H4m), disponibile in italiano e inglese, è un’interfaccia grafica per la

gestione delle principali funzioni di foremost e scalpel.

Tramite H4m, una volta scelto il programma da impiegare come file carver, è possibile

eseguire il carving con alcuni semplici clic.

Hunchbacked 4most: Carving di file con Foremost

H4m, una volta indicati il file o il device in cui eseguire la ricerca e la cartella dove

memorizzare i file recuperati, ricerca e salva tutti i file con header e footer specificati

dall’operatore.

Page 57: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

56 Manuale DEFT 7

Hunchbacked 4most: Carving di file con Scalpel

Oltre ai tradizionali formati di file supportati da Foremost e Scalpel, è possibile

personalizzare la ricerca indicando un nuovo file di configurazione contenente gli header

ed i footer d’interesse.

Page 58: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

57 Manuale DEFT 7

6.9 Gestione di un caso con Autopsy

Autopsy forensic browser è un’interfaccia grafica per la gestione delle funzionalità di The

Sleuth Kit71.

È utilizzata principalmente per la gestione dei casi in cui è richiesta l’analisi di memorie di

massa.

Autopsy permette di:

utilizzare direttamente il device o le acquisizioni in formato dd, aff ed encase;

visualizzare informazioni sul tipo di file system;

analizzare e identificare il contenuto di file e directory e i loro riferimenti

temporali;

recuperare file cancellati;

gestire un database degli hash di file del caso posto ad analisi;

creare ed analizzare timeline;

eseguire ricerche di file per parola chiave;

analizzare meta dati;

creazione di report delle evidenze riscontrate;

creazione di un caso.

Avviato Autopsy dalla sezione Disk Forensic, è richiesto all’operatore se intende creare un

nuovo caso o aprirne uno esistente.

In questo esempio faremo clic su new per la creazione del caso di prova ed inseriremo i

dati in nostro possesso per la catalogazione, come nome, descrizione e nominativi degli

investigatori:

71

http://www.sleuthkit.org/

Page 59: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

58 Manuale DEFT 7

Creazione nuovo caso

Una volta confermati i dati, in /root/evidence/nome caso sarà creata una directory

contenente tutti i dati del caso.

All’interno di un caso possono essere aggiunti uno o più oggetti (raffiguranti o i soggetti

appartenenti o i sistemi informatici) facendo clic su add host all’interno del caso ed

inserendo i dati richiesti:

Page 60: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

59 Manuale DEFT 7

Aggiunta di oggetti che compongono il caso

Ad ogni oggetto possono essere aggiunte una o più memorie di massa: è sufficiente fare

clic su add image file, inserire nel campo location o il collegamento diretto ad una

memoria di massa (es: /dev/sdx) o il path contenente il file dell’acquisizione (es:

/media/forensic/disco001.dd) e specificare se la memoria che stiamo aggiungendo è una

partizione o l’intera memoria di massa; per quanto riguarda l’import method, per

comodità d’uso è caldamente consigliato lasciare il valore predefinito symlink.

Page 61: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

60 Manuale DEFT 7

Aggiunta di memoria di massa all’interno dell’oggetto

Una volta aggiunta la memoria sarà chiesto se calcolare, o inserire manualmente se già

calcolato, il valore dell’hash md572 e di specificare il nome simbolico della partizione ed il

suo file system.

72

Autopsy supporta solo l’algoritmo di hash md5.

Page 62: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

61 Manuale DEFT 7

Gestione valore dell’hash e tipo di file system della/e partizioni

La creazione dell’oggetto Disco001 sarà completa al termine delle operazioni precedenti. È

possibile continuare ad aggiungere altre memorie all’oggetto o iniziare la nostra analisi

facendo clic su Analyze.

Page 63: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

62 Manuale DEFT 7

Gestione dell’oggetto Disco001 appartenente al caso

L’interfaccia del modulo di analisi permette all’operatore di visualizzare l’albero delle

directory della partizione sottoposta ad analisi e, una volta selezionato un file, di

visualizzarne un’anteprima del contenuto.

L’accesso al file è in sola lettura in modo da non alterarne né i riferimenti temporali né i

metadati.

Nella schermata di analisi è visualizzato:

Il nome file/directory ed il suo percorso;

I valori temporali come data creazione, ultimo accesso ed ultima modifica;

Il tipo di dato;

Se il dato è stato cancellato o meno (in rosso se vi è stata richiesta l’azione di

eliminazione del dato).

Page 64: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

63 Manuale DEFT 7

Autopsy: File analysis

Un’altra funzione interessante è la ricerca per parola chiave. Tale funzione permette la

ricerca mediante il comando grep e si estende su tutto l’albero del file system, compreso

lo spazio non allocato.

Tale funzione può essere molto lenta nel caso in cui si lanci la ricerca su memorie

contenenti molti file o memorie di grandi dimensioni.

In questi casi raccomandiamo di avviare la ricerca per parola chiave utilizzando una shell

di sistema ed eseguire il grep a riga di comando.

La stessa raccomandazione è valida per la creazione di time line.

Page 65: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

64 Manuale DEFT 7

Ricerca di file per argomento

Page 66: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

65 Manuale DEFT 7

6.10 Xplico

Il progetto DEFT ha sempre sostenuto, sin dalle primissime release di DEFT Linux,

l’evoluzione del progetto Xplico73.

L’utilizzo di Xplico è molto semplice: dato in input un file pcap74 contenente un dump di

traffico di rete IP, il programma è in grado di ricostruire i contenuti dei dati transitati in

quel momento nella rete IP rendendoli disponibili e consultabili grazie ad una comoda

interfaccia web.

Dalla release 7 di DEFT, Xplico viene gestito come servizio. Pertanto, per poter eseguire

l’applicativo, sarà necessario avviare i seguenti servizi in sequenza:

1. Apache web server;

2. Xplico.

L’avvio dei servizi sopra citati può avvenire tramite menu DEFT > menu services, oppure

tramite l’utilizzo della linea di comando.

Una volta avviati i servizi è possibile lanciare l’icona Xplico dal menu Network Forensics.

73

Il tool, reperibile presso questo indirizzo http://www.xplico.org/, è diventato nel tempo uno dei più potenti Network

Forensic Tool open source. 74

Questo tipo di file contiene pacchetti di dati catturati tramite i programmi "packet sniffing". Solitamente sono pacchetti

che sono stati registrati durante la trasmissione in una rete.

Page 67: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

66 Manuale DEFT 7

6.10.1 Creazione di un caso

Manca la didascalia

Avviamo Xplico dalla sezione Network Forensics del menu di DEFT ed inseriamo le

seguenti credenziali per ottenere l’accesso al gestore casi:

user: xplico

password: xplico

Queste credenziali riguardano l’utente predefinito che può creare e gestire solo i casi ma

non modificare le impostazioni dell’applicazione.

Per poter personalizzare le impostazioni del pannello di controllo, creare nuovi utenti,

ecc., è necessario eseguire il login con le credenziali di administrator:

user: admin

password: xplico

Nell’esempio seguente abbiamo creato un nuovo caso denominato Pippo dove è acquisito

ed analizzato tutto il traffico che in quel momento è passato attraverso l’interfaccia eth0

della nostra postazione.

Login Xplico

Page 68: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

67 Manuale DEFT 7

Xplico: Gestione casi

Al Termine della fase di acquisizione, Xplico avrà già decodificato e ricostruito tutti i tipi di

dati supportati, cioè:

http

dns

web mail

smtp

pop3

imap

sip

telnet

ftp

tftp

rtp

pjl

facebook chat

msn

irc

Page 69: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

68 Manuale DEFT 7

Report dei dati ricostruiti

Nell’esempio precedente abbiamo visitato il sito http://www.libero.it richiesto dall’utente

intercettato.

L’elenco contenente le ricostruzioni di tutti i siti web e di tutti i contenuti visualizzati è

consultabile alla voce site del menu web.

Page 70: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

69 Manuale DEFT 7

Lista di tutte le get eseguite dal browser

Va tenuto conto che l’elenco di tutte le get75 eseguite comprende anche quelle che

l’utente esegue involontariamente come ad esempio tutte le richieste che vengono fatte

dalla pagina web ai vari url contenenti pubblicità o script per il tracciamento.

75

Richiesta ad un web server per la visualizzazione di un determinato url.

Page 71: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

70 Manuale DEFT 7

6.11 Hydra

Hydra è uno dei più noti software utilizzati per la forzatura di login e password mediante

attacco a forza bruta76.

Hydra : selezione dei protocolli

76

http://it.wikipedia.org/wiki/Metodo_forza_bruta

Page 72: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

71 Manuale DEFT 7

L’elenco seguente indica i protocolli ed applicativi su cui si può eseguire un attacco brute

force utilizzando Hydra:

AFP

Cisco AAA

Cisco auth

Cisco enable

CVS

Firebird

FTP

HTTP-FORM-

GET

HTTP-FORM-

POST

HTTP-GET

HTTP-HEAD

HTTP-PROXY

HTTPS-FORM-

GET

HTTPS-FORM-

POST

HTTPS-GET

HTTPS-HEAD

HTTP-Proxy

ICQ

IMAP

IRC

LDAP

MS-SQL

MYSQL

NCP

NNTP

Oracle Listener

Oracle SID

Oracle

PC-Anywhere

PCNFS

POP3

POSTGRES

RDP

Rexec

Rlogin

Rsh

SAP/R3

SIP

SMB

SMTP

SMTP Enum

SNMP

SOCKS5

SH (v1 and v2),

Subversion

Teamspeak

(TS2)

Telnet

VMware-Auth

VNC

XMPP

All’interno di DEFT Linux non sono inclusi dizionari per eseguire le attività di “violazione”

password.

Tramite l’applicazione cupp è possibile generare dizionari personalizzati: rispondendo alle

domande che vi pone l’applicazione è possibile generare una elenco di parole chiave

basate sulle informazioni presenti nella macchina protetta dalle credenziali da forzare77.

77 Le wordlist sono reperibili facilmente in rete in diverse tipologie: lingue, raccolte di password, ecc. come ad esempio

ftp://ftp.ox.ac.uk/pub/wordlists/ o http://wordlist.sourceforge.net/

Page 73: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

72 Manuale DEFT 7

6.12 Keepnote

Keepnote è un software utilizzato per la raccolta e la classificazione di informazioni.

Nel campo della Computer Forensics può essere usato per la gestione delle evidence,

catalogando le memorie di massa e tutte i risultati delle analisi all’interno di altri oggetti.

KeepNote: la raccolta di evidence

È possibile creare un albero di oggetti (directory e pagine), strutturarlo secondo le proprie

esigenze ed inserire all’interno delle pagine informazioni quali:

Testo non formattato;

Html;

Immagini;

File.

Le informazioni inserite all’interno del notebook creato con KeepNote possono essere

salvate nel formato KeepNote o esportate in un file html.

Page 74: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

73 Manuale DEFT 7

6.13 Maltego

Maltego78 può essere utilizzato sia nell’ambito della Computer Forensics sia di Cyber

Intelligence.

È multi-piattaforma, scritto in Java, in grado di trovare e rappresentare graficamente

collegamenti tra persone, gruppi, aziende, siti web, città, vie, e-mail, numeri di telefono,

indirizzi IP, nomi di dominio, file, documenti, ecc.

Maltego CE, creazione di un diagramma

Poiché l’utilizzo di questo programma esula dagli scopi di questo documento, il suo

funzionamento non verrà trattato nel dettaglio.

Vi suggeriamo di fare riferimento all’esaustiva documentazione ufficiale presso questo

indirizzo:

http://www.paterva.com/web5/documentation/userguide.php

78

http://www.paterva.com/

Page 75: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

74 Manuale DEFT 7

Capitolo 7: Mobile forensics

Dalla release 7 di DEFT Linux sono inclusi alcuni strumenti destinati all’analisi dei

dispositivi cellulari.

È ora disponibile Sqlite database browser per permettere l’analisi dei database Sqlite,

usati nella maggior parte delle applicazioni dei dispositivi Android, Iphone e Ipad.

Per l’analisi dei cellulari è stato incluso:

Ipddump per l’analisi dei backup di dispositivi BlackBerry;

Iphone Analyzer per l’analisi di iPhone dalla versione 3 e precedenti;

Iphone backup analyzer per l’analisi dei backup di dispositivi iPhone;

Bitpim che supporta i seguenti dispositivi:

Audiovox CDM8900

LG AX-8600

LG C2000

LG G4015

LG LX570

LG PM225

LG UX-5000

LG VX-3200

LG VX-4400

LG VX-4500

LG VX-4650

LG VX-5200

LG VX-5300

LG VX-6000

LG VX-6100

LG VX-7000

LG VX-8000

LG VX-8100

LG VX-8300

LG VX-8500

LG VX-8560

LG VX-8600

LG VX-8610

LG VX-8700

LG VX-8600

LG VX-8800

LG VX-9100

LG VX-9200LG VX-

9600

LG VX-9700

LG VX-9800

LG VX-9900

LG VX-10000

LG VX-11000

Motorola E815

Motorola E815m

Motorola K1m

Motorola V325

Motorola V325M

Motorola V3c

Motorola V3cm

Motorola V3m

Motorola V3mM

Motorola V710

Motorola V710m

Samsung SCH-A870

Samsung SCH-A930

Samsung SCH-A950

Samsung SCH-U470

Samsung SCH-U740

Samsung SCH-U750

Samsung SPH-M300

Sanyo SCP-6600

(Katana)

Other Sanyo Phones

Toshiba VM-4050

Page 76: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

75 Manuale DEFT 7

Bitpim: la lista dei telefoni supportati

Page 77: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

76 Manuale DEFT 7

7.1 Android

Android è un sistema operativo open source, derivato da linux, destinato ai dispositivi mobile (smartphone, tablet, netbook).

Particolarmente diffuso nei sistemi a basso costo di origine cinese, è presente in una grandissima varietà di dispositivi, scavalcando per diffusione iOS (è possibile installarlo sullo stesso iPhone di Apple80) e l’ormai datato ma ancora molto utilizzato Nokia OS81 .

Il sistema, sviluppato attualmente dalla Open Handset Alliance82 (OHA) guidata da Google, ha visto la luce per la prima volta nel novembre del 2007 e, ad ogni

release, si è arricchito di funzionalità che ne hanno garantito una notevole maturità.

In questo momento le versioni più recenti del sistema operativo sono:

2.3.x Gingerbread: diffusa soprattutto tra gli smartphone ed i tablet di fascia bassa;

3.2 Honeycomb: destinata ai tablet, ha introdotto un supporto maggiore per gli schemi di

dimensioni maggiori, multiprocessori ed hardware per l’accelerazione grafica.

Si sta diffondendo sempre più la nuova versione 4.0 Ice Cream Sandwich, che dovrebbe riunire i punti di forza delle due versioni.

In questo capitolo, per ragioni di spazio, rivolgeremo la nostra attenzione solo alla versione 2.3.x Gingerbread.

L’OHA, comunque, non cura l’aggiornamento del sistema operativo installato nei singoli dispositivi demandando questa incombenza ai singoli produttori che decidono autonomamente il rilascio delle patch per la correzione di problemi di sicurezza o l’implementazione di nuove funzioni. Questa politica di mercato ha causato indirettamente la nascita di un gran numero di “Rom Cooked”, tratte dalla versione 2.3, personalizzate per i singoli modelli e più performanti della versione normalmente presente nel dispositivo.

Ciò influenza pesantemente il lavoro dell’operatore che si trova a compiere un’analisi forense poiché non potrà sapere con certezza quale versione di Android sia installata nel dispositivo sottoposto a perizia83.

Il sistema operativo di base supporta le funzionalità essenziali di uno smartphone:

connessioni via GSM/EDGE, UMTS, Bluetooth, Wi-Fi, WiMAX;

chiamate;

ricezione e trasmissione di SMS e MMS;

supporto multilingue;

navigazione web;

“Dalvik virtual machine”84;

supporto multimediale audio/video;

multitasking;

comandi vocali;

tethering.

80 http://www.giardiniblog.com/guida-installare-android-su-iphone-3g

81 Da intendersi come tutti i sistemi operativi installati sui dispositivi Nokia, creati da Nokia: http://en.wikipedia.org/wiki/Nokia_OS

82 http://www.openhandsetalliance.com/

83 Vedi ad esempio la rom CyanogenMod (www.cyanogenmod.com) o la Rom Miui (miui.nexus-lab.com) nate entrambe attorno alla versione 2.3 e

4.0.

84 Macchina virtuale java ottimizza per operare con consumi energetici ridotti in dispositivi con scarsa potenza.

Page 78: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

77 Manuale DEFT 7

Ulteriori funzionalità possono essere disponibili in base al tipo di hardware presente (touchscreen, GPS,

accelerometro, scheda 3D, ecc.) o all’aggiunta di particolari applicazioni (client per social network,

gestionali di ogni tipo, sicurezza, giochi, ecc.).

L'Hardware utilizzato negli smartphone è strettamente legato alle caratteristiche progettuali decise dal

produttore: varia sia sulla base del budget destinato alla produzione, sia al target di mercato.

Per quanto concerne la memoria del dispositivo, nella maggior parte dei casi il sistema operativo è

installato all’interno della memoria flash, generalmente non rimovibile senza un procedimento di

dissaldatura della memoria stessa dalla piastra madre. Essa è spesso affiancata da uno slot di espansione

per memorie esterne (MicroSD).

Scelte diverse da quanto indicato nel paragrafo precedente sono spesso attuate dai produttori minori,

solitamente aziende di origine cinese, che possono progettare l'architettura in modo drasticamente

diverso. Ad esempio per quanto riguarda la memorizzazione del sistema operativo, può capitare che sia

preferito l'utilizzo di schede MicroSD, di costo minore, estraibili con una semplice pressione del dito.

è possibile quindi affermare che la difficoltà di accesso alla memoria del cellulare possa variare

enormemente in base al prodotto da analizzare.

Spesso è necessario utilizzare delle procedure che ci daranno la possibilità di andare a leggere il contenuto

di partizioni accessibili solo con i permessi di root e senza smontare la memoria a stato solido dal

dispositivo.

Il principale punto debole di questo tipo di procedure è che sarà alterato, seppur in minima parte, il

contenuto della memoria di massa. Pertanto è auspicabile che l'operatore, qualora agisca durante

procedimenti penali, richieda il regime di accertamento tecnico non ripetibile per l'attività di acquisizione

dei dati85.

7.2 Breve Panoramica sulle applicazioni Google

Nonostante sia molto comune che il sistema operativo sia più o meno personalizzato dal produttore dello

smartphone o dall’operatore telefonico, è probabile che le applicazioni google86 siano presenti e possano

costituire un fonte di informazione primaria ai fini della perizia.

Tra le varie, le due principali sono il profilo Gmail e Market87.

85

Art. 360 c.p.p. (Accertamenti Tecnici Non Ripetibili). 86 Vedi http://www.google.com/mobile/android/

87 Esistono diverse eccezioni a quanto appena scritto: un esempio può essere il netbook AC 100 di Toshiba: le applicazioni Google sono assenti ed il

market presente per le applicazioni è il Camangi Market (www.camangimarket.com).

Page 79: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

78 Manuale DEFT 7

7.2.1 Gmail

Ai fini investigativi è il caso di tenere conto del profondo legame tra la gestione

interna dello smartphone ed un account Google. Molte delle funzionalità interne

(gestione dei contatti, calendario, google talk, google market, ecc.) dipendo, o posso

dipendere, da un account attivo sui sistemi Google.

Alcuni esempi:

È necessario registrare un account Google per scaricare/acquistare le applicazioni dall’Android

market;

I dati dei Contatti e del calendario posso essere salvati automaticamente anche nel profilo Google;

Se presente, il client di Google+ offre la possibilità di caricare automaticamente ogni foto scattata

tramite la fotocamera interna in un album privato di un profilo Google+ non necessariamente

corrispondente all'account Google predefinito88;

La funzione Latitude, presente

nell’applicazione Maps, si

appoggia anch’essa al profilo

Google registrato e memorizza la

posizione del cellulare, check-in in

locali particolari, ecc. Questi dati

sono poi trasmessi e registrati nel

profilo dove sono conservati fino a

quando non siano eliminati

dall'utente.

88 http://www.google.com/support/mobile/bin/answer.py?answer=1304818

Page 80: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

79 Manuale DEFT 7

7.2.2 Market

Analogamente a quanto si verifica per il sistema iOS con l'applicazione App Store,

l’Android Market89 viene utilizzato per lo scaricamento e/o acquisto, di giochi od

applicazioni che permettono di aumentare le funzionalità dello smartphone.

Sempre tramite il Market è possibile ottenere gli aggiornamenti delle applicazioni

installate.90

Oltre a questa modalità, il sistema operativo Android garantisce la possibilità di

installare applicazioni tramite market terzi (applibs, Amazon Android Market,

ecc.) oppure tramite la copia diretta dell’applicazione all’interno del cellulare.

Va rilevato che le politiche adottate da Google nell’accettare un’applicazione all’interno del market sono

alquanto “indulgenti” ed hanno permesso nel corso degli ultimi mesi la presenza di malware91 ed il

successivo dilagare di diverse infezioni92. La diffusione di malware è stata parzialmente ostacolata sia

tramite la pronta diffusione degli aggiornamenti da parte di google sia tramite la disinstallazione remota

dell'applicazione vettore dell'infezione93.

Il controllo sulle applicazioni è ancora minore, se non assente, nel caso di market paralleli. Sono, infatti,

numerosi i casi segnalati di malware di vario tipo presenti in questi canali che per ora appaiono confinati

nell'area cinese o del vicino94.

L’effetto delle attività indicate qui sopra è stato limitato dalla non omogenea gestione, se presente, del

rilascio di appositi aggiornamenti del firmware da parte dei produttori di smartphone o degli operatori

telefonici che distribuiscono smartphone Android. Ciò condiziona pesantemente la possibilità di chiudere le

falle di sicurezza nei vari modelli in circolazione e contribuisce al permanere e alla diffusione del malware.

La presenza di ROM cooked gratuite95 permetterebbe di sopperire in parte a questo “problema” ma la

pratica di installare rom non originali viene spesso scoraggiata dalle case produttrici.

Ipoteticamente le politiche di vendita prodotti e rilascio aggiornamenti potrebbero creare la possibilità di

attaccare precise aree geografiche o l'utenza di determinati operatori.

7.2.3 File System in uso

YAFFS2 (Yet Another Flash File System) è il file system adottato nei dispositivi Android fino alla versione 2.2.

Creato da Charles Manning per l'azienda finlandese Aleph One, è al momento distribuito sotto licenza GPL.

Ad oggi è ufficialmente supportato dai seguenti sistemi operativi:

89 Il market è accessibile anche via web alla pagina https://market.android.com. Permette inoltre l’installazione da remoto delle applicazioni.

90 Le software house hanno inoltre la possibilità di limitare la disponibilità delle applicazioni stesse ad aree geografiche o a gestori telefonici precisi

sulla base delle proprie esigenze di vendita.

91 Uno degli esempi più recenti di malware è Anserverbot ( http://www.csc.ncsu.edu/faculty/jiang/pubs/AnserverBot_Analysis.pdf )

92 https://www.mylookout.com/_downloads/lookout-mobile-threat-report-2011.pdf

93 http://arstechnica.com/gadgets/news/2011/03/google-using-remote-kill-switch-to-swat-android-malware-apps.ars

94http://www.pcworld.com/businesscenter/article/237196/mobile_malware_is_on_the_rise_but_theres_no_need_to_panic.html#tk.mod_rel

95 Vedi ad esempio Cyanogen mod (http://www.cyanogenmod.com/devices) o Miui (http://miuiandroid.com/)

Page 81: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

80 Manuale DEFT 7

Android

Linux

Windows CE

pSOS

eCos

ThreadX

La seconda versione di questo file system garantisce un alto livello d’integrità del dato

scritto all'interno della memoria e, allo stesso tempo, cerca di mantenere il più elevato

possibile le performance di accesso ai dati96. Rispetto alla prima versione del file system,

le performance di scrittura di un file sono state migliorate del 500% e le performance di

cancellazione97 del 400%.

Dalla versione 2.3 di Android, gli sviluppatori hanno deciso di abbandonare questo file

system migrando ad EXT4.

7.2.4 EXT4 file system

Ext498 (fourth extended file system) è un file system journaled99 nato come miglioramento

dell'Ext3 per aumentarne i limiti di immagazzinamento a 64 bit e migliorarne in parte le

prestazioni. Per quanto concerne la lettura di file, nonostante le performance siano

inferiori a quelle di file system concorrenti100, richiede meno risorse della CPU ed è più

performante nelle operazioni di scrittura.

Ad oggi è considerato più sicuro rispetto agli altri file system Linux in virtù della sua

semplicità e della maggior base di installazioni a scopo di test.

96 Viene inoltre tenuto in considerazione che l'hardware è di tipo “portabile” ed il tipo di memoria nel 99% dei casi è a stato

solido.

97 http://www.yaffs.net/yaffs-2-specification-and-development-notes.

98 Ad oggi ext4 è supportato nativamente da qualsiasi distribuzione Linux, da Windows mediante il progetto Ext2fs e dai

principali applicativi, commerciali e non, per la Computer Forensics

99 È una tecnologia utilizzata da molti file system moderni per preservare l'integrità dei dati da eventuali cadute di tensione o

spegnimenti improvvisi; si basa sul concetto di transazione, ogni scrittura su disco è interpretata dal file system come una

transazione.

100 Quali ad esempio JFS, ReiserFS e XFS, Ext4.

Page 82: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

81 Manuale DEFT 7

Le principali caratteristiche si possono riassumere in:

file system di dimensioni fino a 1 exabyte (1.000.000 terabyte);

rimozione del limite delle 32000 sotto directory;

pre-allocazione persistente101;

retro compatibilità, cioè poter eseguire il mount di un file system ex4 come se

fosse un ext3 o ext2;

aumento delle prestazioni per il controllo dell’integrità del file system (fsck);

deframmentazione in linea riducendo drasticamente la frammentazione del file

system.

Il supporto nativo ad ext4 è stato introdotto in Android nella versione 2.3 per le sue nuove

caratteristiche legate al miglioramento nella scrittura di file ed alla loro garanzia di

integrità.

Da un punto di vista forense, tale implementazione ha reso molto più semplici le

operazioni di analisi del file system poiché, ad oggi, non esistono strumenti software,

commerciali o gratuiti, che supportino nativamente file system di tipo YAFFS.

7.2.5 Policy di utilizzo delle memorie di massa

Nella maggior parte dei dispositivi Android, l’utente finale può decidere come utilizzare la

memoria di massa, interna ed esterna, a sua disposizione.

Generalmente tutte le applicazioni scaricate ed installate dall’applicazione Market

vengono salvate all’interno della memoria interna del dispositivo, ad eccezione di quelle

che hanno implementato la funzione di scelta della memoria di massa in cui essere

installate. Anche nel caso dei file prodotti dalle applicazioni presenti102 viene data la

possibilità all’utente finale di decidere se salvarli nella memoria esterna o in quella

interna.

7.2.6 Accesso al file system del sistema operativo

Tutti i dispositivi Android delle principali case produttrici sono distribuiti senza l’utenza di

root abilitata e senza la possibilità di accedere direttamente al file system dove è presente

il sistema operativo103.

Esiste comunque la possibilità di superare questo tipo di restrizioni in pratica per tutti i

dispositivi oggi in commercio a patto che siano accettate delle modifiche parzialmente

101 In altre parole le applicazioni hanno la possibilità di pre allocare spazio su disco.

102 Ad esempio il salvataggio di allegati o di una foto scattata con il proprio dispositivo.

103 I dispositivi delle case produttrici minori di provenienza asiatica invece, in alcuni casi, non applicano questo tipo di

restrizione, facilitando in questo modo l’accesso alle informazioni di nostro interesse

Page 83: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

82 Manuale DEFT 7

invasive al sistema stesso, alterandone in parte l’originalità. Tali operazioni, “rooting”104,

che differiscono in base al dispositivo ed alla versione del sistema operativo, vengono

disincentivate dai produttori degli smartphone al punto di minacciare la perdita

immediata della garanzia in caso di rooting.

Dal punto di vista forense, questo tipo di alterazione è strettamente necessaria per poter

accedere alle informazioni di interesse quali il registro delle chiamate, gli sms, la

cronologia della navigazione Internet e tutto ciò che una applicazione potrebbe scrivere

nella directory data.

104 http://en.wikipedia.org/wiki/Rooting_(Android_OS)

Page 84: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

83 Manuale DEFT 7

7.3 Samsung Galaxy S i9000– caratteristiche hardware

Lo smartphone oggetto di analisi è un Samsung Galaxy S i9000 con Android 2.3.3.

Samsung, come altre aziende produttrici di smartphone, ha deciso di personalizzare in

modo pesante l’architettura Android presente nei propri dispositivi.

Il file system in uso su questo dispositivo è una realizzazione proprietaria di Samsung dal

nome RFS (Robust FAT File System). Si tratta un file system FAT a cui è stato aggiunto un

sistema di journaling che lo dovrebbe renderebbe più sicuro, evitando perdite di dati in

caso di errore.

Tale implementazione in realtà è stata piuttosto fallimentare dato che la maggioranza

degli utilizzatori del dispositivo hanno lamentato problemi di performance, legati proprio

alle scarse prestazioni che RFS fornirebbe in termini di velocità di lettura e scrittura.

Da un punto di vista forense, le partizioni di tipo RFS possono essere trattate come le

VFAT. Pertanto tutti i software per la Computer Forensic che supportano file system di

tipo VFAT sono in grado leggere un file system RFS105.

Le principali caratteristiche hardware del dispositivo sono:

Processore:

S5PC110 CPU, 45 nm 1 GHz ARM Cortex-A8 based

PowerVR SGX 540 GPU con supporto OpenGL ES

1.1/2.0.

Memoria:

512 MB LPDDR2 RAM dedicata, 16-32 MB DRAM,

8GB di memoria a stato solido con la possibilità di

espansione fino a 32 GB mediante l’utilizzo di una

microSD card.

105 È quindi possibile immaginare che tutte le distribuzioni Linux e i software commerciali per la Computer Forensics siano

già predisposti per attività di analisi per questo tipo di dispositivo.

Page 85: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

84 Manuale DEFT 7

7.3.1 Procedura per il “rooting” del dispositivo

La procedura per ottenere il “rooting” di questo dispositivo consiste sostanzialmente nella

modifica del kernel dello smathphone tramite l'aggiunta di un programma denominato

busybox106.

Questa procedura è la meno invasiva per il sistema e permette che la memoria non sia né

sovrascritta né cancellata, lasciando inalterato il contenuto delle partizioni di file system

che contengono i file prodotti dalle applicazioni e le applicazioni stesse.

Gli strumenti necessari per le operazioni di rooting del dispositivo Android sono:

Il software di sincronizzazione Samsung Keies (installato ed avviato almeno una

volta)107;

La versione di CF-ROOT108 adatta per il dispositivo sottoposto ad indagine

(controllare il numero build andando su impostazioni -> info sul telefono) che è

possibile scaricare dal sito degli sviluppatori xda109.

Dopo aver ottenuto tutto il necessario, possiamo proseguire con la procedura:

1. Abilitare la modalità di debug usb dal menu impostazioni > applicazioni > sviluppo,

permettendo in questo modo al telefono di trasmettere file tramite il

collegamento usb;

2. Spegnere il Galaxy S e riavviarlo in modalità aggiornamento/recovery premendo

contemporaneamente il tasto centrale, tasto volume giù e il tasto accensione

(dovrebbe comparire un segnale di pericolo che vi avvisa sulle potenziali azioni

dannose)110;

3. Collegare il dispositivo tramite usb al pc ed avviare l'applicativo Odin; se il campo

ID:COM è di colore giallo lo smartphone è stato riconosciuto correttamente, in

caso contrario probabilmente si è verificato qualche problema con i driver del

sistema operativo111;

4. Estrarre l’archivio CF-Root.zip, cliccare su PDA e scegliere il file scompattato;

5. Selezionare solo Auto-Reboot e F. Reset Time112 tra le opzioni disponibili;

106 http://www.busybox.net/about.html

107 http://www.samsungapps.com/about/onPc.as

108 File per la modifica del Kernel del dispositivo

109 http://forum.xda-developers.com/showpost.php?p=12651359&postcount=6

110 Tale procedura permetterà di avviare il dispositivo in una modalità dedicata all'acquisizione di file per le operazioni di

flash della memoria.

111 È necessario avviate Kies con un Galaxy S (preferibilmente non quello sottoposto ad analisi) collegato tramite usb e dal

menu strumenti cliccare su installa drive. 112 NON selezionate l'opzione Re-Partition: tale funzione cancellerà l'attuale kernel in uso

Page 86: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

85 Manuale DEFT 7

6. Fare clic su START, dopo circa 15 secondi comparirà la scritta PASS evidenziata in

verde. Da quel momento in poi il dispositivo si riavvierà in automatico con il

sistema “rootato”.

7.3.2 Samsung Galaxy S - acquisizione fisica della memoria flash interna

L’attività di acquisizione fisica della memoria interna del dispositivo è sicuramente molto

scomoda e rischiosa se paragonata a quella di un disco rigido.

L'unico metodo a disposizione è l'utilizzo del comando dd da eseguire o mediante la

tastiera virtuale del dispositivo (previa installazione di un app come "emulatore

terminale") o via rete utilizzando ssh (previa installazione di un "demone ssh"). L'output

del comando dd a sua volta potrà essere salvato soltanto all'interno delle memorie

riconosciute dal dispositivo: o la memoria flash interna o la MicroSD.

Nel nostro caso si è scelto di salvare la bit stream image all'interno della MicroSD per

ragioni di comodità e portabilità della memoria esterna.

Per ragioni architetturali, a differenza delle memorie di massa classiche, non è possibile

eseguire la clonazione dell'intera memoria in una sola sessione, ma si è obbligati ad

eseguire il comando dd per ogni partizione montata dal dispositivo.

Page 87: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

86 Manuale DEFT 7

Per poter conoscere il numero di tutte le partizioni in uso dal sistema è necessario

visualizzarle tramite il comando mount.

Un esempio di output del comando può essere il seguente:

rootfs on / type rootfs (ro,noatime,nodiratime) tmpfs on /dev type tmpfs (rw,noatime,nodiratime,mode=755) devpts on /dev/pts type devpts (rw,noatime,nodiratime,mode=600) proc on /proc type proc (rw,noatime,nodiratime) sysfs on /sys type sysfs (rw,noatime,nodiratime) none on /acct type cgroup (rw,relatime,cpuacct) tmpfs on /mnt/asec type tmpfs (rw,noatime,nodiratime,mode=755,gid=1000) tmpfs on /mnt/obb type tmpfs (rw,noatime,nodiratime,mode=755,gid=1000) none on /dev/cpuctl type cgroup (rw,relatime,cpu) /dev/block/stl9 on /system type rfs (ro,noatime,nodiratime,vfat,log_off,check=no,gid/uid/rwx,iocharset=utf8) /dev/block/stl3 on /efs type rfs (rw,nosuid,nodev,noatime,nodiratime,vfat,llw,check=no,gid/uid/rwx,iocharset=utf8) /dev/block/mmcblk0p2 on /data type rfs (rw,nosuid,nodev,noatime,nodiratime,vfat,llw,check=no,gid/uid/rwx,iocharset=utf8) /dev/block/stl10 on /dbdata type rfs (rw,nosuid,nodev,noatime,nodiratime,vfat,llw,check=no,gid/uid/rwx,iocharset=utf8) /dev/block/stl11 on /cache type rfs (rw,nosuid,nodev,noatime,nodiratime,vfat,llw,check=no,gid/uid/rwx,iocharset=utf8) /dev/block/stl6 on /mnt/.lfs type j4fs (rw,noatime,nodiratime) /sys/kernel/debug on /sys/kernel/debug type debugfs (rw,noatime,nodiratime) /dev/block/vold/179:1 on /mnt/sdcard type vfat (rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro) /dev/block/vold/179:9 on /mnt/sdcard/external_sd type vfat (rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro) /dev/block/vold/179:9 on /mnt/secure/asec type vfat (rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro) tmpfs on /mnt/sdcard/external_sd/.android_secure type tmpfs (ro,relatime,size=0k,mode=000) /dev/block/dm-0 on /mnt/asec/android.androidVNC-2 type vfat (ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro) /dev/block/dm-1 on /mnt/asec/net.androgames.level-2 type vfat (ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro) /dev/block/dm-2 on /mnt/asec/punteroanull.app.androick-1 type vfat (ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro) /dev/block/dm-3 on /mnt/asec/com.natenai.glowhockey-1 type vfat (ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iochars

Page 88: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

87 Manuale DEFT 7

et=iso8859-1,shortname=mixed,utf8,errors=remount-ro) /dev/block/dm-4 on /mnt/asec/com.feelingtouch.bocce-1 type vfat (ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro) /dev/block/dm-5 on /mnt/asec/com.fridgecat.android.atiltlite-1 type vfat (ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)

Prima di avviare l’acquisizione è necessario ottenere i permessi di root digitando il

comando su. Dopo qualche secondo il terminale chiederà se confermare la richiesta di

autorizzazione al programma per l’esecuzione con i privilegi di amministratore.

Una volta ottenuti i permessi, il comando da eseguire per l'acquisizione è il classico dd così

configurato:

dd if=partizione of=/mnt/sdcard/nomefile.img

Pertanto nel caso in cui volessimo acquisire la partizione /system, il comando sarà

dd if=/dev/block/stl9 of=/mnt/sdcard/system.img

Una volta terminata l'acquisizione sarà possibile accedere alla partizione clonata mediante

il comando mount, trattando la partizione RFS come se fosse una vfat:

mount -o loop -t vfat –o ro system.img /mnt/evidence/system

dove

-o loop permette di eseguire il mount di immagini in formato bit stream;

-t vfat dichiara che il tipo di partizione che si desidera utilizzare è di tipo vfat;

-o ro permette di accedere in sola lettura alla partizione;

/mnt/evidence/system è il percorso creato per visualizzare il contenuto della

memoria acquisita all'interno della directory.

7.4 Samsung Galaxy S - acquisizione fisica della memoria esterna

A differenza della memoria flash interna del dispositivo, l'acquisizione della MicroSD può

essere eseguita seguendo le indicazioni delle best practices della Computer Forensics e

non necessità dell’accesso come root:

1. estrarre la scheda MicroSD;

2. collegarla ad un write blocker113 o ad un sistema che abbia funzioni equivalenti114;

3. calcolo dell'hash115 della memoria originale;

113 Dispositivo usato per prevenire eventuali scritture su memorie di massa oggetto di analisi.

114 Distribuzioni Linux per la Computer Forensics.

115 L'hash è una funzione matematica univoca ed unidirezionale (cioè che non può essere invertita), che trasforma un testo

di qualunque lunghezza (input) in un testo di lunghezza fissa (output) relativamente limitata; in pratica, applicando una

Page 89: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

88 Manuale DEFT 7

4. Acquisizione tramite il programma preferito116 e verifica che l'hash della memoria

clonata coincidi con l'hash dell’originale.

7.4.1 Lavorare direttamente sullo smartphone

Nei casi di particolare urgenza, è possibile eseguire attività di ricerca dei file d’interesse

direttamente dal touchscreen del dispositivo mediante l'utilizzo di alcune applicazioni

scaricabili gratuitamente dal Market.

Un’applicazione molto utile per questo tipo di attività, pur non essendo un software

creato espressamente per la Computer Forensics, è File Manager HD117. Attivando la

funzione "Root Explorer" nelle impostazioni dell'applicativo, è possibile navigare nel file

system anche nelle directory protette come data, dbdata e system, ricercando i file di

interesse mediante l'apposita funzione di search e copiarli nella microSD card per

un’analisi più approfondita su una postazione adibita all'analisi dotata degli strumenti

necessari.

7.4.2 Posizione e analisi delle applicazioni e dei file di comune interesse

Generalmente un’applicazione è composta dal suo file eseguibile con estensione .apk ed i

suoi file di configurazione o database.118

Le cartelle che più interessano l'operatore sono:

/system/app/ : contiene le applicazioni di base fornite dal produttore del

dispositivo;

/data/app/ : contiene le applicazioni che l’utente ha installato tramite

l’applicativo Market;

/data/data/ : contiene i file di configurazione e i database delle applicazioni

presenti;

/dbdata/database/ : qui sono presenti i database contenente gli sms, gli mms, la

rubrica e tutto ciò che riguarda la parte fonia.

L’analisi dei file di configurazione e dei database delle applicazioni può essere eseguita

mediante strumenti come editor di testo per le configurazioni testuali ed xml e con un

normale client SQLite119 per i database con estensione .db.

funzione di hash a un file o ad un intero hard disk, si ottiene una sequenza alfanumerica, ad es. di 32 caratteri, che

rappresenta una specie di "impronta digitale" del file, e viene detta valore di hash.

116 Esempio: FTK Imager per Windows, Guymager o dd per Linux

117 https://market.android.com/details?id=com.rhmsoft.fm

118 Samsung, come tutti gli altri produttori di dispositivi, ha preferito non modificare la porzione di memoria standard dove

raggruppare gli applicativi.

119 Sqlite (http://www.sqlite.org) permette di creare una base di dati, comprese tabelle, query, form e report, in un unico file.

Page 90: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

89 Manuale DEFT 7

Nell'esempio riportato nell'immagine, si è usato un client SQLite per aprire il database

degli sms ed mms di nome mmssms.db contenuto in

/dbdata/database/com.android.providers.telephony/

ed analizzarne il contenuto, esportandolo i dati utili nel formato desiderato (txt, xml o

csv).

L’analisi delle tabelle di un database SQLite può anche essere eseguita mediante l’utilizzo

di query sql120 senza l’utilizzo di strumenti dedicati121.

Esempi:

È possibile visualizzare tutti i campi contenuti nella tabella sms con la richiesta:

Select * from sms

Nel caso in cui interessi solo il contenuto di tutti gli sms:

Select body from sms

Se volessimo visualizzare solo gli sms ricevuti dall’utenza +3912345:

Select * from sms where address= ‘+3912345’

120 Interrogazione di un database nel compiere determinate operazioni (selezione, inserimento, cancellazione dati, ecc..) da

eseguire in uno o più database; solitamente una query viene interpretata, dal linguaggio Sql per renderla più comprensibile

al DBMS

121 Come ad esempio http://www.filesig.co.uk/sqlite-forensic-reporter.html

Page 91: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

90 Manuale DEFT 7

7.4.3 Esempio di analisi sull'applicazione Google Maps

L’applicazione Google Maps122 offre nei terminali Android sia la

funzione di Mappa sia quella di Navigatore con comandi vocali.

L'applicazione, proprio come l'omonima versione web, è in grado

di mostrare il territorio sia in formato grafico 3D sia tramite

fotografie satellitari, fornire le informazioni sul traffico locale, su

locali e su servizi presenti nelle vicinanze e, tramite la funzione

Latitude, fornire dati sulla posizione dei contatti (anche via Checkin/checkout).

Le directory d’interesse per l'operatore sono

/data/data/com.google.android.apps.maps/

sulla scheda di memoria SD

/mnt/sdcard/Android/data/com.google.android.apps.maps/

tra i database più interessanti da analizzare possiamo segnalare da_destination_history123

122 Disponibile presso l'URL http://www.google.com/mobile/maps/

123 Da notare che questo database SQLite NON sia dotato di estensione .db come gli altri database presenti.

Page 92: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

91 Manuale DEFT 7

Questi sono solo due dei database utilizzati dall'applicazioni, ulteriori informazioni

possono e devono essere tratti dagli altri file presenti (es. se presente data_laywe_24).

Di grande interesse è comunque anche il contenuto della rispettiva cartella nella scheda

SD: oltre alla cache delle mappe scaricate dall'applicazione durante il suo utilizzo, sono

presenti anche i singoli file audio contenenti le indicazioni audio per l'utente. L'analisi dei

timestamp124 dei file, incrociata con i dati di navigazione contenuti all'interno della cartella

principale possono fornire informazioni precise su quando un determinato percorso sia

stato suggerito e seguito.

124 http://en.wikipedia.org/wiki/Timestamp

Page 93: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

92 Manuale DEFT 7

Capitolo 8: DART – Digital Advanced Response Toolkit

DART

DART (Digital Advanced Response Toolkit) è un’applicazione che organizza, raccoglie ed

esegue in modalità sicura, software destinato all’attività di Live Forensics ed Incident

Response.

È possibile personalizzare DART mediante la modifica del file dart.xml il quale gestisce

l’elenco delle applicazioni che DART può lanciare.

Se richiesto, DART può creare un audit log dove tenere traccia di tutte le operazioni

eseguite ed eventuali problemi riscontrati.

Una delle principali caratteristiche è quella di eseguire applicazioni in modo sicuro grazie

al controllo di integrità avviato prima dell’esecuzione di ogni software; in questo modo

l’operatore è sicuro di eseguire i propri strumenti escludendo un’ipotetica

compromissione degli eseguibili da parte di malware.

Gli hash degli applicativi sono contenuti all’interno del file xml che a sua volta è verificato

ad ogni avvio di DART125. In questo modo l’operatore ha modo di verificare se qualcuno o

125 L’hash del file xml è riportato in alto a destra della finestra

Page 94: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

93 Manuale DEFT 7

qualcosa ha alterato il contenuto del xml126.

DART: avviso iniziale

Al suo avvio DART, che va eseguito come amministratore di sistema o con un account

avente tali privilegi, vi informerà che non vi è alcuna garanzia di evitare alterazioni del

sistema durante l’utilizzo poiché alcuni software potrebbero eseguire le analisi in modo

invasivo.

Allo stesso tempo l’utente è informato che alcuni software potrebbero essere considerati

malware o hacking tool dai software antivirus. Andrebbe pertanto o disattivato il controllo

sullo storage contenente DART o disabilitato l’antivirus.

126 Ad esempio l’hash di un eseguibile.

Page 95: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

94 Manuale DEFT 7

DART: Salvataggio dell’audit log

All’interno del file dart.xml sono contenuti gli hash di tutti gli applicativi, pertanto nel caso

in cui sia aggiornato un eseguibile incluso nel pacchetto DART, deve essere aggiornato

anche il relativo hash all’interno del file xml. In caso contrario l’operatore verrà avvisato

che l’hash non corrisponde.

La struttura del file xml inizia con il tag "deft_extra"127. Il tag "alert" contiene il testo

dell’avviso iniziale, dart disclaimer. A suo interno vi deve essere un tag "text" dove sarà

indicato il testo di descrizione dell'applicazione racchiuso tra <![CDATA[ e ]]> .

Esempio:

<text>

<![CDATA[

testo da inserire

]]>

</text>

Il tag apps_groups indica i gruppi con cui sono suddivise le applicazioni.

"group" ha i seguenti attributi:

id: che deve contenere un id univoco ma non necessariamente numerico;

label: il testo che sarà visualizzato sotto l'icona nella schermata dell'applicazione;

ico: percorso dell'icona con cui verrà indicato il gruppo.

127 L'attributo "lang" permetterà di usufruire della gestione multilingua. Al momento questa funzionalità non è attiva.

Page 96: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

95 Manuale DEFT 7

Dentro il tag group sono presenti i tag app dotati dei seguenti attributi:

label: testo con cui verrà indicata l'applicazione nel menu di sinistra;

exepath: percorso in formato relativo o assoluto dove si trova l’eseguibile;

md5hash: hash da verificare (non obbligatorio).

All'interno del tag app è presente il tag text dove è contenuta la descrizione

dell'applicazione, anche in formato HTML, anch’essa racchiusa tra <![CDATA[ e ]]> .

Esempio:

<text>

<![CDATA[

testo da <h1>inserire</h1>

]]>

</text>

Page 97: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

96 Manuale DEFT 7

Capitolo 9: Per Approfondire

Come scritto, quando avete letto è solo un panoramica a volo d’uccello sulle potenzialità

in ambito Digital Forensics di Deft.

Ci permettiamo di suggerire alcuni testi su cui approfondire I temi trattati

Linee guida NIST

Guidelines on Cell Phone and PDA Security – SP 800-124

Computer Security Incident Handling Guide – SP 800-61

Digital Forensics

Digital Evidence and Computer Crime, Third Edition: Forensic Science, Computers, and the

Internet

Eoghan Casey

ISBN-10: 0123742684

Academic Press

Digital Forensics with Open Source Tools

Cory Altheide & Harlan Carvey

ISBN-10: 1597495867

Syngress

Computer Forensics – seconda edizione

Andrea Ghirardini & Gabriele Faggioli

ISBN-10: 9788850328161

Apogeo

Android Forensics: Investigation, Analysis and Mobile Security for Google Android

Andrew Hoog

ISBN-10: 1597496510

Syngress

Page 98: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

97 Manuale DEFT 7

Capitolo 10: APPENDICE 1 – Parametri per il boot del Kernel

Kernel Parameters

2 ~~~~~~~~~~~~~~~~~

3

4 The following is a consolidated list of the kernel parameters as implemented

5 (mostly) by the __setup() macro and sorted into English Dictionary order

6 (defined as ignoring all punctuation and sorting digits before letters in a

7 case insensitive manner), and with descriptions where known.

8

9 Module parameters for loadable modules are specified only as the

10 parameter name with optional '=' and value as appropriate, such as:

11

12 modprobe USBcore blinkenlights=1

13

14 Module parameters for modules that are built into the kernel image

15 are specified on the kernel command line with the module name plus

16 '.' plus parameter name, with '=' and value if appropriate, such as:

17

18 USBcore.blinkenlights=1

19

20 Hyphens (dashes) and underscores are equivalent in parameter names, so

21 log_buf_len=1M print-fatal-signals=1

22 can also be entered as

23 log-buf-len=1M print_fatal_signals=1

24

25

26 This document may not be entirely up to date and comprehensive. The command

27 "modinfo -p ${modulename}" shows a current list of all parameters of a loadable

28 module. Loadable modules, after being loaded into the running kernel, also

29 reveal their parameters in /sys/module/${modulename}/parameters/. Some of

Page 99: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

98 Manuale DEFT 7

these

30 parameters may be changed at runtime by the command

31 "echo -n ${value} > /sys/module/${modulename}/parameters/${parm}".

32

33 The parameters listed below are only valid if certain kernel build options were

34 enabled and if respective hardware is present. The text in square brackets at

35 the beginning of each description states the restrictions within which a

36 parameter is applicable:

37

38 ACPI ACPI support is enabled.

39 AGP AGP (Accelerated Graphics Port) is enabled.

40 ALSA ALSA sound support is enabled.

41 APIC APIC support is enabled.

42 APM Advanced Power Management support is enabled.

43 AVR32 AVR32 architecture is enabled.

44 AX25 Appropriate AX.25 support is enabled.

45 BLACKFIN Blackfin architecture is enabled.

46 DRM Direct Rendering Management support is enabled.

47 EDD BIOS Enhanced Disk Drive Services (EDD) is enabled

48 EFI EFI Partitioning (GPT) is enabled

49 EIDE EIDE/ATAPI support is enabled.

50 FB The frame buffer device is enabled.

51 GCOV GCOV profiling is enabled.

52 HW Appropriate hardware is enabled.

53 IA-64 IA-64 architecture is enabled.

54 IMA Integrity measurement architecture is enabled.

55 IOSCHED More than one I/O scheduler is enabled.

56 IP_PNP IP DHCP, BOOTP, or RARP is enabled.

57 IPV6 IPv6 support is enabled.

58 ISAPNP ISA PnP code is enabled.

59 ISDN Appropriate ISDN support is enabled.

60 JOY Appropriate joystick support is enabled.

61 KGDB Kernel debugger support is enabled.

62 KVM Kernel Virtual Machine support is enabled.

Page 100: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

99 Manuale DEFT 7

63 LIBATA Libata driver is enabled

64 LP Printer support is enabled.

65 LOOP Loopback device support is enabled.

66 M68k M68k architecture is enabled.

67 These options have more detailed description inside of

68 Documentation/m68k/kernel-options.txt.

69 MCA MCA bus support is enabled.

70 MDA MDA console support is enabled.

71 MOUSE Appropriate mouse support is enabled.

72 MSI Message Signaled Interrupts (PCI).

73 MTD MTD (Memory Technology Device) support is enabled.

74 NET Appropriate network support is enabled.

75 NUMA NUMA support is enabled.

76 GENERIC_TIME The generic timeofday code is enabled.

77 NFS Appropriate NFS support is enabled.

78 OSS OSS sound support is enabled.

79 PV_OPS A paravirtualized kernel is enabled.

80 PARIDE The ParIDE (parallel port IDE) subsystem is enabled.

81 PARISC The PA-RISC architecture is enabled.

82 PCI PCI bus support is enabled.

83 PCIE PCI Express support is enabled.

84 PCMCIA The PCMCIA subsystem is enabled.

85 PNP Plug & Play support is enabled.

86 PPC PowerPC architecture is enabled.

87 PPT Parallel port support is enabled.

88 PS2 Appropriate PS/2 support is enabled.

89 RAM RAM disk support is enabled.

90 S390 S390 architecture is enabled.

91 SCSI Appropriate SCSI support is enabled.

92 A lot of drivers has their options described inside of

93 Documentation/scsi/.

94 SECURITY Different security models are enabled.

95 SELINUX SELinux support is enabled.

96 SERIAL Serial support is enabled.

Page 101: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

100 Manuale DEFT 7

97 SH SuperH architecture is enabled.

98 SMP The kernel is an SMP kernel.

99 SPARC Sparc architecture is enabled.

100 SWSUSP Software suspend (hibernation) is enabled.

101 SUSPEND System suspend states are enabled.

102 FTRACE Function tracing enabled.

103 TPM TPM drivers are enabled.

104 TS Appropriate touchscreen support is enabled.

105 UMS USB Mass Storage support is enabled.

106 USB USB support is enabled.

107 USBHID USB Human Interface Device support is enabled.

108 V4L Video For Linux support is enabled.

109 VGA The VGA console has been enabled.

110 VT Virtual terminal support is enabled.

111 WDT Watchdog support is enabled.

112 XT IBM PC/XT MFM hard disk support is enabled.

113 X86-32 X86-32, aka i386 architecture is enabled.

114 X86-64 X86-64 architecture is enabled.

115 More X86-64 boot options can be found in

116 Documentation/x86/x86_64/boot-options.txt .

117 X86 Either 32bit or 64bit x86 (same as X86-32+X86-64)

118

119 In addition, the following text indicates that the option:

120

121 BUGS= Relates to possible processor bugs on the said processor.

122 KNL Is a kernel start-up parameter.

123 BOOT Is a boot loader parameter.

124

125 Parameters denoted with BOOT are actually interpreted by the boot

126 loader, and have no meaning to the kernel directly.

127 Do not modify the syntax of boot loader parameters without extreme

128 need or coordination with <Documentation/x86/boot.txt>.

129

130 There are also arch-specific kernel-parameters not documented here.

Page 102: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

101 Manuale DEFT 7

131 See for example <Documentation/x86/x86_64/boot-options.txt>.

132

133 Note that ALL kernel parameters listed below are CASE SENSITIVE, and that

134 a trailing = on the name of any parameter states that that parameter will

135 be entered as an environment variable, whereas its absence indicates that

136 it will appear as a kernel argument readable via /proc/cmdline by programs

137 running once the system is up.

138

139 The number of kernel parameters is not limited, but the length of the

140 complete command line (parameters including spaces etc.) is limited to

141 a fixed number of characters. This limit depends on the architecture

142 and is between 256 and 4096 characters. It is defined in the file

143 ./include/asm/setup.h as COMMAND_LINE_SIZE.

144

145

146 acpi= [HW,ACPI,X86]

147 Advanced Configuration and Power Interface

148 Format: { force | off | strict | noirq | rsdt }

149 force -- enable ACPI if default was off

150 off -- disable ACPI if default was on

151 noirq -- do not use ACPI for IRQ routing

152 strict -- Be less tolerant of platforms that are not

153 strictly ACPI specification compliant.

154 rsdt -- prefer RSDT over (default) XSDT

155 copy_dsdt -- copy DSDT to memory

156

157 See also Documentation/power/pm.txt, pci=noacpi

158

159 acpi_apic_instance= [ACPI, IOAPIC]

160 Format: <int>

161 2: use 2nd APIC table, if available

162 1,0: use 1st APIC table

163 default: 0

164

Page 103: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

102 Manuale DEFT 7

165 acpi_backlight= [HW,ACPI]

166 acpi_backlight=vendor

167 acpi_backlight=video

168 If set to vendor, prefer vendor specific driver

169 (e.g. thinkpad_acpi, sony_acpi, etc.) instead

170 of the ACPI video.ko driver.

171

172 acpi.debug_layer= [HW,ACPI,ACPI_DEBUG]

173 acpi.debug_level= [HW,ACPI,ACPI_DEBUG]

174 Format: <int>

175 CONFIG_ACPI_DEBUG must be enabled to produce any

ACPI

176 debug output. Bits in debug_layer correspond to a

177 _COMPONENT in an ACPI source file, e.g.,

178 #define _COMPONENT ACPI_PCI_COMPONENT

179 Bits in debug_level correspond to a level in

180 ACPI_DEBUG_PRINT statements, e.g.,

181 ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...

182 The debug_level mask defaults to "info". See

183 Documentation/acpi/debug.txt for more information

about

184 debug layers and levels.

185

186 Enable processor driver info messages:

187 acpi.debug_layer=0x20000000

188 Enable PCI/PCI interrupt routing info messages:

189 acpi.debug_layer=0x400000

190 Enable AML "Debug" output, i.e., stores to the Debug

191 object while interpreting AML:

192 acpi.debug_layer=0xffffffff acpi.debug_level=0x2

193 Enable all messages related to ACPI hardware:

194 acpi.debug_layer=0x2 acpi.debug_level=0xffffffff

195

196 Some values produce so much output that the system is

Page 104: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

103 Manuale DEFT 7

197 unusable. The "log_buf_len" parameter may be useful

198 if you need to capture more output.

199

200 acpi_display_output= [HW,ACPI]

201 acpi_display_output=vendor

202 acpi_display_output=video

203 See above.

204

205 acpi_irq_balance [HW,ACPI]

206 ACPI will balance active IRQs

207 default in APIC mode

208

209 acpi_irq_nobalance [HW,ACPI]

210 ACPI will not move active IRQs (default)

211 default in PIC mode

212

213 acpi_irq_isa= [HW,ACPI] If irq_balance, mark listed IRQs used by ISA

214 Format: <irq>,<irq>...

215

216 acpi_irq_pci= [HW,ACPI] If irq_balance, clear listed IRQs for

217 use by PCI

218 Format: <irq>,<irq>...

219

220 acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT

221

222 acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS

223 Format: To spoof as Windows 98: ="Microsoft Windows"

224

225 acpi_osi= [HW,ACPI] Modify list of supported OS interface strings

226 acpi_osi="string1" # add string1 -- only one string

227 acpi_osi="!string2" # remove built-in string2

228 acpi_osi= # disable all strings

229

230 acpi_pm_good [X86]

Page 105: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

104 Manuale DEFT 7

231 Override the pmtimer bug detection: force the kernel

232 to assume that this machine's pmtimer latches its value

233 and always returns good values.

234

235 acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode

236 Format: { level | edge | high | low }

237

238 acpi_serialize [HW,ACPI] force serialization of AML methods

239

240 acpi_skip_timer_override [HW,ACPI]

241 Recognize and ignore IRQ0/pin2 Interrupt Override.

242 For broken nForce2 BIOS resulting in XT-PIC timer.

243

244 acpi_sleep= [HW,ACPI] Sleep options

245 Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig,

246 old_ordering, s4_nonvs, sci_force_enable }

247 See Documentation/power/video.txt for information on

248 s3_bios and s3_mode.

249 s3_beep is for debugging; it makes the PC's speaker beep

250 as soon as the kernel's real-mode entry point is called.

251 s4_nohwsig prevents ACPI hardware signature from being

252 used during resume from hibernation.

253 old_ordering causes the ACPI 1.0 ordering of the _PTS

254 control method, with respect to putting devices into

255 low power states, to be enforced (the ACPI 2.0 ordering

256 of _PTS is used by default).

257 nonvs prevents the kernel from saving/restoring the

258 ACPI NVS memory during suspend/hibernation and

resume.

259 sci_force_enable causes the kernel to set SCI_EN directly

260 on resume from S1/S3 (which is against the ACPI spec,

261 but some broken systems don't work without it).

262

263 acpi_use_timer_override [HW,ACPI]

Page 106: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

105 Manuale DEFT 7

264 Use timer override. For some broken Nvidia NF5 boards

265 that require a timer override, but don't have HPET

266

267 acpi_enforce_resources= [ACPI]

268 { strict | lax | no }

269 Check for resource conflicts between native drivers

270 and ACPI OperationRegions (SystemIO and

SystemMemory

271 only). IO ports and memory declared in ACPI might be

272 used by the ACPI subsystem in arbitrary AML code and

273 can interfere with legacy drivers.

274 strict (default): access to resources claimed by ACPI

275 is denied; legacy drivers trying to access reserved

276 resources will fail to bind to device using them.

277 lax: access to resources claimed by ACPI is allowed;

278 legacy drivers trying to access reserved resources

279 will bind successfully but a warning message is logged.

280 no: ACPI OperationRegions are not marked as reserved,

281 no further checks are performed.

282

283 ad1848= [HW,OSS]

284 Format: <io>,<irq>,<dma>,<dma2>,<type>

285

286 add_efi_memmap [EFI; X86] Include EFI memory map in

287 kernel's map of available physical RAM.

288

289 advansys= [HW,SCSI]

290 See header of drivers/scsi/advansys.c.

291

292 aedsp16= [HW,OSS] Audio Excel DSP 16

293 Format: <io>,<irq>,<dma>,<mss_io>,<mpu_io>,<mpu_irq>

294 See also header of sound/oss/aedsp16.c.

295

296 agp= [AGP]

Page 107: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

106 Manuale DEFT 7

297 { off | try_unsupported }

298 off: disable AGP support

299 try_unsupported: try to drive unsupported chipsets

300 (may crash computer or cause data corruption)

301

302 aha152x= [HW,SCSI]

303 See Documentation/scsi/aha152x.txt.

304

305 aha1542= [HW,SCSI]

306 Format: <portbase>[,<buson>,<busoff>[,<dmaspeed>]]

307

308 aic7xxx= [HW,SCSI]

309 See Documentation/scsi/aic7xxx.txt.

310

311 aic79xx= [HW,SCSI]

312 See Documentation/scsi/aic79xx.txt.

313

314 alignment= [KNL,ARM]

315 Allow the default userspace alignment fault handler

316 behaviour to be specified. Bit 0 enables warnings,

317 bit 1 enables fixups, and bit 2 sends a segfault.

318

319 amd_iommu= [HW,X86-84]

320 Pass parameters to the AMD IOMMU driver in the system.

321 Possible values are:

322 fullflush - enable flushing of IO/TLB entries when

323 they are unmapped. Otherwise they are

324 flushed before they will be reused, which

325 is a lot of faster

326 off - do not initialize any AMD IOMMU found in

327 the system

328

329 amijoy.map= [HW,JOY] Amiga joystick support

330 Map of devices attached to JOY0DAT and JOY1DAT

Page 108: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

107 Manuale DEFT 7

331 Format: <a>,<b>

332 See also Documentation/kernel/input/joystick.txt

333

334 analog.map= [HW,JOY] Analog joystick and gamepad support

335 Specifies type or capabilities of an analog joystick

336 connected to one of 16 gameports

337 Format: <type1>,<type2>,..<type16>

338

339 apc= [HW,SPARC]

340 Power management functions (SPARCstation-4/5 + deriv.)

341 Format: noidle

342 Disable APC CPU standby support. SPARCstation-Fox does

343 not play well with APC CPU idle - disable it if you have

344 APC and your system crashes randomly.

345

346 apic= [APIC,X86-32] Advanced Programmable Interrupt

Controller

347 Change the output verbosity whilst booting

348 Format: { quiet (default) | verbose | debug }

349 Change the amount of debugging information output

350 when initialising the APIC and IO-APIC components.

351

352 autoconf= [IPV6]

353 See Documentation/networking/ipv6.txt.

354

355 show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller

356 Limit apic dumping. The parameter defines the maximal

357 number of local apics being dumped. Also it is possible

358 to set it to "all" by meaning -- no limit here.

359 Format: { 1 (default) | 2 | ... | all }.

360 The parameter valid if only apic=debug or

361 apic=verbose is specified.

362 Example: apic=debug show_lapic=all

363

Page 109: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

108 Manuale DEFT 7

364 apm= [APM] Advanced Power Management

365 See header of arch/x86/kernel/apm_32.c.

366

367 arcrimi= [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards

368 Format: <io>,<irq>,<nodeID>

369

370 ataflop= [HW,M68k]

371

372 atarimouse= [HW,MOUSE] Atari Mouse

373

374 atascsi= [HW,SCSI] Atari SCSI

375

376 atkbd.extra= [HW] Enable extra LEDs and keys on IBM RapidAccess,

377 EzKey and similar keyboards

378

379 atkbd.reset= [HW] Reset keyboard during initialization

380

381 atkbd.set= [HW] Select keyboard code set

382 Format: <int> (2 = AT (default), 3 = PS/2)

383

384 atkbd.scroll= [HW] Enable scroll wheel on MS Office and similar

385 keyboards

386

387 atkbd.softraw= [HW] Choose between synthetic and real raw mode

388 Format: <bool> (0 = real, 1 = synthetic (default))

389

390 atkbd.softrepeat= [HW]

391 Use software keyboard repeat

392

393 autotest [IA64]

394

395 baycom_epp= [HW,AX25]

396 Format: <io>,<mode>

397

Page 110: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

109 Manuale DEFT 7

398 baycom_par= [HW,AX25] BayCom Parallel Port AX.25 Modem

399 Format: <io>,<mode>

400 See header of drivers/net/hamradio/baycom_par.c.

401

402 baycom_ser_fdx= [HW,AX25]

403 BayCom Serial Port AX.25 Modem (Full Duplex Mode)

404 Format: <io>,<irq>,<mode>[,<baud>]

405 See header of drivers/net/hamradio/baycom_ser_fdx.c.

406

407 baycom_ser_hdx= [HW,AX25]

408 BayCom Serial Port AX.25 Modem (Half Duplex Mode)

409 Format: <io>,<irq>,<mode>

410 See header of drivers/net/hamradio/baycom_ser_hdx.c.

411

412 boot_delay= Milliseconds to delay each printk during boot.

413 Values larger than 10 seconds (10000) are changed to

414 no delay (0).

415 Format: integer

416

417 bootmem_debug [KNL] Enable bootmem allocator debug messages.

418

419 bttv.card= [HW,V4L] bttv (bt848 + bt878 based grabber cards)

420 bttv.radio= Most important insmod options are available as

421 kernel args too.

422 bttv.pll= See Documentation/video4linux/bttv/Insmod-options

423 bttv.tuner= and Documentation/video4linux/bttv/CARDLIST

424

425 BusLogic= [HW,SCSI]

426 See drivers/scsi/BusLogic.c, comment before function

427 BusLogic_ParseDriverOptions().

428

429 c101= [NET] Moxa C101 synchronous serial card

430

431 cachesize= [BUGS=X86-32] Override level 2 CPU cache size detection.

Page 111: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

110 Manuale DEFT 7

432 Sometimes CPU hardware bugs make them report the

cache

433 size incorrectly. The kernel will attempt work arounds

434 to fix known problems, but for some CPUs it is not

435 possible to determine what the correct size should be.

436 This option provides an override for these situations.

437

438 capability.disable=

439 [SECURITY] Disable capabilities. This would normally

440 be used only if an alternative security model is to be

441 configured. Potentially dangerous and should only be

442 used if you are entirely sure of the consequences.

443

444 ccw_timeout_log [S390]

445 See Documentation/s390/CommonIO for details.

446

447 cgroup_disable= [KNL] Disable a particular controller

448 Format: {name of the controller(s) to disable}

449 {Currently supported controllers - "memory"}

450

451 checkreqprot [SELINUX] Set initial checkreqprot flag value.

452 Format: { "0" | "1" }

453 See security/selinux/Kconfig help text.

454 0 -- check protection applied by kernel (includes

455 any implied execute protection).

456 1 -- check protection requested by application.

457 Default value is set via a kernel config option.

458 Value can be changed at runtime via

459 /selinux/checkreqprot.

460

461 cio_ignore= [S390]

462 See Documentation/s390/CommonIO for details.

463

464 clock= [BUGS=X86-32, HW] gettimeofday clocksource override.

Page 112: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

111 Manuale DEFT 7

465 [Deprecated]

466 Forces specified clocksource (if available) to be used

467 when calculating gettimeofday(). If specified

468 clocksource is not available, it defaults to PIT.

469 Format: { pit | tsc | cyclone | pmtmr }

470

471 clocksource= [GENERIC_TIME] Override the default clocksource

472 Format: <string>

473 Override the default clocksource and use the clocksource

474 with the name specified.

475 Some clocksource names to choose from, depending on

476 the platform:

477 [all] jiffies (this is the base, fallback clocksource)

478 [ACPI] acpi_pm

479 [ARM] imx_timer1,OSTS,netx_timer,mpu_timer2,

480 pxa_timer,timer3,32k_counter,timer0_1

481 [AVR32] avr32

482 [X86-32] pit,hpet,tsc,vmi-timer;

483 scx200_hrt on Geode; cyclone on IBM x440

484 [MIPS] MIPS

485 [PARISC] cr16

486 [S390] tod

487 [SH] SuperH

488 [SPARC64] tick

489 [X86-64] hpet,tsc

490

491 clearcpuid=BITNUM [X86]

492 Disable CPUID feature X for the kernel. See

493 arch/x86/include/asm/cpufeature.h for the valid bit

494 numbers. Note the Linux specific bits are not necessarily

495 stable over kernel options, but the vendor specific

496 ones should be.

497 Also note that user programs calling CPUID directly

498 or using the feature without checking anything

Page 113: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

112 Manuale DEFT 7

499 will still see it. This just prevents it from

500 being used by the kernel or shown in /proc/cpuinfo.

501 Also note the kernel might malfunction if you disable

502 some critical bits.

503

504 cmo_free_hint= [PPC] Format: { yes | no }

505 Specify whether pages are marked as being inactive

506 when they are freed. This is used in CMO environments

507 to determine OS memory pressure for page stealing by

508 a hypervisor.

509 Default: yes

510

511 code_bytes [X86] How many bytes of object code to print

512 in an oops report.

513 Range: 0 - 8192

514 Default: 64

515

516 com20020= [HW,NET] ARCnet - COM20020 chipset

517 Format:

518 <io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]]

519

520 com90io= [HW,NET] ARCnet - COM90xx chipset (IO-mapped buffers)

521 Format: <io>[,<irq>]

522

523 com90xx= [HW,NET]

524 ARCnet - COM90xx chipset (memory-mapped buffers)

525 Format: <io>[,<irq>[,<memstart>]]

526

527 condev= [HW,S390] console device

528 conmode=

529

530 console= [KNL] Output console device and options.

531

532 tty<n> Use the virtual console device <n>.

Page 114: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

113 Manuale DEFT 7

533

534 ttyS<n>[,options]

535 ttyUSB0[,options]

536 Use the specified serial port. The options are of

537 the form "bbbbpnf", where "bbbb" is the baud rate,

538 "p" is parity ("n", "o", or "e"), "n" is number of

539 bits, and "f" is flow control ("r" for RTS or

540 omit it). Default is "9600n8".

541

542 See Documentation/serial-console.txt for more

543 information. See

544 Documentation/networking/netconsole.txt for an

545 alternative.

546

547 uart[8250],io,<addr>[,options]

548 uart[8250],mmio,<addr>[,options]

549 Start an early, polled-mode console on the 8250/16550

550 UART at the specified I/O port or MMIO address,

551 switching to the matching ttyS device later. The

552 options are the same as for ttyS, above.

553

554 If the device connected to the port is not a TTY but a braille

555 device, prepend "brl," before the device type, for instance

556 console=brl,ttyS0

557 For now, only VisioBraille is supported.

558

559 consoleblank= [KNL] The console blank (screen saver) timeout in

560 seconds. Defaults to 10*60 = 10mins. A value of 0

561 disables the blank timer.

562

563 coredump_filter=

564 [KNL] Change the default value for

565 /proc/<pid>/coredump_filter.

566 See also Documentation/filesystems/proc.txt.

Page 115: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

114 Manuale DEFT 7

567

568 cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver

569 Format:

570 <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]

571

572 crashkernel=nn[KMG]@ss[KMG]

573 [KNL] Reserve a chunk of physical memory to

574 hold a kernel to switch to with kexec on panic.

575

576 crashkernel=range1:size1[,range2:size2,...][@offset]

577 [KNL] Same as above, but depends on the memory

578 in the running system. The syntax of range is

579 start-[end] where start and end are both

580 a memory unit (amount[KMG]). See also

581 Documentation/kdump/kdump.txt for a example.

582

583 cs89x0_dma= [HW,NET]

584 Format: <dma>

585

586 cs89x0_media= [HW,NET]

587 Format: { rj45 | aui | bnc }

588

589 dasd= [HW,NET]

590 See header of drivers/s390/block/dasd_devmap.c.

591

592 db9.dev[2|3]= [HW,JOY] Multisystem joystick support via parallel port

593 (one device per port)

594 Format: <port#>,<type>

595 See also Documentation/input/joystick-parport.txt

596

597 debug [KNL] Enable kernel debugging (events log level).

598

599 debug_locks_verbose=

600 [KNL] verbose self-tests

Page 116: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

115 Manuale DEFT 7

601 Format=<0|1>

602 Print debugging info while doing the locking API

603 self-tests.

604 We default to 0 (no extra messages), setting it to

605 1 will print _a lot_ more information - normally

606 only useful to kernel developers.

607

608 debug_objects [KNL] Enable object debugging

609

610 no_debug_objects

611 [KNL] Disable object debugging

612

613 debugpat [X86] Enable PAT debugging

614

615 decnet.addr= [HW,NET]

616 Format: <area>[,<node>]

617 See also Documentation/networking/decnet.txt.

618

619 default_hugepagesz=

620 [same as hugepagesz=] The size of the default

621 HugeTLB page size. This is the size represented by

622 the legacy /proc/ hugepages APIs, used for SHM, and

623 default size when mounting hugetlbfs filesystems.

624 Defaults to the default architecture's huge page size

625 if not specified.

626

627 dhash_entries= [KNL]

628 Set number of hash buckets for dentry cache.

629

630 digi= [HW,SERIAL]

631 IO parameters + enable/disable command.

632

633 digiepca= [HW,SERIAL]

634 See drivers/char/README.epca and

Page 117: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

116 Manuale DEFT 7

635 Documentation/serial/digiepca.txt.

636

637 disable= [IPV6]

638 See Documentation/networking/ipv6.txt.

639

640 disable_ipv6= [IPV6]

641 See Documentation/networking/ipv6.txt.

642

643 disable_mtrr_cleanup [X86]

644 The kernel tries to adjust MTRR layout from continuous

645 to discrete, to make X server driver able to add WB

646 entry later. This parameter disables that.

647

648 disable_mtrr_trim [X86, Intel and AMD only]

649 By default the kernel will trim any uncacheable

650 memory out of your available memory pool based on

651 MTRR settings. This parameter disables that behavior,

652 possibly causing your machine to run very slowly.

653

654 disable_timer_pin_1 [X86]

655 Disable PIN 1 of APIC timer

656 Can be useful to work around chipset bugs.

657

658 dmasound= [HW,OSS] Sound subsystem buffers

659

660 dma_debug=off If the kernel is compiled with DMA_API_DEBUG

support,

661 this option disables the debugging code at boot.

662

663 dma_debug_entries=<number>

664 This option allows to tune the number of preallocated

665 entries for DMA-API debugging code. One entry is

666 required per DMA-API allocation. Use this if the

667 DMA-API debugging code disables itself because the

Page 118: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

117 Manuale DEFT 7

668 architectural default is too low.

669

670 dma_debug_driver=<driver_name>

671 With this option the DMA-API debugging driver

672 filter feature can be enabled at boot time. Just

673 pass the driver to filter for as the parameter.

674 The filter can be disabled or changed to another

675 driver later using sysfs.

676

677 dscc4.setup= [NET]

678

679 dtc3181e= [HW,SCSI]

680

681 dynamic_printk Enables pr_debug()/dev_dbg() calls if

682 CONFIG_DYNAMIC_PRINTK_DEBUG has been enabled.

683 These can also be switched on/off via

684 <debugfs>/dynamic_printk/modules

685

686 earlycon= [KNL] Output early console device and options.

687 uart[8250],io,<addr>[,options]

688 uart[8250],mmio,<addr>[,options]

689 Start an early, polled-mode console on the 8250/16550

690 UART at the specified I/O port or MMIO address.

691 The options are the same as for ttyS, above.

692

693 earlyprintk= [X86,SH,BLACKFIN]

694 earlyprintk=vga

695 earlyprintk=serial[,ttySn[,baudrate]]

696 earlyprintk=ttySn[,baudrate]

697 earlyprintk=dbgp[debugController#]

698

699 Append ",keep" to not disable it when the real console

700 takes over.

701

Page 119: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

118 Manuale DEFT 7

702 Only vga or serial or USB debug port at a time.

703

704 Currently only ttyS0 and ttyS1 are supported.

705

706 Interaction with the standard serial driver is not

707 very good.

708

709 The VGA output is eventually overwritten by the real

710 console.

711

712 ekgdboc= [X86,KGDB] Allow early kernel console debugging

713 ekgdboc=kbd

714

715 This is desgined to be used in conjunction with

716 the boot argument: earlyprintk=vga

717

718 eata= [HW,SCSI]

719

720 edd= [EDD]

721 Format: {"off" | "on" | "skip[mbr]"}

722

723 eisa_irq_edge= [PARISC,HW]

724 See header of drivers/parisc/eisa.c.

725

726 elanfreq= [X86-32]

727 See comment before function elanfreq_setup() in

728 arch/x86/kernel/cpu/cpufreq/elanfreq.c.

729

730 elevator= [IOSCHED]

731 Format: {"anticipatory" | "cfq" | "deadline" | "noop"}

732 See Documentation/block/as-iosched.txt and

733 Documentation/block/deadline-iosched.txt for details.

734

735 elfcorehdr= [IA64,PPC,SH,X86]

Page 120: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

119 Manuale DEFT 7

736 Specifies physical address of start of kernel core

737 image elf header. Generally kexec loader will

738 pass this option to capture kernel.

739 See Documentation/kdump/kdump.txt for details.

740

741 enable_mtrr_cleanup [X86]

742 The kernel tries to adjust MTRR layout from continuous

743 to discrete, to make X server driver able to add WB

744 entry later. This parameter enables that.

745

746 enable_timer_pin_1 [X86]

747 Enable PIN 1 of APIC timer

748 Can be useful to work around chipset bugs

749 (in particular on some ATI chipsets).

750 The kernel tries to set a reasonable default.

751

752 enforcing [SELINUX] Set initial enforcing status.

753 Format: {"0" | "1"}

754 See security/selinux/Kconfig help text.

755 0 -- permissive (log only, no denials).

756 1 -- enforcing (deny and log).

757 Default value is 0.

758 Value can be changed at runtime via /selinux/enforce.

759

760 erst_disable [ACPI]

761 Disable Error Record Serialization Table (ERST)

762 support.

763

764 ether= [HW,NET] Ethernet cards parameters

765 This option is obsoleted by the "netdev=" option, which

766 has equivalent usage. See its documentation for details.

767

768 failslab=

769 fail_page_alloc=

Page 121: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

120 Manuale DEFT 7

770 fail_make_request=[KNL]

771 General fault injection mechanism.

772 Format: <interval>,<probability>,<space>,<times>

773 See also /Documentation/fault-injection/.

774

775 fd_mcs= [HW,SCSI]

776 See header of drivers/scsi/fd_mcs.c.

777

778 fdomain= [HW,SCSI]

779 See header of drivers/scsi/fdomain.c.

780

781 floppy= [HW]

782 See Documentation/blockdev/floppy.txt.

783

784 force_pal_cache_flush

785 [IA-64] Avoid check_sal_cache_flush which may hang on

786 buggy SAL_CACHE_FLUSH implementations. Using this

787 parameter will force ia64_sal_cache_flush to call

788 ia64_pal_cache_flush instead of SAL_CACHE_FLUSH.

789

790 ftrace=[tracer]

791 [FTRACE] will set and start the specified tracer

792 as early as possible in order to facilitate early

793 boot debugging.

794

795 ftrace_dump_on_oops[=orig_cpu]

796 [FTRACE] will dump the trace buffers on oops.

797 If no parameter is passed, ftrace will dump

798 buffers of all CPUs, but if you pass orig_cpu, it will

799 dump only the buffer of the CPU that triggered the

800 oops.

801

802 ftrace_filter=[function-list]

803 [FTRACE] Limit the functions traced by the function

Page 122: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

121 Manuale DEFT 7

804 tracer at boot up. function-list is a comma separated

805 list of functions. This list can be changed at run

806 time by the set_ftrace_filter file in the debugfs

807 tracing directory.

808

809 ftrace_notrace=[function-list]

810 [FTRACE] Do not trace the functions specified in

811 function-list. This list can be changed at run time

812 by the set_ftrace_notrace file in the debugfs

813 tracing directory.

814

815 ftrace_graph_filter=[function-list]

816 [FTRACE] Limit the top level callers functions traced

817 by the function graph tracer at boot up.

818 function-list is a comma separated list of functions

819 that can be changed at run time by the

820 set_graph_function file in the debugfs tracing directory.

821

822 gamecon.map[2|3]=

823 [HW,JOY] Multisystem joystick and NES/SNES/PSX pad

824 support via parallel port (up to 5 devices per port)

825 Format: <port#>,<pad1>,<pad2>,<pad3>,<pad4>,<pad5>

826 See also Documentation/input/joystick-parport.txt

827

828 gamma= [HW,DRM]

829

830 gart_fix_e820= [X86_64] disable the fix e820 for K8 GART

831 Format: off | on

832 default: on

833

834 gcov_persist= [GCOV] When non-zero (default), profiling data for

835 kernel modules is saved and remains accessible via

836 debugfs, even when the module is unloaded/reloaded.

837 When zero, profiling data is discarded and associated

Page 123: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

122 Manuale DEFT 7

838 debugfs files are removed at module unload time.

839

840 gdth= [HW,SCSI]

841 See header of drivers/scsi/gdth.c.

842

843 gpt [EFI] Forces disk with valid GPT signature but

844 invalid Protective MBR to be treated as GPT.

845

846 gvp11= [HW,SCSI]

847

848 hashdist= [KNL,NUMA] Large hashes allocated during boot

849 are distributed across NUMA nodes. Defaults on

850 for 64bit NUMA, off otherwise.

851 Format: 0 | 1 (for off | on)

852

853 hcl= [IA-64] SGI's Hardware Graph compatibility layer

854

855 hd= [EIDE] (E)IDE hard drive subsystem geometry

856 Format: <cyl>,<head>,<sect>

857

858 hest_disable [ACPI]

859 Disable Hardware Error Source Table (HEST) support;

860 corresponding firmware-first mode error processing

861 logic will be disabled.

862

863 highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an

exact

864 size of <nn>. This works even on boxes that have no

865 highmem otherwise. This also works to reduce highmem

866 size on bigger boxes.

867

868 highres= [KNL] Enable/disable high resolution timer mode.

869 Valid parameters: "on", "off"

870 Default: "on"

Page 124: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

123 Manuale DEFT 7

871

872 hisax= [HW,ISDN]

873 See Documentation/isdn/README.HiSax.

874

875 hlt [BUGS=ARM,SH]

876

877 hpet= [X86-32,HPET] option to control HPET usage

878 Format: { enable (default) | disable | force |

879 verbose }

880 disable: disable HPET and use PIT instead

881 force: allow force enabled of undocumented chips (ICH4,

882 VIA, nVidia)

883 verbose: show contents of HPET registers during setup

884

885 hugepages= [HW,X86-32,IA-64] HugeTLB pages to allocate at boot.

886 hugepagesz= [HW,IA-64,PPC,X86-64] The size of the HugeTLB pages.

887 On x86-64 and powerpc, this option can be specified

888 multiple times interleaved with hugepages= to reserve

889 huge pages of different sizes. Valid pages sizes on

890 x86-64 are 2M (when the CPU supports "pse") and 1G

891 (when the CPU supports the "pdpe1gb" cpuinfo flag)

892 Note that 1GB pages can only be allocated at boot time

893 using hugepages= and not freed afterwards.

894

895 hvc_iucv= [S390] Number of z/VM IUCV hypervisor console (HVC)

896 terminal devices. Valid values: 0..8

897 hvc_iucv_allow= [S390] Comma-separated list of z/VM user IDs.

898 If specified, z/VM IUCV HVC accepts connections

899 from listed z/VM user IDs only.

900

901 i2c_bus= [HW] Override the default board specific I2C bus speed

902 or register an additional I2C bus that is not

903 registered from board initialization code.

904 Format:

Page 125: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

124 Manuale DEFT 7

905 <bus_id>,<clkrate>

906

907 i8042.debug [HW] Toggle i8042 debug mode

908 i8042.direct [HW] Put keyboard port into non-translated mode

909 i8042.dumbkbd [HW] Pretend that controller can only read data from

910 keyboard and cannot control its state

911 (Don't attempt to blink the leds)

912 i8042.noaux [HW] Don't check for auxiliary (== mouse) port

913 i8042.nokbd [HW] Don't check/create keyboard port

914 i8042.noloop [HW] Disable the AUX Loopback command while probing

915 for the AUX port

916 i8042.nomux [HW] Don't check presence of an active multiplexing

917 controller

918 i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX

919 controllers

920 i8042.panicblink=

921 [HW] Frequency with which keyboard LEDs should blink

922 when kernel panics (default is 0.5 sec)

923 i8042.reset [HW] Reset the controller during init and cleanup

924 i8042.unlock [HW] Unlock (ignore) the keylock

925

926 i810= [HW,DRM]

927

928 i8k.ignore_dmi [HW] Continue probing hardware even if DMI data

929 indicates that the driver is running on unsupported

930 hardware.

931 i8k.force [HW] Activate i8k driver even if SMM BIOS signature

932 does not match list of supported models.

933 i8k.power_status

934 [HW] Report power status in /proc/i8k

935 (disabled by default)

936 i8k.restricted [HW] Allow controlling fans only if SYS_ADMIN

937 capability is set.

938

Page 126: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

125 Manuale DEFT 7

939 ibmmcascsi= [HW,MCA,SCSI] IBM MicroChannel SCSI adapter

940 See Documentation/mca.txt.

941

942 icn= [HW,ISDN]

943 Format: <io>[,<membase>[,<icn_id>[,<icn_id2>]]]

944

945 ide-core.nodma= [HW] (E)IDE subsystem

946 Format: =0.0 to prevent dma on hda, =0.1 hdb =1.0 hdc

947 .vlb_clock .pci_clock .noflush .nohpa .noprobe .nowerr

948 .cdrom .chs .ignore_cable are additional options

949 See Documentation/ide/ide.txt.

950

951 ide-pci-generic.all-generic-ide [HW] (E)IDE subsystem

952 Claim all unknown PCI IDE storage controllers.

953

954 idle= [X86]

955 Format: idle=poll, idle=mwait, idle=halt, idle=nomwait

956 Poll forces a polling idle loop that can slightly

957 improve the performance of waking up a idle CPU, but

958 will use a lot of power and make the system run hot.

959 Not recommended.

960 idle=mwait: On systems which support MONITOR/MWAIT

but

961 the kernel chose to not use it because it doesn't save

962 as much power as a normal idle loop, use the

963 MONITOR/MWAIT idle loop anyways. Performance should

be

964 the same as idle=poll.

965 idle=halt: Halt is forced to be used for CPU idle.

966 In such case C2/C3 won't be used again.

967 idle=nomwait: Disable mwait for CPU C-states

968

969 ignore_loglevel [KNL]

970 Ignore loglevel setting - this will print /all/

Page 127: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

126 Manuale DEFT 7

971 kernel messages to the console. Useful for debugging.

972

973 ihash_entries= [KNL]

974 Set number of hash buckets for inode cache.

975

976 ima_audit= [IMA]

977 Format: { "0" | "1" }

978 0 -- integrity auditing messages. (Default)

979 1 -- enable informational integrity auditing messages.

980

981 ima_hash= [IMA]

982 Format: { "sha1" | "md5" }

983 default: "sha1"

984

985 ima_tcb [IMA]

986 Load a policy which meets the needs of the Trusted

987 Computing Base. This means IMA will measure all

988 programs exec'd, files mmap'd for exec, and all files

989 opened for read by uid=0.

990

991 in2000= [HW,SCSI]

992 See header of drivers/scsi/in2000.c.

993

994 init= [KNL]

995 Format: <full_path>

996 Run specified binary instead of /sbin/init as init

997 process.

998

999 initcall_debug [KNL] Trace initcalls as they are executed. Useful

1000 for working out where the kernel is dying during

1001 startup.

1002

1003 initrd= [BOOT] Specify the location of the initial ramdisk

1004

Page 128: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

127 Manuale DEFT 7

1005 inport.irq= [HW] Inport (ATI XL and Microsoft) busmouse driver

1006 Format: <irq>

1007

1008 intel_iommu= [DMAR] Intel IOMMU driver (DMAR) option

1009 on

1010 Enable intel iommu driver.

1011 off

1012 Disable intel iommu driver.

1013 igfx_off [Default Off]

1014 By default, gfx is mapped as normal device. If a gfx

1015 device has a dedicated DMAR unit, the DMAR unit is

1016 bypassed by not enabling DMAR with this option. In

1017 this case, gfx device will use physical address for

1018 DMA.

1019 forcedac [x86_64]

1020 With this option iommu will not optimize to look

1021 for io virtual address below 32 bit forcing dual

1022 address cycle on pci bus for cards supporting greater

1023 than 32 bit addressing. The default is to look

1024 for translation below 32 bit and if not available

1025 then look in the higher range.

1026 strict [Default Off]

1027 With this option on every unmap_single operation will

1028 result in a hardware IOTLB flush operation as opposed

1029 to batching them for performance.

1030

1031 inttest= [IA64]

1032

1033 iomem= Disable strict checking of access to MMIO memory

1034 strict regions from userspace.

1035 relaxed

1036

1037 iommu= [x86]

1038 off

Page 129: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

128 Manuale DEFT 7

1039 force

1040 noforce

1041 biomerge

1042 panic

1043 nopanic

1044 merge

1045 nomerge

1046 forcesac

1047 soft

1048 pt [x86, IA64]

1049

1050 io7= [HW] IO7 for Marvel based alpha systems

1051 See comment before marvel_specify_io7 in

1052 arch/alpha/kernel/core_marvel.c.

1053

1054 io_delay= [X86] I/O delay method

1055 0x80

1056 Standard port 0x80 based delay

1057 0xed

1058 Alternate port 0xed based delay (needed on some

systems)

1059 udelay

1060 Simple two microseconds delay

1061 none

1062 No delay

1063

1064 ip= [IP_PNP]

1065 See Documentation/filesystems/nfs/nfsroot.txt.

1066

1067 ip2= [HW] Set IO/IRQ pairs for up to 4 IntelliPort boards

1068 See comment before ip2_setup() in

1069 drivers/char/ip2/ip2base.c.

1070

1071 ips= [HW,SCSI] Adaptec / IBM ServeRAID controller

Page 130: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

129 Manuale DEFT 7

1072 See header of drivers/scsi/ips.c.

1073

1074 irqfixup [HW]

1075 When an interrupt is not handled search all handlers

1076 for it. Intended to get systems with badly broken

1077 firmware running.

1078

1079 irqpoll [HW]

1080 When an interrupt is not handled search all handlers

1081 for it. Also check all handlers each timer

1082 interrupt. Intended to get systems with badly broken

1083 firmware running.

1084

1085 isapnp= [ISAPNP]

1086 Format: <RDP>,<reset>,<pci_scan>,<verbosity>

1087

1088 isolcpus= [KNL,SMP] Isolate CPUs from the general scheduler.

1089 Format:

1090 <cpu number>,...,<cpu number>

1091 or

1092 <cpu number>-<cpu number>

1093 (must be a positive range in ascending order)

1094 or a mixture

1095 <cpu number>,...,<cpu number>-<cpu number>

1096

1097 This option can be used to specify one or more CPUs

1098 to isolate from the general SMP balancing and scheduling

1099 algorithms. You can move a process onto or off an

1100 "isolated" CPU via the CPU affinity syscalls or cpuset.

1101 <cpu number> begins at 0 and the maximum value is

1102 "number of CPUs in system - 1".

1103

1104 This option is the preferred way to isolate CPUs. The

1105 alternative -- manually setting the CPU mask of all

Page 131: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

130 Manuale DEFT 7

1106 tasks in the system -- can cause problems and

1107 suboptimal load balancer performance.

1108

1109 iucv= [HW,NET]

1110

1111 js= [HW,JOY] Analog joystick

1112 See Documentation/input/joystick.txt.

1113

1114 keepinitrd [HW,ARM]

1115

1116 kernelcore=nn[KMG] [KNL,X86,IA-64,PPC] This parameter

1117 specifies the amount of memory usable by the kernel

1118 for non-movable allocations. The requested amount is

1119 spread evenly throughout all nodes in the system. The

1120 remaining memory in each node is used for Movable

1121 pages. In the event, a node is too small to have both

1122 kernelcore and Movable pages, kernelcore pages will

1123 take priority and other nodes will have a larger number

1124 of kernelcore pages. The Movable zone is used for the

1125 allocation of pages that may be reclaimed or moved

1126 by the page migration subsystem. This means that

1127 HugeTLB pages may not be allocated from this zone.

1128 Note that allocations like PTEs-from-HighMem still

1129 use the HighMem zone if it exists, and the Normal

1130 zone if it does not.

1131

1132 kgdbdbgp= [KGDB,HW] kgdb over EHCI USB debug port.

1133 Format: <Controller#>[,poll interval]

1134 The controller # is the number of the ehci USB debug

1135 port as it is probed via PCI. The poll interval is

1136 optional and is the number seconds in between

1137 each poll cycle to the debug port in case you need

1138 the functionality for interrupting the kernel with

1139 gdb or control-c on the dbgp connection. When

Page 132: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

131 Manuale DEFT 7

1140 not using this parameter you use sysrq-g to break into

1141 the kernel debugger.

1142

1143 kgdboc= [KGDB,HW] kgdb over consoles.

1144 Requires a tty driver that supports console polling,

1145 or a supported polling keyboard driver (non-USB).

1146 Serial only format: <serial_device>[,baud]

1147 keyboard only format: kbd

1148 keyboard and serial format: kbd,<serial_device>[,baud]

1149

1150 kgdbwait [KGDB] Stop kernel execution and enter the

1151 kernel debugger at the earliest opportunity.

1152

1153 kmac= [MIPS] korina ethernet MAC address.

1154 Configure the RouterBoard 532 series on-chip

1155 Ethernet adapter MAC address.

1156

1157 kmemleak= [KNL] Boot-time kmemleak enable/disable

1158 Valid arguments: on, off

1159 Default: on

1160

1161 kstack=N [X86] Print N words from the kernel stack

1162 in oops dumps.

1163

1164 kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.

1165 Default is 0 (don't ignore, but inject #GP)

1166

1167 kvm.oos_shadow= [KVM] Disable out-of-sync shadow paging.

1168 Default is 1 (enabled)

1169

1170 kvm-amd.nested= [KVM,AMD] Allow nested virtualization in

KVM/SVM.

1171 Default is 0 (off)

1172

Page 133: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

132 Manuale DEFT 7

1173 kvm-amd.npt= [KVM,AMD] Disable nested paging (virtualized MMU)

1174 for all guests.

1175 Default is 1 (enabled) if in 64bit or 32bit-PAE mode

1176

1177 kvm-intel.bypass_guest_pf=

1178 [KVM,Intel] Disables bypassing of guest page faults

1179 on Intel chips. Default is 1 (enabled)

1180

1181 kvm-intel.ept= [KVM,Intel] Disable extended page tables

1182 (virtualized MMU) support on capable Intel chips.

1183 Default is 1 (enabled)

1184

1185 kvm-intel.emulate_invalid_guest_state=

1186 [KVM,Intel] Enable emulation of invalid guest states

1187 Default is 0 (disabled)

1188

1189 kvm-intel.flexpriority=

1190 [KVM,Intel] Disable FlexPriority feature (TPR shadow).

1191 Default is 1 (enabled)

1192

1193 kvm-intel.unrestricted_guest=

1194 [KVM,Intel] Disable unrestricted guest feature

1195 (virtualized real and unpaged mode) on capable

1196 Intel chips. Default is 1 (enabled)

1197

1198 kvm-intel.vpid= [KVM,Intel] Disable Virtual Processor Identification

1199 feature (tagged TLBs) on capable Intel chips.

1200 Default is 1 (enabled)

1201

1202 l2cr= [PPC]

1203

1204 l3cr= [PPC]

1205

1206 lapic [X86-32,APIC] Enable the local APIC even if BIOS

Page 134: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

133 Manuale DEFT 7

1207 disabled it.

1208

1209 lapic_timer_c2_ok [X86,APIC] trust the local apic timer

1210 in C2 power state.

1211

1212 libata.dma= [LIBATA] DMA control

1213 libata.dma=0 Disable all PATA and SATA DMA

1214 libata.dma=1 PATA and SATA Disk DMA only

1215 libata.dma=2 ATAPI (CDROM) DMA only

1216 libata.dma=4 Compact Flash DMA only

1217 Combinations also work, so libata.dma=3 enables DMA

1218 for disks and CDROMs, but not CFs.

1219

1220 libata.ignore_hpa= [LIBATA] Ignore HPA limit

1221 libata.ignore_hpa=0 keep BIOS limits (default)

1222 libata.ignore_hpa=1 ignore limits, using full disk

1223

1224 libata.noacpi [LIBATA] Disables use of ACPI in libata suspend/resume

1225 when set.

1226 Format: <int>

1227

1228 libata.force= [LIBATA] Force configurations. The format is comma

1229 separated list of "[ID:]VAL" where ID is

1230 PORT[.DEVICE]. PORT and DEVICE are decimal numbers

1231 matching port, link or device. Basically, it matches

1232 the ATA ID string printed on console by libata. If

1233 the whole ID part is omitted, the last PORT and DEVICE

1234 values are used. If ID hasn't been specified yet, the

1235 configuration applies to all ports, links and devices.

1236

1237 If only DEVICE is omitted, the parameter applies to

1238 the port and all links and devices behind it. DEVICE

1239 number of 0 either selects the first device or the

1240 first fan-out link behind PMP device. It does not

Page 135: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

134 Manuale DEFT 7

1241 select the host link. DEVICE number of 15 selects the

1242 host link and device attached to it.

1243

1244 The VAL specifies the configuration to force. As long

1245 as there's no ambiguity shortcut notation is allowed.

1246 For example, both 1.5 and 1.5G would work for 1.5Gbps.

1247 The following configurations can be forced.

1248

1249 * Cable type: 40c, 80c, short40c, unk, ign or sata.

1250 Any ID with matching PORT is used.

1251

1252 * SATA link speed limit: 1.5Gbps or 3.0Gbps.

1253

1254 * Transfer mode: pio[0-7], mwdma[0-4] and udma[0-7].

1255 udma[/][16,25,33,44,66,100,133] notation is also

1256 allowed.

1257

1258 * [no]ncq: Turn on or off NCQ.

1259

1260 * nohrst, nosrst, norst: suppress hard, soft

1261 and both resets.

1262

1263 * dump_id: dump IDENTIFY data.

1264

1265 If there are multiple matching configurations changing

1266 the same attribute, the last one is used.

1267

1268 memblock=debug [KNL] Enable memblock debug messages.

1269

1270 load_ramdisk= [RAM] List of ramdisks to load from floppy

1271 See Documentation/blockdev/ramdisk.txt.

1272

1273 lockd.nlm_grace_period=P [NFS] Assign grace period.

1274 Format: <integer>

Page 136: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

135 Manuale DEFT 7

1275

1276 lockd.nlm_tcpport=N [NFS] Assign TCP port.

1277 Format: <integer>

1278

1279 lockd.nlm_timeout=T [NFS] Assign timeout value.

1280 Format: <integer>

1281

1282 lockd.nlm_udpport=M [NFS] Assign UDP port.

1283 Format: <integer>

1284

1285 logibm.irq= [HW,MOUSE] Logitech Bus Mouse Driver

1286 Format: <irq>

1287

1288 loglevel= All Kernel Messages with a loglevel smaller than the

1289 console loglevel will be printed to the console. It can

1290 also be changed with klogd or other programs. The

1291 loglevels are defined as follows:

1292

1293 0 (KERN_EMERG) system is unusable

1294 1 (KERN_ALERT) action must be taken

immediately

1295 2 (KERN_CRIT) critical conditions

1296 3 (KERN_ERR) error conditions

1297 4 (KERN_WARNING) warning conditions

1298 5 (KERN_NOTICE) normal but significant

condition

1299 6 (KERN_INFO) informational

1300 7 (KERN_DEBUG) debug-level messages

1301

1302 log_buf_len=n Sets the size of the printk ring buffer, in bytes.

1303 Format: { n | nk | nM }

1304 n must be a power of two. The default size

1305 is set in the kernel config file.

1306

Page 137: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

136 Manuale DEFT 7

1307 logo.nologo [FB] Disables display of the built-in Linux logo.

1308 This may be used to provide more screen space for

1309 kernel log messages and is useful when debugging

1310 kernel boot problems.

1311

1312 lp=0 [LP] Specify parallel ports to use, e.g,

1313 lp=port[,port...] lp=none,parport0 (lp0 not configured, lp1 uses

1314 lp=reset first parallel port). 'lp=0' disables the

1315 lp=auto printer driver. 'lp=reset' (which can be

1316 specified in addition to the ports) causes

1317 attached printers to be reset. Using

1318 lp=port1,port2,... specifies the parallel ports

1319 to associate lp devices with, starting with

1320 lp0. A port specification may be 'none' to skip

1321 that lp device, or a parport name such as

1322 'parport0'. Specifying 'lp=auto' instead of a

1323 port specification list means that device IDs

1324 from each port should be examined, to see if

1325 an IEEE 1284-compliant printer is attached; if

1326 so, the driver will manage that printer.

1327 See also header of drivers/char/lp.c.

1328

1329 lpj=n [KNL]

1330 Sets loops_per_jiffy to given constant, thus avoiding

1331 time-consuming boot-time autodetection (up to 250 ms

per

1332 CPU). 0 enables autodetection (default). To determine

1333 the correct value for your kernel, boot with normal

1334 autodetection and see what value is printed. Note that

1335 on SMP systems the preset will be applied to all CPUs,

1336 which is likely to cause problems if your CPUs need

1337 significantly divergent settings. An incorrect value

1338 will cause delays in the kernel to be wrong, leading to

1339 unpredictable I/O errors and other breakage. Although

Page 138: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

137 Manuale DEFT 7

1340 unlikely, in the extreme case this might damage your

1341 hardware.

1342

1343 ltpc= [NET]

1344 Format: <io>,<irq>,<dma>

1345

1346 mac5380= [HW,SCSI] Format:

1347

<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>

1348

1349 machvec= [IA64] Force the use of a particular machine-vector

1350 (machvec) in a generic kernel.

1351 Example: machvec=hpzx1_swiotlb

1352

1353 machtype= [Loongson] Share the same kernel image file between

different

1354 yeeloong laptop.

1355 Example: machtype=lemote-yeeloong-2f-7inch

1356

1357 max_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory greater

1358 than or equal to this physical address is ignored.

1359

1360 maxcpus= [SMP] Maximum number of processors that an SMP

kernel

1361 should make use of. maxcpus=n : n >= 0 limits the

1362 kernel to using 'n' processors. n=0 is a special case,

1363 it is equivalent to "nosmp", which also disables

1364 the IO APIC.

1365

1366 max_loop= [LOOP] Maximum number of loopback devices that can

1367 be mounted

1368 Format: <1-256>

1369

1370 max_luns= [SCSI] Maximum number of LUNs to probe.

Page 139: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

138 Manuale DEFT 7

1371 Should be between 1 and 2^32-1.

1372

1373 max_report_luns=

1374 [SCSI] Maximum number of LUNs received.

1375 Should be between 1 and 16384.

1376

1377 mcatest= [IA-64]

1378

1379 mce [X86-32] Machine Check Exception

1380

1381 mce=option [X86-64] See Documentation/x86/x86_64/boot-options.txt

1382

1383 md= [HW] RAID subsystems devices and level

1384 See Documentation/md.txt.

1385

1386 mdacon= [MDA]

1387 Format: <first>,<last>

1388 Specifies range of consoles to be captured by the MDA.

1389

1390 mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory

1391 Amount of memory to be used when the kernel is not able

1392 to see the whole system memory or for test.

1393 [X86-32] Use together with memmap= to avoid physical

1394 address space collisions. Without memmap= PCI devices

1395 could be placed at addresses belonging to unused RAM.

1396

1397 mem=nopentium [BUGS=X86-32] Disable usage of 4MB pages for

kernel

1398 memory.

1399

1400 memchunk=nn[KMG]

1401 [KNL,SH] Allow user to override the default size for

1402 per-device physically contiguous DMA buffers.

1403

Page 140: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

139 Manuale DEFT 7

1404 memmap=exactmap [KNL,X86] Enable setting of an exact

1405 E820 memory map, as specified by the user.

1406 Such memmap=exactmap lines can be constructed based

on

1407 BIOS output or other requirements. See the

memmap=nn@ss

1408 option description.

1409

1410 memmap=nn[KMG]@ss[KMG]

1411 [KNL] Force usage of a specific region of memory

1412 Region of memory to be used, from ss to ss+nn.

1413

1414 memmap=nn[KMG]#ss[KMG]

1415 [KNL,ACPI] Mark specific memory as ACPI data.

1416 Region of memory to be used, from ss to ss+nn.

1417

1418 memmap=nn[KMG]$ss[KMG]

1419 [KNL,ACPI] Mark specific memory as reserved.

1420 Region of memory to be used, from ss to ss+nn.

1421 Example: Exclude memory from 0x18690000-0x1869ffff

1422 memmap=64K$0x18690000

1423 or

1424 memmap=0x10000$0x18690000

1425

1426 memory_corruption_check=0/1 [X86]

1427 Some BIOSes seem to corrupt the first 64k of

1428 memory when doing things like suspend/resume.

1429 Setting this option will scan the memory

1430 looking for corruption. Enabling this will

1431 both detect corruption and prevent the kernel

1432 from using the memory being corrupted.

1433 However, its intended as a diagnostic tool; if

1434 repeatable BIOS-originated corruption always

1435 affects the same memory, you can use memmap=

Page 141: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

140 Manuale DEFT 7

1436 to prevent the kernel from using that memory.

1437

1438 memory_corruption_check_size=size [X86]

1439 By default it checks for corruption in the low

1440 64k, making this memory unavailable for normal

1441 use. Use this parameter to scan for

1442 corruption in more or less memory.

1443

1444 memory_corruption_check_period=seconds [X86]

1445 By default it checks for corruption every 60

1446 seconds. Use this parameter to check at some

1447 other rate. 0 disables periodic checking.

1448

1449 memtest= [KNL,X86] Enable memtest

1450 Format: <integer>

1451 default : 0 <disable>

1452 Specifies the number of memtest passes to be

1453 performed. Each pass selects another test

1454 pattern from a given set of patterns. Memtest

1455 fills the memory with this pattern, validates

1456 memory contents and reserves bad memory

1457 regions that are detected.

1458

1459 meye.*= [HW] Set MotionEye Camera parameters

1460 See Documentation/video4linux/meye.txt.

1461

1462 mfgpt_irq= [IA-32] Specify the IRQ to use for the

1463 Multi-Function General Purpose Timers on AMD Geode

1464 platforms.

1465

1466 mfgptfix [X86-32] Fix MFGPT timers on AMD Geode platforms

when

1467 the BIOS has incorrectly applied a workaround. TinyBIOS

1468 version 0.98 is known to be affected, 0.99 fixes the

Page 142: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

141 Manuale DEFT 7

1469 problem by letting the user disable the workaround.

1470

1471 mga= [HW,DRM]

1472

1473 min_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory below this

1474 physical address is ignored.

1475

1476 mini2440= [ARM,HW,KNL]

1477 Format:[0..2][b][c][t]

1478 Default: "0tb"

1479 MINI2440 configuration specification:

1480 0 - The attached screen is the 3.5" TFT

1481 1 - The attached screen is the 7" TFT

1482 2 - The VGA Shield is attached (1024x768)

1483 Leaving out the screen size parameter will not load

1484 the TFT driver, and the framebuffer will be left

1485 unconfigured.

1486 b - Enable backlight. The TFT backlight pin will be

1487 linked to the kernel VESA blanking code and a GPIO

1488 LED. This parameter is not necessary when using the

1489 VGA shield.

1490 c - Enable the s3c camera interface.

1491 t - Reserved for enabling touchscreen support. The

1492 touchscreen support is not enabled in the mainstream

1493 kernel as of 2.6.30, a preliminary port can be found

1494 in the "bleeding edge" mini2440 support kernel at

1495 http://repo.or.cz/w/linux-2.6/mini2440.git

1496

1497 mminit_loglevel=

1498 [KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this

1499 parameter allows control of the logging verbosity for

1500 the additional memory initialisation checks. A value

1501 of 0 disables mminit logging and a level of 4 will

1502 log everything. Information is printed at KERN_DEBUG

Page 143: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

142 Manuale DEFT 7

1503 so loglevel=8 may also need to be specified.

1504

1505 mousedev.tap_time=

1506 [MOUSE] Maximum time between finger touching and

1507 leaving touchpad surface for touch to be considered

1508 a tap and be reported as a left button click (for

1509 touchpads working in absolute mode only).

1510 Format: <msecs>

1511 mousedev.xres= [MOUSE] Horizontal screen resolution, used for

devices

1512 reporting absolute coordinates, such as tablets

1513 mousedev.yres= [MOUSE] Vertical screen resolution, used for

devices

1514 reporting absolute coordinates, such as tablets

1515

1516 movablecore=nn[KMG] [KNL,X86,IA-64,PPC] This parameter

1517 is similar to kernelcore except it specifies the

1518 amount of memory used for migratable allocations.

1519 If both kernelcore and movablecore is specified,

1520 then kernelcore will be at *least* the specified

1521 value but may be more. If movablecore on its own

1522 is specified, the administrator must be careful

1523 that the amount of memory usable for all allocations

1524 is not too small.

1525

1526 mpu401= [HW,OSS]

1527 Format: <io>,<irq>

1528

1529 MTD_Partition= [MTD]

1530 Format: <name>,<region-number>,<size>,<offset>

1531

1532 MTD_Region= [MTD] Format:

1533 <name>,<region-

number>[,<base>,<size>,<buswidth>,<altbuswidth>]

Page 144: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

143 Manuale DEFT 7

1534

1535 mtdparts= [MTD]

1536 See drivers/mtd/cmdlinepart.c.

1537

1538 onenand.bdry= [HW,MTD] Flex-OneNAND Boundary Configuration

1539

1540 Format:

[die0_boundary][,die0_lock][,die1_boundary][,die1_lock]

1541

1542 boundary - index of last SLC block on Flex-OneNAND.

1543 The remaining blocks are configured as MLC

blocks.

1544 lock - Configure if Flex-OneNAND boundary should be

locked.

1545 Once locked, the boundary cannot be changed.

1546 1 indicates lock status, 0 indicates unlock status.

1547

1548 mtdset= [ARM]

1549 ARM/S3C2412 JIVE boot control

1550

1551 See arch/arm/mach-s3c2412/mach-jive.c

1552

1553 mtouchUSB.raw_coordinates=

1554 [HW] Make the MicroTouch USB driver use raw

coordinates

1555 ('y', default) or cooked coordinates ('n')

1556

1557 mtrr_chunk_size=nn[KMG] [X86]

1558 used for mtrr cleanup. It is largest continuous chunk

1559 that could hold holes aka. UC entries.

1560

1561 mtrr_gran_size=nn[KMG] [X86]

1562 Used for mtrr cleanup. It is granularity of mtrr block.

1563 Default is 1.

Page 145: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

144 Manuale DEFT 7

1564 Large value could prevent small alignment from

1565 using up MTRRs.

1566

1567 mtrr_spare_reg_nr=n [X86]

1568 Format: <integer>

1569 Range: 0,7 : spare reg number

1570 Default : 1

1571 Used for mtrr cleanup. It is spare mtrr entries number.

1572 Set to 2 or more if your graphical card needs more.

1573

1574 n2= [NET] SDL Inc. RISCom/N2 synchronous serial card

1575

1576 NCR_D700= [HW,SCSI]

1577 See header of drivers/scsi/NCR_D700.c.

1578

1579 ncr5380= [HW,SCSI]

1580

1581 ncr53c400= [HW,SCSI]

1582

1583 ncr53c400a= [HW,SCSI]

1584

1585 ncr53c406a= [HW,SCSI]

1586

1587 ncr53c8xx= [HW,SCSI]

1588

1589 netdev= [NET] Network devices parameters

1590 Format: <irq>,<io>,<mem_start>,<mem_end>,<name>

1591 Note that mem_start is often overloaded to mean

1592 something different and driver-specific.

1593 This usage is only documented in each driver source

1594 file if at all.

1595

1596 nf_conntrack.acct=

1597 [NETFILTER] Enable connection tracking flow accounting

Page 146: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

145 Manuale DEFT 7

1598 0 to disable accounting

1599 1 to enable accounting

1600 Default value depends on CONFIG_NF_CT_ACCT that is

1601 going to be removed in 2.6.29.

1602

1603 nfsaddrs= [NFS]

1604 See Documentation/filesystems/nfs/nfsroot.txt.

1605

1606 nfsroot= [NFS] nfs root filesystem for disk-less boxes.

1607 See Documentation/filesystems/nfs/nfsroot.txt.

1608

1609 nfs.callback_tcpport=

1610 [NFS] set the TCP port on which the NFSv4 callback

1611 channel should listen.

1612

1613 nfs.cache_getent=

1614 [NFS] sets the pathname to the program which is used

1615 to update the NFS client cache entries.

1616

1617 nfs.cache_getent_timeout=

1618 [NFS] sets the timeout after which an attempt to

1619 update a cache entry is deemed to have failed.

1620

1621 nfs.idmap_cache_timeout=

1622 [NFS] set the maximum lifetime for idmapper cache

1623 entries.

1624

1625 nfs.enable_ino64=

1626 [NFS] enable 64-bit inode numbers.

1627 If zero, the NFS client will fake up a 32-bit inode

1628 number for the readdir() and stat() syscalls instead

1629 of returning the full 64-bit number.

1630 The default is to return 64-bit inode numbers.

1631

Page 147: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

146 Manuale DEFT 7

1632 nmi_debug= [KNL,AVR32,SH] Specify one or more actions to take

1633 when a NMI is triggered.

1634 Format: [state][,regs][,debounce][,die]

1635

1636 nmi_watchdog= [KNL,BUGS=X86] Debugging features for SMP

kernels

1637 Format: [panic,][num]

1638 Valid num: 0,1,2

1639 0 - turn nmi_watchdog off

1640 1 - use the IO-APIC timer for the NMI watchdog

1641 2 - use the local APIC for the NMI watchdog using

1642 a performance counter. Note: This will use one

1643 performance counter and the local APIC's performance

1644 vector.

1645 When panic is specified, panic when an NMI watchdog

1646 timeout occurs.

1647 This is useful when you use a panic=... timeout and

1648 need the box quickly up again.

1649 Instead of 1 and 2 it is possible to use the following

1650 symbolic names: lapic and ioapic

1651 Example: nmi_watchdog=2 or nmi_watchdog=panic,lapic

1652

1653 netpoll.carrier_timeout=

1654 [NET] Specifies amount of time (in seconds) that

1655 netpoll should wait for a carrier. By default netpoll

1656 waits 4 seconds.

1657

1658 no387 [BUGS=X86-32] Tells the kernel to use the 387 maths

1659 emulation library even if a 387 maths coprocessor

1660 is present.

1661

1662 no_console_suspend

1663 [HW] Never suspend the console

1664 Disable suspending of consoles during suspend and

Page 148: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

147 Manuale DEFT 7

1665 hibernate operations. Once disabled, debugging

1666 messages can reach various consoles while the rest

1667 of the system is being put to sleep (ie, while

1668 debugging driver suspend/resume hooks). This may

1669 not work reliably with all consoles, but is known

1670 to work with serial and VGA consoles.

1671

1672 noaliencache [MM, NUMA, SLAB] Disables the allocation of alien

1673 caches in the slab allocator. Saves per-node memory,

1674 but will impact performance.

1675

1676 noalign [KNL,ARM]

1677

1678 noapic [SMP,APIC] Tells the kernel to not make use of any

1679 IOAPICs that may be present in the system.

1680

1681 nobats [PPC] Do not use BATs for mapping kernel lowmem

1682 on "Classic" PPC cores.

1683

1684 nocache [ARM]

1685

1686 noclflush [BUGS=X86] Don't use the CLFLUSH instruction

1687

1688 nodelayacct [KNL] Disable per-task delay accounting

1689

1690 nodisconnect [HW,SCSI,M68K] Disables SCSI disconnects.

1691

1692 nodsp [SH] Disable hardware DSP at boot time.

1693

1694 noefi [X86] Disable EFI runtime services support.

1695

1696 noexec [IA-64]

1697

1698 noexec [X86]

Page 149: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

148 Manuale DEFT 7

1699 On X86-32 available only on PAE configured kernels.

1700 noexec=on: enable non-executable mappings (default)

1701 noexec=off: disable non-executable mappings

1702

1703 noexec32 [X86-64]

1704 This affects only 32-bit executables.

1705 noexec32=on: enable non-executable mappings (default)

1706 read doesn't imply executable mappings

1707 noexec32=off: disable non-executable mappings

1708 read implies executable mappings

1709

1710 nofpu [SH] Disable hardware FPU at boot time.

1711

1712 nofxsr [BUGS=X86-32] Disables x86 floating point extended

1713 register save and restore. The kernel will only save

1714 legacy floating-point registers on task switch.

1715

1716 noxsave [BUGS=X86] Disables x86 extended register state

save

1717 and restore using xsave. The kernel will fallback to

1718 enabling legacy floating-point and sse state.

1719

1720 nohlt [BUGS=ARM,SH] Tells the kernel that the sleep(SH) or

1721 wfi(ARM) instruction doesn't work correctly and not to

1722 use it. This is also useful when using JTAG debugger.

1723

1724 no-hlt [BUGS=X86-32] Tells the kernel that the hlt

1725 instruction doesn't work correctly and not to

1726 use it.

1727

1728 no_file_caps Tells the kernel not to honor file capabilities. The

1729 only way then for a file to be executed with privilege

1730 is to be setuid root or executed by root.

1731

Page 150: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

149 Manuale DEFT 7

1732 nohalt [IA-64] Tells the kernel not to use the power saving

1733 function PAL_HALT_LIGHT when idle. This increases

1734 power-consumption. On the positive side, it reduces

1735 interrupt wake-up latency, which may improve

performance

1736 in certain environments such as networked servers or

1737 real-time systems.

1738

1739 nohz= [KNL] Boottime enable/disable dynamic ticks

1740 Valid arguments: on, off

1741 Default: on

1742

1743 noiotrap [SH] Disables trapped I/O port accesses.

1744

1745 noirqdebug [X86-32] Disables the code which attempts to detect and

1746 disable unhandled interrupt sources.

1747

1748 no_timer_check [X86,APIC] Disables the code which tests for

1749 broken timer IRQ sources.

1750

1751 noisapnp [ISAPNP] Disables ISA PnP code.

1752

1753 noinitrd [RAM] Tells the kernel not to load any configured

1754 initial RAM disk.

1755

1756 nointremap [X86-64, Intel-IOMMU] Do not enable interrupt

1757 remapping.

1758

1759 nointroute [IA-64]

1760

1761 nojitter [IA64] Disables jitter checking for ITC timers.

1762

1763 nolapic [X86-32,APIC] Do not enable or use the local APIC.

1764

Page 151: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

150 Manuale DEFT 7

1765 nolapic_timer [X86-32,APIC] Do not use the local APIC timer.

1766

1767 noltlbs [PPC] Do not use large page/tlb entries for kernel

1768 lowmem mapping on PPC40x.

1769

1770 nomca [IA-64] Disable machine check abort handling

1771

1772 nomce [X86-32] Machine Check Exception

1773

1774 nomfgpt [X86-32] Disable Multi-Function General Purpose

1775 Timer usage (for AMD Geode machines).

1776

1777 nopat [X86] Disable PAT (page attribute table extension of

1778 pagetables) support.

1779

1780 norandmaps Don't use address space randomization. Equivalent to

1781 echo 0 > /proc/sys/kernel/randomize_va_space

1782

1783 noreplace-paravirt [X86-32,PV_OPS] Don't patch paravirt_ops

1784

1785 noreplace-smp [X86-32,SMP] Don't replace SMP instructions

1786 with UP alternatives

1787

1788 noresidual [PPC] Don't use residual data on PReP machines.

1789

1790 noresume [SWSUSP] Disables resume and restores original swap

1791 space.

1792

1793 no-scroll [VGA] Disables scrollback.

1794 This is required for the Braillex ib80-piezo Braille

1795 reader made by F.H. Papenmeier (Germany).

1796

1797 nosbagart [IA-64]

1798

Page 152: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

151 Manuale DEFT 7

1799 nosep [BUGS=X86-32] Disables x86 SYSENTER/SYSEXIT support.

1800

1801 nosmp [SMP] Tells an SMP kernel to act as a UP kernel,

1802 and disable the IO APIC. legacy for "maxcpus=0".

1803

1804 nosoftlockup [KNL] Disable the soft-lockup detector.

1805

1806 noswapaccount [KNL] Disable accounting of swap in memory resource

1807 controller. (See Documentation/cgroups/memory.txt)

1808

1809 nosync [HW,M68K] Disables sync negotiation for all devices.

1810

1811 notsc [BUGS=X86-32] Disable Time Stamp Counter

1812

1813 noUSB [USB] Disable the USB subsystem

1814

1815 nowb [ARM]

1816

1817 nox2apic [X86-64,APIC] Do not enable x2APIC mode.

1818

1819 nptcg= [IA64] Override max number of concurrent global TLB

1820 purges which is reported from either PAL_VM_SUMMARY

or

1821 SAL PALO.

1822

1823 nr_cpus= [SMP] Maximum number of processors that an SMP

kernel

1824 could support. nr_cpus=n : n >= 1 limits the kernel to

1825 supporting 'n' processors. Later in runtime you can not

1826 use hotplug cpu feature to put more cpu back to online.

1827 just like you compile the kernel NR_CPUS=n

1828

1829 nr_uarts= [SERIAL] maximum number of UARTs to be registered.

1830

Page 153: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

152 Manuale DEFT 7

1831 numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA.

1832 one of ['zone', 'node', 'default'] can be specified

1833 This can be set from sysctl after boot.

1834 See Documentation/sysctl/vm.txt for details.

1835

1836 ohci1394_dma=early [HW] enable debugging via the ohci1394 driver.

1837 See Documentation/debugging-via-ohci1394.txt for more

1838 info.

1839

1840 olpc_ec_timeout= [OLPC] ms delay when issuing EC commands

1841 Rather than timing out after 20 ms if an EC

1842 command is not properly ACKed, override the length

1843 of the timeout. We have interrupts disabled while

1844 waiting for the ACK, so if this is set too high

1845 interrupts *may* be lost!

1846

1847 omap_mux= [OMAP] Override bootloader pin multiplexing.

1848 Format: <mux_mode0.mode_name=value>...

1849 For example, to override I2C bus2:

1850

omap_mux=i2c2_scl.i2c2_scl=0x100,i2c2_sda.i2c2_sda=0x100

1851

1852 opl3= [HW,OSS]

1853 Format: <io>

1854

1855 oprofile.timer= [HW]

1856 Use timer interrupt instead of performance counters

1857

1858 oprofile.cpu_type= Force an oprofile cpu type

1859 This might be useful if you have an older oprofile

1860 userland or if you want common events.

1861 Format: { arch_perfmon }

1862 arch_perfmon: [X86] Force use of architectural

1863 perfmon on Intel CPUs instead of the

Page 154: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

153 Manuale DEFT 7

1864 CPU specific event set.

1865

1866 osst= [HW,SCSI] SCSI Tape Driver

1867 Format: <buffer_size>,<write_threshold>

1868 See also Documentation/scsi/st.txt.

1869

1870 panic= [KNL] Kernel behaviour on panic

1871 Format: <timeout>

1872

1873 parkbd.port= [HW] Parallel port number the keyboard adapter is

1874 connected to, default is 0.

1875 Format: <parport#>

1876 parkbd.mode= [HW] Parallel port keyboard adapter mode of operation,

1877 0 for XT, 1 for AT (default is AT).

1878 Format: <mode>

1879

1880 parport= [HW,PPT] Specify parallel ports. 0 disables.

1881 Format: { 0 | auto | 0xBBB[,IRQ[,DMA]] }

1882 Use 'auto' to force the driver to use any

1883 IRQ/DMA settings detected (the default is to

1884 ignore detected IRQ/DMA settings because of

1885 possible conflicts). You can specify the base

1886 address, IRQ, and DMA settings; IRQ and DMA

1887 should be numbers, or 'auto' (for using detected

1888 settings on that particular port), or 'nofifo'

1889 (to avoid using a FIFO even if it is detected).

1890 Parallel ports are assigned in the order they

1891 are specified on the command line, starting

1892 with parport0.

1893

1894 parport_init_mode= [HW,PPT]

1895 Configure VIA parallel port to operate in

1896 a specific mode. This is necessary on Pegasos

1897 computer where firmware has no options for setting

Page 155: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

154 Manuale DEFT 7

1898 up parallel port mode and sets it to spp.

1899 Currently this function knows 686a and 8231 chips.

1900 Format: [spp|ps2|epp|ecp|ecpepp]

1901

1902 pas2= [HW,OSS] Format:

1903

<io>,<irq>,<dma>,<dma16>,<sb_io>,<sb_irq>,<sb_dma>,<sb_dma16>

1904

1905 pas16= [HW,SCSI]

1906 See header of drivers/scsi/pas16.c.

1907

1908 pause_on_oops=

1909 Halt all CPUs after the first oops has been printed for

1910 the specified number of seconds. This is to be used if

1911 your oopses keep scrolling off the screen.

1912

1913 pcbit= [HW,ISDN]

1914

1915 pcd. [PARIDE]

1916 See header of drivers/block/paride/pcd.c.

1917 See also Documentation/blockdev/paride.txt.

1918

1919 pci=option[,option...] [PCI] various PCI subsystem options:

1920 earlydump [X86] dump PCI config space before the kernel

1921 changes anything

1922 off [X86] don't probe for the PCI bus

1923 bios [X86-32] force use of PCI BIOS, don't access

1924 the hardware directly. Use this if your machine

1925 has a non-standard PCI host bridge.

1926 nobios [X86-32] disallow use of PCI BIOS, only direct

1927 hardware access methods are allowed. Use this

1928 if you experience crashes upon bootup and you

1929 suspect they are caused by the BIOS.

1930 conf1 [X86] Force use of PCI Configuration

Page 156: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

155 Manuale DEFT 7

1931 Mechanism 1.

1932 conf2 [X86] Force use of PCI Configuration

1933 Mechanism 2.

1934 noaer [PCIE] If the PCIEAER kernel config parameter is

1935 enabled, this kernel boot option can be used to

1936 disable the use of PCIE advanced error reporting.

1937 nodomains [PCI] Disable support for multiple PCI

1938 root domains (aka PCI segments, in ACPI-speak).

1939 nommconf [X86] Disable use of MMCONFIG for PCI

1940 Configuration

1941 check_enable_amd_mmconf [X86] check for and enable

1942 properly configured MMIO access to PCI

1943 config space on AMD family 10h CPU

1944 nomsi [MSI] If the PCI_MSI kernel config parameter is

1945 enabled, this kernel boot option can be used to

1946 disable the use of MSI interrupts system-wide.

1947 noioapicquirk [APIC] Disable all boot interrupt quirks.

1948 Safety option to keep boot IRQs enabled. This

1949 should never be necessary.

1950 ioapicreroute [APIC] Enable rerouting of boot IRQs to the

1951 primary IO-APIC for bridges that cannot disable

1952 boot IRQs. This fixes a source of spurious IRQs

1953 when the system masks IRQs.

1954 noioapicreroute [APIC] Disable workaround that uses the

1955 boot IRQ equivalent of an IRQ that connects to

1956 a chipset where boot IRQs cannot be disabled.

1957 The opposite of ioapicreroute.

1958 biosirq [X86-32] Use PCI BIOS calls to get the interrupt

1959 routing table. These calls are known to be buggy

1960 on several machines and they hang the machine

1961 when used, but on other computers it's the only

1962 way to get the interrupt routing table. Try

1963 this option if the kernel is unable to allocate

1964 IRQs or discover secondary PCI buses on your

Page 157: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

156 Manuale DEFT 7

1965 motherboard.

1966 rom [X86] Assign address space to expansion ROMs.

1967 Use with caution as certain devices share

1968 address decoders between ROMs and other

1969 resources.

1970 norom [X86] Do not assign address space to

1971 expansion ROMs that do not already have

1972 BIOS assigned address ranges.

1973 irqmask=0xMMMM [X86] Set a bit mask of IRQs allowed to be

1974 assigned automatically to PCI devices. You can

1975 make the kernel exclude IRQs of your ISA cards

1976 this way.

1977 pirqaddr=0xAAAAA [X86] Specify the physical address

1978 of the PIRQ table (normally generated

1979 by the BIOS) if it is outside the

1980 F0000h-100000h range.

1981 lastbus=N [X86] Scan all buses thru bus #N. Can be

1982 useful if the kernel is unable to find your

1983 secondary buses and you want to tell it

1984 explicitly which ones they are.

1985 assign-busses [X86] Always assign all PCI bus

1986 numbers ourselves, overriding

1987 whatever the firmware may have done.

1988 usepirqmask [X86] Honor the possible IRQ mask stored

1989 in the BIOS $PIR table. This is needed on

1990 some systems with broken BIOSes, notably

1991 some HP Pavilion N5400 and Omnibook XE3

1992 notebooks. This will have no effect if ACPI

1993 IRQ routing is enabled.

1994 noacpi [X86] Do not use ACPI for IRQ routing

1995 or for PCI scanning.

1996 use_crs [X86] Use PCI host bridge window information

1997 from ACPI. On BIOSes from 2008 or later, this

1998 is enabled by default. If you need to use this,

Page 158: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

157 Manuale DEFT 7

1999 please report a bug.

2000 nocrs [X86] Ignore PCI host bridge windows from ACPI.

2001 If you need to use this, please report a bug.

2002 routeirq Do IRQ routing for all PCI devices.

2003 This is normally done in pci_enable_device(),

2004 so this option is a temporary workaround

2005 for broken drivers that don't call it.

2006 skip_isa_align [X86] do not align io start addr, so can

2007 handle more pci cards

2008 firmware [ARM] Do not re-enumerate the bus but instead

2009 just use the configuration from the

2010 bootloader. This is currently used on

2011 IXP2000 systems where the bus has to be

2012 configured a certain way for adjunct CPUs.

2013 noearly [X86] Don't do any early type 1 scanning.

2014 This might help on some broken boards which

2015 machine check when some devices' config space

2016 is read. But various workarounds are disabled

2017 and some IOMMU drivers will not work.

2018 bfsort Sort PCI devices into breadth-first order.

2019 This sorting is done to get a device

2020 order compatible with older (<= 2.4) kernels.

2021 nobfsort Don't sort PCI devices into breadth-first order.

2022 cbiosize=nn[KMG] The fixed amount of bus space which is

2023 reserved for the CardBus bridge's IO window.

2024 The default value is 256 bytes.

2025 cbmemsize=nn[KMG] The fixed amount of bus space which is

2026 reserved for the CardBus bridge's memory

2027 window. The default value is 64 megabytes.

2028 resource_alignment=

2029 Format:

2030 [<order of

align>[AT]][<domain>:]<bus>:<slot>.<func>[; ..[DOT]]

2031 Specifies alignment and device to reassign

Page 159: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

158 Manuale DEFT 7

2032 aligned memory resources.

2033 If <order of align> is not specified,

2034 PAGE_SIZE is used as alignment.

2035 PCI-PCI bridge can be specified, if resource

2036 windows need to be expanded.

2037 ecrc= Enable/disable PCIe ECRC (transaction layer

2038 end-to-end CRC checking).

2039 bios: Use BIOS/firmware settings. This is the

2040 the default.

2041 off: Turn ECRC off

2042 on: Turn ECRC on.

2043

2044 pcie_aspm= [PCIE] Forcibly enable or disable PCIe Active State Power

2045 Management.

2046 off Disable ASPM.

2047 force Enable ASPM even on devices that claim not to support it.

2048 WARNING: Forcing ASPM on may cause system lockups.

2049

2050 pcie_pme= [PCIE,PM] Native PCIe PME signaling options:

2051 Format: {auto|force}[,nomsi]

2052 auto Use native PCIe PME signaling if the BIOS allows the

2053 kernel to control PCIe config registers of root ports.

2054 force Use native PCIe PME signaling even if the BIOS refuses

2055 to allow the kernel to control the relevant PCIe config

2056 registers.

2057 nomsi Do not use MSI for native PCIe PME signaling (this makes

2058 all PCIe root ports use INTx for everything).

2059

2060 pcmv= [HW,PCMCIA] BadgePAD 4

2061

2062 pd. [PARIDE]

2063 See Documentation/blockdev/paride.txt.

2064

2065 pdcchassis= [PARISC,HW] Disable/Enable PDC Chassis Status codes at

Page 160: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

159 Manuale DEFT 7

2066 boot time.

2067 Format: { 0 | 1 }

2068 See arch/parisc/kernel/pdc_chassis.c

2069

2070 percpu_alloc= Select which percpu first chunk allocator to use.

2071 Currently supported values are "embed" and "page".

2072 Archs may support subset or none of the selections.

2073 See comments in mm/percpu.c for details on each

2074 allocator. This parameter is primarily for debugging

2075 and performance comparison.

2076

2077 pf. [PARIDE]

2078 See Documentation/blockdev/paride.txt.

2079

2080 pg. [PARIDE]

2081 See Documentation/blockdev/paride.txt.

2082

2083 pirq= [SMP,APIC] Manual mp-table setup

2084 See Documentation/x86/i386/IO-APIC.txt.

2085

2086 plip= [PPT,NET] Parallel port network link

2087 Format: { parport<nr> | timid | 0 }

2088 See also Documentation/parport.txt.

2089

2090 pmtmr= [X86] Manual setup of pmtmr I/O Port.

2091 Override pmtimer IOPort with a hex value.

2092 e.g. pmtmr=0x508

2093

2094 pnp.debug [PNP]

2095 Enable PNP debug messages. This depends on the

2096 CONFIG_PNP_DEBUG_MESSAGES option.

2097

2098 pnpacpi= [ACPI]

2099 { off }

Page 161: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

160 Manuale DEFT 7

2100

2101 pnpbios= [ISAPNP]

2102 { on | off | curr | res | no-curr | no-res }

2103

2104 pnp_reserve_irq=

2105 [ISAPNP] Exclude IRQs for the autoconfiguration

2106

2107 pnp_reserve_dma=

2108 [ISAPNP] Exclude DMAs for the autoconfiguration

2109

2110 pnp_reserve_io= [ISAPNP] Exclude I/O ports for the

autoconfiguration

2111 Ranges are in pairs (I/O port base and size).

2112

2113 pnp_reserve_mem=

2114 [ISAPNP] Exclude memory regions for the

2115 autoconfiguration.

2116 Ranges are in pairs (memory base and size).

2117

2118 ports= [IP_VS_FTP] IPVS ftp helper module

2119 Default is 21.

2120 Up to 8 (IP_VS_APP_MAX_PORTS) ports

2121 may be specified.

2122 Format: <port>,<port>....

2123

2124 print-fatal-signals=

2125 [KNL] debug: print fatal signals

2126

2127 If enabled, warn about various signal handling

2128 related application anomalies: too many signals,

2129 too many POSIX.1 timers, fatal signals causing a

2130 coredump - etc.

2131

2132 If you hit the warning due to signal overflow,

Page 162: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

161 Manuale DEFT 7

2133 you might want to try "ulimit -i unlimited".

2134

2135 default: off.

2136

2137 printk.time= Show timing data prefixed to each printk message line

2138 Format: <bool> (1/Y/y=enable, 0/N/n=disable)

2139

2140 processor.max_cstate= [HW,ACPI]

2141 Limit processor to maximum C-state

2142 max_cstate=9 overrides any DMI blacklist limit.

2143

2144 processor.nocst [HW,ACPI]

2145 Ignore the _CST method to determine C-states,

2146 instead using the legacy FADT method

2147

2148 profile= [KNL] Enable kernel profiling via /proc/profile

2149 Format: [schedule,]<number>

2150 Param: "schedule" - profile schedule points.

2151 Param: <number> - step/bucket size as a power of 2 for

2152 statistical time based profiling.

2153 Param: "sleep" - profile D-state sleeping (millisecs).

2154 Requires CONFIG_SCHEDSTATS

2155 Param: "kvm" - profile VM exits.

2156

2157 prompt_ramdisk= [RAM] List of RAM disks to prompt for floppy disk

2158 before loading.

2159 See Documentation/blockdev/ramdisk.txt.

2160

2161 psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol

extension to

2162 probe for; one of (bare|imps|exps|lifebook|any).

2163 psmouse.rate= [HW,MOUSE] Set desired mouse report rate, in reports

2164 per second.

2165 psmouse.resetafter= [HW,MOUSE]

Page 163: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

162 Manuale DEFT 7

2166 Try to reset the device after so many bad packets

2167 (0 = never).

2168 psmouse.resolution=

2169 [HW,MOUSE] Set desired mouse resolution, in dpi.

2170 psmouse.smartscroll=

2171 [HW,MOUSE] Controls Logitech smartscroll autorepeat.

2172 0 = disabled, 1 = enabled (default).

2173

2174 pss= [HW,OSS] Personal Sound System (ECHO ESC614)

2175 Format:

2176

<io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq>

2177

2178 pt. [PARIDE]

2179 See Documentation/blockdev/paride.txt.

2180

2181 pty.legacy_count=

2182 [KNL] Number of legacy pty's. Overwrites compiled-in

2183 default number.

2184

2185 quiet [KNL] Disable most log messages

2186

2187 r128= [HW,DRM]

2188

2189 raid= [HW,RAID]

2190 See Documentation/md.txt.

2191

2192 ramdisk_blocksize= [RAM]

2193 See Documentation/blockdev/ramdisk.txt.

2194

2195 ramdisk_size= [RAM] Sizes of RAM disks in kilobytes

2196 See Documentation/blockdev/ramdisk.txt.

2197

2198 rcupdate.blimit= [KNL,BOOT]

Page 164: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

163 Manuale DEFT 7

2199 Set maximum number of finished RCU callbacks to process

2200 in one batch.

2201

2202 rcupdate.qhimark= [KNL,BOOT]

2203 Set threshold of queued

2204 RCU callbacks over which batch limiting is disabled.

2205

2206 rcupdate.qlowmark= [KNL,BOOT]

2207 Set threshold of queued RCU callbacks below which

2208 batch limiting is re-enabled.

2209

2210 rdinit= [KNL]

2211 Format: <full_path>

2212 Run specified binary instead of /init from the ramdisk,

2213 used for early userspace startup. See initrd.

2214

2215 reboot= [BUGS=X86-32,BUGS=ARM,BUGS=IA-64]

Rebooting mode

2216 Format: <reboot_mode>[,<reboot_mode2>[,...]]

2217 See arch/*/kernel/reboot.c or arch/*/kernel/process.c

2218

2219 relax_domain_level=

2220 [KNL, SMP] Set scheduler's default relax_domain_level.

2221 See Documentation/cgroups/cpusets.txt.

2222

2223 reserve= [KNL,BUGS] Force the kernel to ignore some iomem area

2224

2225 reservetop= [X86-32]

2226 Format: nn[KMG]

2227 Reserves a hole at the top of the kernel virtual

2228 address space.

2229

2230 reset_devices [KNL] Force drivers to reset the underlying device

2231 during initialization.

Page 165: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

164 Manuale DEFT 7

2232

2233 resume= [SWSUSP]

2234 Specify the partition device for software suspend

2235

2236 resume_offset= [SWSUSP]

2237 Specify the offset from the beginning of the partition

2238 given by "resume=" at which the swap header is located,

2239 in <PAGE_SIZE> units (needed only for swap files).

2240 See Documentation/power/swsusp-and-swap-files.txt

2241

2242 retain_initrd [RAM] Keep initrd memory after extraction

2243

2244 rhash_entries= [KNL,NET]

2245 Set number of hash buckets for route cache

2246

2247 riscom8= [HW,SERIAL]

2248 Format: <io_board1>[,<io_board2>[,...<io_boardN>]]

2249

2250 ro [KNL] Mount root device read-only on boot

2251

2252 root= [KNL] Root filesystem

2253

2254 rootdelay= [KNL] Delay (in seconds) to pause before attempting to

2255 mount the root filesystem

2256

2257 rootflags= [KNL] Set root filesystem mount option string

2258

2259 rootfstype= [KNL] Set root filesystem type

2260

2261 rootwait [KNL] Wait (indefinitely) for root device to show up.

2262 Useful for devices that are detected asynchronously

2263 (e.g. USB and MMC devices).

2264

2265 rw [KNL] Mount root device read-write on boot

Page 166: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

165 Manuale DEFT 7

2266

2267 S [KNL] Run init in single mode

2268

2269 sa1100ir [NET]

2270 See drivers/net/irda/sa1100_ir.c.

2271

2272 sbni= [NET] Granch SBNI12 leased line adapter

2273

2274 sched_debug [KNL] Enables verbose scheduler debug messages.

2275

2276 scsi_debug_*= [SCSI]

2277 See drivers/scsi/scsi_debug.c.

2278

2279 scsi_default_dev_flags=

2280 [SCSI] SCSI default device flags

2281 Format: <integer>

2282

2283 scsi_dev_flags= [SCSI] Black/white list entry for vendor and model

2284 Format: <vendor>:<model>:<flags>

2285 (flags are integer value)

2286

2287 scsi_logging_level= [SCSI] a bit mask of logging levels

2288 See drivers/scsi/scsi_logging.h for bits. Also

2289 settable via sysctl at dev.scsi.logging_level

2290 (/proc/sys/dev/scsi/logging_level).

2291 There is also a nice 'scsi_logging_level' script in the

2292 S390-tools package, available for download at

2293 http://www-

128.ibm.com/developerworks/linux/linux390/s390-tools-1.5.4.html

2294

2295 scsi_mod.scan= [SCSI] sync (default) scans SCSI busses as they are

2296 discovered. async scans them in kernel threads,

2297 allowing boot to proceed. none ignores them, expecting

2298 user space to do the scan.

Page 167: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

166 Manuale DEFT 7

2299

2300 security= [SECURITY] Choose a security module to enable at boot.

2301 If this boot parameter is not specified, only the first

2302 security module asking for security registration will be

2303 loaded. An invalid security module name will be treated

2304 as if no module has been chosen.

2305

2306 selinux= [SELINUX] Disable or enable SELinux at boot time.

2307 Format: { "0" | "1" }

2308 See security/selinux/Kconfig help text.

2309 0 -- disable.

2310 1 -- enable.

2311 Default value is set via kernel config option.

2312 If enabled at boot time, /selinux/disable can be used

2313 later to disable prior to initial policy load.

2314

2315 serialnumber [BUGS=X86-32]

2316

2317 shapers= [NET]

2318 Maximal number of shapers.

2319

2320 show_msr= [x86] show boot-time MSR settings

2321 Format: { <integer> }

2322 Show boot-time (BIOS-initialized) MSR settings.

2323 The parameter means the number of CPUs to show,

2324 for example 1 means boot CPU only.

2325

2326 sim710= [SCSI,HW]

2327 See header of drivers/scsi/sim710.c.

2328

2329 simeth= [IA-64]

2330 simscsi=

2331

2332 slram= [HW,MTD]

Page 168: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

167 Manuale DEFT 7

2333

2334 slub_debug[=options[,slabs]] [MM, SLUB]

2335 Enabling slub_debug allows one to determine the

2336 culprit if slab objects become corrupted. Enabling

2337 slub_debug can create guard zones around objects and

2338 may poison objects when not in use. Also tracks the

2339 last alloc / free. For more information see

2340 Documentation/vm/slub.txt.

2341

2342 slub_max_order= [MM, SLUB]

2343 Determines the maximum allowed order for slabs.

2344 A high setting may cause OOMs due to memory

2345 fragmentation. For more information see

2346 Documentation/vm/slub.txt.

2347

2348 slub_min_objects= [MM, SLUB]

2349 The minimum number of objects per slab. SLUB will

2350 increase the slab order up to slub_max_order to

2351 generate a sufficiently large slab able to contain

2352 the number of objects indicated. The higher the number

2353 of objects the smaller the overhead of tracking slabs

2354 and the less frequently locks need to be acquired.

2355 For more information see Documentation/vm/slub.txt.

2356

2357 slub_min_order= [MM, SLUB]

2358 Determines the mininum page order for slabs. Must be

2359 lower than slub_max_order.

2360 For more information see Documentation/vm/slub.txt.

2361

2362 slub_nomerge [MM, SLUB]

2363 Disable merging of slabs with similar size. May be

2364 necessary if there is some reason to distinguish

2365 allocs to different slabs. Debug options disable

2366 merging on their own.

Page 169: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

168 Manuale DEFT 7

2367 For more information see Documentation/vm/slub.txt.

2368

2369 smart2= [HW]

2370 Format: <io1>[,<io2>[,...,<io8>]]

2371

2372 smp-alt-once [X86-32,SMP] On a hotplug CPU system, only

2373 attempt to substitute SMP alternatives once at boot.

2374

2375 smsc-ircc2.nopnp [HW] Don't use PNP to discover SMC devices

2376 smsc-ircc2.ircc_cfg= [HW] Device configuration I/O port

2377 smsc-ircc2.ircc_sir= [HW] SIR base I/O port

2378 smsc-ircc2.ircc_fir= [HW] FIR base I/O port

2379 smsc-ircc2.ircc_irq= [HW] IRQ line

2380 smsc-ircc2.ircc_dma= [HW] DMA channel

2381 smsc-ircc2.ircc_transceiver= [HW] Transceiver type:

2382 0: Toshiba Satellite 1800 (GP data pin select)

2383 1: Fast pin select (default)

2384 2: ATC IRMode

2385

2386 snd-ad1816a= [HW,ALSA]

2387

2388 snd-ad1848= [HW,ALSA]

2389

2390 snd-ali5451= [HW,ALSA]

2391

2392 snd-als100= [HW,ALSA]

2393

2394 snd-als4000= [HW,ALSA]

2395

2396 snd-azt2320= [HW,ALSA]

2397

2398 snd-cmi8330= [HW,ALSA]

2399

2400 snd-cmipci= [HW,ALSA]

Page 170: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

169 Manuale DEFT 7

2401

2402 snd-cs4231= [HW,ALSA]

2403

2404 snd-cs4232= [HW,ALSA]

2405

2406 snd-cs4236= [HW,ALSA]

2407

2408 snd-cs4281= [HW,ALSA]

2409

2410 snd-cs46xx= [HW,ALSA]

2411

2412 snd-dt019x= [HW,ALSA]

2413

2414 snd-dummy= [HW,ALSA]

2415

2416 snd-emu10k1= [HW,ALSA]

2417

2418 snd-ens1370= [HW,ALSA]

2419

2420 snd-ens1371= [HW,ALSA]

2421

2422 snd-es968= [HW,ALSA]

2423

2424 snd-es1688= [HW,ALSA]

2425

2426 snd-es18xx= [HW,ALSA]

2427

2428 snd-es1938= [HW,ALSA]

2429

2430 snd-es1968= [HW,ALSA]

2431

2432 snd-fm801= [HW,ALSA]

2433

2434 snd-gusclassic= [HW,ALSA]

Page 171: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

170 Manuale DEFT 7

2435

2436 snd-gusextreme= [HW,ALSA]

2437

2438 snd-gusmax= [HW,ALSA]

2439

2440 snd-hdsp= [HW,ALSA]

2441

2442 snd-ice1712= [HW,ALSA]

2443

2444 snd-intel8x0= [HW,ALSA]

2445

2446 snd-interwave= [HW,ALSA]

2447

2448 snd-interwave-stb=

2449 [HW,ALSA]

2450

2451 snd-korg1212= [HW,ALSA]

2452

2453 snd-maestro3= [HW,ALSA]

2454

2455 snd-mpu401= [HW,ALSA]

2456

2457 snd-mtpav= [HW,ALSA]

2458

2459 snd-nm256= [HW,ALSA]

2460

2461 snd-opl3sa2= [HW,ALSA]

2462

2463 snd-opti92x-ad1848=

2464 [HW,ALSA]

2465

2466 snd-opti92x-cs4231=

2467 [HW,ALSA]

2468

Page 172: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

171 Manuale DEFT 7

2469 snd-opti93x= [HW,ALSA]

2470

2471 snd-pmac= [HW,ALSA]

2472

2473 snd-rme32= [HW,ALSA]

2474

2475 snd-rme96= [HW,ALSA]

2476

2477 snd-rme9652= [HW,ALSA]

2478

2479 snd-sb8= [HW,ALSA]

2480

2481 snd-sb16= [HW,ALSA]

2482

2483 snd-sbawe= [HW,ALSA]

2484

2485 snd-serial= [HW,ALSA]

2486

2487 snd-sgalaxy= [HW,ALSA]

2488

2489 snd-sonicvibes= [HW,ALSA]

2490

2491 snd-sun-amd7930=

2492 [HW,ALSA]

2493

2494 snd-sun-cs4231= [HW,ALSA]

2495

2496 snd-trident= [HW,ALSA]

2497

2498 snd-USB-audio= [HW,ALSA,USB]

2499

2500 snd-via82xx= [HW,ALSA]

2501

2502 snd-virmidi= [HW,ALSA]

Page 173: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

172 Manuale DEFT 7

2503

2504 snd-wavefront= [HW,ALSA]

2505

2506 snd-ymfpci= [HW,ALSA]

2507

2508 softlockup_panic=

2509 [KNL] Should the soft-lockup detector generate panics.

2510

2511 sonypi.*= [HW] Sony Programmable I/O Control Device driver

2512 See Documentation/sonypi.txt

2513

2514 specialix= [HW,SERIAL] Specialix multi-serial port adapter

2515 See Documentation/serial/specialix.txt.

2516

2517 spia_io_base= [HW,MTD]

2518 spia_fio_base=

2519 spia_pedr=

2520 spia_peddr=

2521

2522 sscape= [HW,OSS]

2523 Format: <io>,<irq>,<dma>,<mpu_io>,<mpu_irq>

2524

2525 st= [HW,SCSI] SCSI tape parameters (buffers, etc.)

2526 See Documentation/scsi/st.txt.

2527

2528 stacktrace [FTRACE]

2529 Enabled the stack tracer on boot up.

2530

2531 sti= [PARISC,HW]

2532 Format: <num>

2533 Set the STI (builtin display/keyboard on the HP-PARISC

2534 machines) console (graphic card) which should be used

2535 as the initial boot-console.

2536 See also comment in drivers/video/console/sticore.c.

Page 174: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

173 Manuale DEFT 7

2537

2538 sti_font= [HW]

2539 See comment in drivers/video/console/sticore.c.

2540

2541 stifb= [HW]

2542 Format: bpp:<bpp1>[:<bpp2>[:<bpp3>...]]

2543

2544 sunrpc.min_resvport=

2545 sunrpc.max_resvport=

2546 [NFS,SUNRPC]

2547 SunRPC servers often require that client requests

2548 originate from a privileged port (i.e. a port in the

2549 range 0 < portnr < 1024).

2550 An administrator who wishes to reserve some of these

2551 ports for other uses may adjust the range that the

2552 kernel's sunrpc client considers to be privileged

2553 using these two parameters to set the minimum and

2554 maximum port values.

2555

2556 sunrpc.pool_mode=

2557 [NFS]

2558 Control how the NFS server code allocates CPUs to

2559 service thread pools. Depending on how many NICs

2560 you have and where their interrupts are bound, this

2561 option will affect which CPUs will do NFS serving.

2562 Note: this parameter cannot be changed while the

2563 NFS server is running.

2564

2565 auto the server chooses an appropriate mode

2566 automatically using heuristics

2567 global a single global pool contains all CPUs

2568 percpu one pool for each CPU

2569 pernode one pool for each NUMA node

(equivalent

Page 175: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

174 Manuale DEFT 7

2570 to global on non-NUMA machines)

2571

2572 sunrpc.tcp_slot_table_entries=

2573 sunrpc.udp_slot_table_entries=

2574 [NFS,SUNRPC]

2575 Sets the upper limit on the number of simultaneous

2576 RPC calls that can be sent from the client to a

2577 server. Increasing these values may allow you to

2578 improve throughput, but will also increase the

2579 amount of memory reserved for use by the client.

2580

2581 swiotlb= [IA-64] Number of I/O TLB slabs

2582

2583 switches= [HW,M68k]

2584

2585 sym53c416= [HW,SCSI]

2586 See header of drivers/scsi/sym53c416.c.

2587

2588 sysrq_always_enabled

2589 [KNL]

2590 Ignore sysrq setting - this boot parameter will

2591 neutralize any effect of /proc/sys/kernel/sysrq.

2592 Useful for debugging.

2593

2594 t128= [HW,SCSI]

2595 See header of drivers/scsi/t128.c.

2596

2597 tdfx= [HW,DRM]

2598

2599 test_suspend= [SUSPEND]

2600 Specify "mem" (for Suspend-to-RAM) or "standby" (for

2601 standby suspend) as the system sleep state to briefly

2602 enter during system startup. The system is woken from

2603 this state using a wakeup-capable RTC alarm.

Page 176: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

175 Manuale DEFT 7

2604

2605 thash_entries= [KNL,NET]

2606 Set number of hash buckets for TCP connection

2607

2608 thermal.act= [HW,ACPI]

2609 -1: disable all active trip points in all thermal zones

2610 <degrees C>: override all lowest active trip points

2611

2612 thermal.crt= [HW,ACPI]

2613 -1: disable all critical trip points in all thermal zones

2614 <degrees C>: override all critical trip points

2615

2616 thermal.nocrt= [HW,ACPI]

2617 Set to disable actions on ACPI thermal zone

2618 critical and hot trip points.

2619

2620 thermal.off= [HW,ACPI]

2621 1: disable ACPI thermal control

2622

2623 thermal.psv= [HW,ACPI]

2624 -1: disable all passive trip points

2625 <degrees C>: override all passive trip points to this

2626 value

2627

2628 thermal.tzp= [HW,ACPI]

2629 Specify global default ACPI thermal zone polling rate

2630 <deci-seconds>: poll all this frequency

2631 0: no polling (default)

2632

2633 tmscsim= [HW,SCSI]

2634 See comment before function dc390_setup() in

2635 drivers/scsi/tmscsim.c.

2636

2637 topology= [S390]

Page 177: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

176 Manuale DEFT 7

2638 Format: {off | on}

2639 Specify if the kernel should make use of the cpu

2640 topology informations if the hardware supports these.

2641 The scheduler will make use of these informations and

2642 e.g. base its process migration decisions on it.

2643 Default is off.

2644

2645 tp720= [HW,PS2]

2646

2647 tpm_suspend_pcr=[HW,TPM]

2648 Format: integer pcr id

2649 Specify that at suspend time, the tpm driver

2650 should extend the specified pcr with zeros,

2651 as a workaround for some chips which fail to

2652 flush the last written pcr on TPM_SaveState.

2653 This will guarantee that all the other pcrs

2654 are saved.

2655

2656 trace_buf_size=nn[KMG]

2657 [FTRACE] will set tracing buffer size.

2658

2659 trace_event=[event-list]

2660 [FTRACE] Set and start specified trace events in order

2661 to facilitate early boot debugging.

2662 See also Documentation/trace/events.txt

2663

2664 trix= [HW,OSS] MediaTrix AudioTrix Pro

2665 Format:

2666

<io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq>

2667

2668 tsc= Disable clocksource-must-verify flag for TSC.

2669 Format: <string>

2670 [x86] reliable: mark tsc clocksource as reliable, this

Page 178: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

177 Manuale DEFT 7

2671 disables clocksource verification at runtime.

2672 Used to enable high-resolution timer mode on older

2673 hardware, and in virtualized environment.

2674

2675 turbografx.map[2|3]= [HW,JOY]

2676 TurboGraFX parallel port interface

2677 Format:

2678 <port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7>

2679 See also Documentation/input/joystick-parport.txt

2680

2681 u14-34f= [HW,SCSI] UltraStor 14F/34F SCSI host adapter

2682 See header of drivers/scsi/u14-34f.c.

2683

2684 uart401= [HW,OSS]

2685 Format: <io>,<irq>

2686

2687 uart6850= [HW,OSS]

2688 Format: <io>,<irq>

2689

2690 uhash_entries= [KNL,NET]

2691 Set number of hash buckets for UDP/UDP-Lite connections

2692

2693 uhci-hcd.ignore_oc=

2694 [USB] Ignore overcurrent events (default N).

2695 Some badly-designed motherboards generate lots of

2696 bogus events, for ports that aren't wired to

2697 anything. Set this parameter to avoid log spamming.

2698 Note that genuine overcurrent events won't be

2699 reported either.

2700

2701 unknown_nmi_panic

2702 [X86]

2703 Set unknown_nmi_panic=1 early on boot.

2704

Page 179: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

178 Manuale DEFT 7

2705 USBcore.autosuspend=

2706 [USB] The autosuspend time delay (in seconds) used

2707 for newly-detected USB devices (default 2). This

2708 is the time required before an idle device will be

2709 autosuspended. Devices for which the delay is set

2710 to a negative value won't be autosuspended at all.

2711

2712 USBcore.USBfs_snoop=

2713 [USB] Set to log all USBfs traffic (default 0 = off).

2714

2715 USBcore.blinkenlights=

2716 [USB] Set to cycle leds on hubs (default 0 = off).

2717

2718 USBcore.old_scheme_first=

2719 [USB] Start with the old device initialization

2720 scheme (default 0 = off).

2721

2722 USBcore.use_both_schemes=

2723 [USB] Try the other device initialization scheme

2724 if the first one fails (default 1 = enabled).

2725

2726 USBcore.initial_descriptor_timeout=

2727 [USB] Specifies timeout for the initial 64-byte

2728 USB_REQ_GET_DESCRIPTOR request in milliseconds

2729 (default 5000 = 5.0 seconds).

2730

2731 USBhid.mousepoll=

2732 [USBHID] The interval which mice are to be polled at.

2733

2734 USB-storage.delay_use=

2735 [UMS] The delay in seconds before a new device is

2736 scanned for Logical Units (default 5).

2737

2738 USB-storage.quirks=

Page 180: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

179 Manuale DEFT 7

2739 [UMS] A list of quirks entries to supplement or

2740 override the built-in unusual_devs list. List

2741 entries are separated by commas. Each entry has

2742 the form VID:PID:Flags where VID and PID are Vendor

2743 and Product ID values (4-digit hex numbers) and

2744 Flags is a set of characters, each corresponding

2745 to a common USB-storage quirk flag as follows:

2746 a = SANE_SENSE (collect more than 18 bytes

2747 of sense data);

2748 b = BAD_SENSE (don't collect more than 18

2749 bytes of sense data);

2750 c = FIX_CAPACITY (decrease the reported

2751 device capacity by one sector);

2752 h = CAPACITY_HEURISTICS (decrease the

2753 reported device capacity by one

2754 sector if the number is odd);

2755 i = IGNORE_DEVICE (don't bind to this

2756 device);

2757 l = NOT_LOCKABLE (don't try to lock and

2758 unlock ejectable media);

2759 m = MAX_SECTORS_64 (don't transfer more

2760 than 64 sectors = 32 KB at a time);

2761 o = CAPACITY_OK (accept the capacity

2762 reported by the device);

2763 r = IGNORE_RESIDUE (the device reports

2764 bogus residue values);

2765 s = SINGLE_LUN (the device has only one

2766 Logical Unit);

2767 w = NO_WP_DETECT (don't test whether the

2768 medium is write-protected).

2769 Example: quirks=0419:aaf5:rl,0421:0433:rc

2770

2771 userpte=

2772 [X86] Flags controlling user PTE allocations.

Page 181: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

180 Manuale DEFT 7

2773

2774 nohigh = do not allocate PTE pages in

2775 HIGHMEM regardless of setting

2776 of CONFIG_HIGHPTE.

2777

2778 vdso= [X86,SH]

2779 vdso=2: enable compat VDSO (default with

COMPAT_VDSO)

2780 vdso=1: enable VDSO (default)

2781 vdso=0: disable VDSO mapping

2782

2783 vdso32= [X86]

2784 vdso32=2: enable compat VDSO (default with

COMPAT_VDSO)

2785 vdso32=1: enable 32-bit VDSO (default)

2786 vdso32=0: disable 32-bit VDSO mapping

2787

2788 vector= [IA-64,SMP]

2789 vector=percpu: enable percpu vector domain

2790

2791 video= [FB] Frame buffer configuration

2792 See Documentation/fb/modedb.txt.

2793

2794 vga= [BOOT,X86-32] Select a particular video mode

2795 See Documentation/x86/boot.txt and

2796 Documentation/svga.txt.

2797 Use vga=ask for menu.

2798 This is actually a boot loader parameter; the value is

2799 passed to the kernel using a special protocol.

2800

2801 vmalloc=nn[KMG] [KNL,BOOT] Forces the vmalloc area to have an

exact

2802 size of <nn>. This can be used to increase the

2803 minimum size (128MB on x86). It can also be used to

Page 182: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

181 Manuale DEFT 7

2804 decrease the size and leave more room for directly

2805 mapped kernel RAM.

2806

2807 vmhalt= [KNL,S390] Perform z/VM CP command after

system halt.

2808 Format: <command>

2809

2810 vmpanic= [KNL,S390] Perform z/VM CP command after kernel panic.

2811 Format: <command>

2812

2813 vmpoff= [KNL,S390] Perform z/VM CP command after

power off.

2814 Format: <command>

2815

2816 vt.cur_default= [VT] Default cursor shape.

2817 Format: 0xCCBBAA, where AA, BB, and CC are the same as

2818 the parameters of the <Esc>[?A;B;Cc escape sequence;

2819 see VGA-softcursor.txt. Default: 2 = underline.

2820

2821 vt.default_blu= [VT]

2822 Format: <blue0>,<blue1>,<blue2>,...,<blue15>

2823 Change the default blue palette of the console.

2824 This is a 16-member array composed of values

2825 ranging from 0-255.

2826

2827 vt.default_grn= [VT]

2828 Format: <green0>,<green1>,<green2>,...,<green15>

2829 Change the default green palette of the console.

2830 This is a 16-member array composed of values

2831 ranging from 0-255.

2832

2833 vt.default_red= [VT]

2834 Format: <red0>,<red1>,<red2>,...,<red15>

2835 Change the default red palette of the console.

Page 183: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

182 Manuale DEFT 7

2836 This is a 16-member array composed of values

2837 ranging from 0-255.

2838

2839 vt.default_utf8=

2840 [VT]

2841 Format=<0|1>

2842 Set system-wide default UTF-8 mode for all tty's.

2843 Default is 1, i.e. UTF-8 mode is enabled for all

2844 newly opened terminals.

2845

2846 vt.global_cursor_default=

2847 [VT]

2848 Format=<-1|0|1>

2849 Set system-wide default for whether a cursor

2850 is shown on new VTs. Default is -1,

2851 i.e. cursors will be created by default unless

2852 overridden by individual drivers. 0 will hide

2853 cursors, 1 will display them.

2854

2855 waveartist= [HW,OSS]

2856 Format: <io>,<irq>,<dma>,<dma2>

2857

2858 wd33c93= [HW,SCSI]

2859 See header of drivers/scsi/wd33c93.c.

2860

2861 wd7000= [HW,SCSI]

2862 See header of drivers/scsi/wd7000.c.

2863

2864 watchdog timers [HW,WDT] For information on watchdog timers,

2865 see Documentation/watchdog/watchdog-parameters.txt

2866 or other driver-specific files in the

2867 Documentation/watchdog/ directory.

2868

2869 x2apic_phys [X86-64,APIC] Use x2apic physical mode instead of

Page 184: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

183 Manuale DEFT 7

2870 default x2apic cluster mode on platforms

2871 supporting x2apic.

2872

2873 x86_mrst_timer= [X86-32,APBT]

2874 Choose timer option for x86 Moorestown MID platform.

2875 Two valid options are apbt timer only and lapic timer

2876 plus one apbt timer for broadcast timer.

2877 x86_mrst_timer=apbt_only | lapic_and_apbt

2878

2879 xd= [HW,XT] Original XT pre-IDE (RLL encoded) disks.

2880 xd_geo= See header of drivers/block/xd.c.

2881

2882 xirc2ps_cs= [NET,PCMCIA]

2883 Format:

2884

<irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,

<irq4>]]]

Page 185: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

184 Manuale DEFT 7

Capitolo 11: APPENDICE 2 – MAN PAGE

11.1 Mount

Name

mount - mount a file system

Synopsis

mount [-lhV]

mount -a [-fFnrsvw] [-t vfstype] [-O optlist]

mount [-fnrsvw] [-o options [,...]] device | dir

mount [-fnrsvw] [-t vfstype] [-o options] device dir

Description

All files accessible in a Unix system are arranged in one big tree, the file hierarchy, rooted

at /. These files can be spread out over several devices. The mount command serves to

attach the file system found on some device to the big file tree. Conversely, the

umount(8) command will detach it again.

The standard form of the mount command, is

mount -t type device dir

This tells the kernel to attach the file system found on device (which is of type type) at the

directory dir. The previous contents (if any) and owner and mode of dir become invisible,

and as long as this file system remains mounted, the pathname dir refers to the root of

the file system on device.

Three forms of invocation do not actually mount anything:

mount -h

prints a help message;

mount -V

prints a version string; and just

mount [-l] [-t type]

Page 186: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

185 Manuale DEFT 7

lists all mounted file systems (of type type). The option -l adds the (ext2, ext3 and XFS)

labels in this listing. See below.

Since Linux 2.4.0 it is possible to remount part of the file hierarchy somewhere else. The

call is

mount --bind olddir newdir

After this call the same contents is accessible in two places. One can also remount a single

file (on a single file).

This call attaches only (part of) a single filesystem, not possible submounts. The entire file

hierarchy including submounts is attached a second place using

mount --rbind olddir newdir

Note that the filesystem mount options will remain the same as those on the original

mount point, and cannot be changed by passing the -o option along with --bind/--rbind.

Since Linux 2.5.1 it is possible to atomically move a mounted tree to another place. The

call is

mount --move olddir newdir

Since Linux 2.6.15 it is possible to mark a mount and its submounts as shared, private,

slave or unbindable. A shared mount provides ability to create mirrors of that mount such

that mounts and umounts within any of the mirrors propagate to the other mirror. A slave

mount receives propagation from its master, but any not vice-versa. A private mount

carries no propagation abilities. A unbindable mount is a private mount which cannot

cloned through a bind operation. Detailed semantics is documented in

Documentation/sharedsubtree.txt file in the kernel source tree.

mount --make-shared mountpoint

mount --make-slave mountpoint

mount --make-private mountpoint

mount --make-unbindable mountpoint

Page 187: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

186 Manuale DEFT 7

The following commands allows one to recursively change the type of all the mounts

under a given mountpoint.

mount --make-rshared mountpoint

mount --make-rslave mountpoint

mount --make-rprivate mountpoint

"mount --make-runbindable mountpoint"

The proc file system is not associated with a special device, and when mounting it, an

arbitrary keyword, such as proc can be used instead of a device specification. (The

customary choice none is less fortunate: the error message 'none busy' from umount can

be confusing.)

Most devices are indicated by a file name (of a block special device), like /dev/sda1, but

there are other possibilities. For example, in the case of an NFS mount, device may look

like knuth.cwi.nl:/dir. It is possible to indicate a block special device using its volume label

or UUID (see the -L and -U options below).

The file /etc/fstab (see fstab(5)), may contain lines describing what devices are usually

mounted where, using which options. This file is used in three ways:

(i) The command

mount -a [-t type] [-O optlist]

(usually given in a bootscript) causes all file systems mentioned in fstab (of the proper

type and/or having or not having the proper options) to be mounted as indicated, except

for those whose line contains the noauto keyword. Adding the -F option will make mount

fork, so that the filesystems are mounted simultaneously.

(ii) When mounting a file system mentioned in fstab, it suffices to give only the device, or

only the mount point.

(iii) Normally, only the superuser can mount file systems. However, when fstab contains

the user option on a line, anybody can mount the corresponding system.

Page 188: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

187 Manuale DEFT 7

Thus, given a line

/dev/cdrom /cd iso9660 ro,user,noauto,unhide

any user can mount the iso9660 file system found on his CDROM using the command

mount /dev/cdrom

or

mount /cd

For more details, see fstab(5). Only the user that mounted a filesystem can unmount it

again. If any user should be able to unmount, then use users instead of user in the fstab

line. The owner option is similar to the user option, with the restriction that the user must

be the owner of the special file. This may be useful e.g. for /dev/fd if a login script makes

the console user owner of this device. The group option is similar, with the restriction that

the user must be member of the group of the special file.

The programs mount and umount maintain a list of currently mounted file systems in the

file /etc/mtab. If no arguments are given to mount, this list is printed.

When the proc filesystem is mounted (say at /proc), the files /etc/mtab and /proc/mounts

have very similar contents. The former has somewhat more information, such as the

mount options used, but is not necessarily up-to-date (cf. the -n option below). It is

possible to replace /etc/mtab by a symbolic link to /proc/mounts, and especially when

you have very large numbers of mounts things will be much faster with that symlink, but

some information is lost that way, and in particular working with the loop device will be

less convenient, and using the "user" option will fail.

Options

The full set of options used by an invocation of mount is determined by first extracting the

options for the file system from the fstab table, then applying any options specified by the

-o argument, and finally applying a -r or -w option, when present.

Options available for the mount command:

Page 189: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

188 Manuale DEFT 7

-V

Output version.

-h

Print a help message.

-v

Verbose mode.

-a

Mount all filesystems (of the given types) mentioned in fstab.

-F

(Used in conjunction with -a.) Fork off a new incarnation of mount for each device. This

will do the mounts on different devices or different NFS servers in parallel. This has the

advantage that it is faster; also NFS timeouts go in parallel. A disadvantage is that the

mounts are done in undefined order. Thus, you cannot use this option if you want to

mount both /usr and /usr/spool.

-f

Causes everything to be done except for the actual system call; if it's not obvious, this

''fakes'' mounting the file system. This option is useful in conjunction with the -v flag to

determine what the mount command is trying to do. It can also be used to add entries for

devices that were mounted earlier with the -n option.

-i

Don't call the /sbin/mount.<filesystem> helper even if it exists.

-l

Add the ext2, ext3 and XFS labels in the mount output. Mount must have permission to

read the disk device (e.g. be suid root) for this to work. One can set such a label for ext2

or ext3 using the e2label(8) utility, or for XFS using xfs_admin(8), or for reiserfs using

reiserfstune(8).

-n

Mount without writing in /etc/mtab. This is necessary for example when /etc is on a

read-only file system.

-pnum

In case of a loop mount with encryption, read the passphrase from file descriptor num

instead of from the terminal.

-s

Tolerate sloppy mount options rather than failing. This will ignore mount options not

supported by a filesystem type. Not all filesystems support this option. This option exists

Page 190: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

189 Manuale DEFT 7

for support of the Linux autofs-based automounter.

-r

Mount the file system read-only. A synonym is -o ro.

-w

Mount the file system read/write. This is the default. A synonym is -o rw.

-L label

Mount the partition that has the specified label.

-U uuid

Mount the partition that has the specified uuid. These two options require the file

/proc/partitions (present since Linux 2.1.116) to exist.

-t vfstype

The argument following the -t is used to indicate the file system type. The file system

types which are currently supported include: adfs, affs, autofs, cifs, coda, coherent,

cramfs, debugfs, devpts, efs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs,

nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos,

USBfs, vfat, xenix, xfs, xiafs. Note that coherent, sysv and xenix are equivalent and that

xenix and coherent will be removed at some point in the future -- use sysv instead. Since

kernel version 2.1.21 the types ext and xiafs do not exist anymore. Earlier, USBfs was

known as USBdevfs.

For most types all the mount program has to do is issue a simple mount(2) system call,

and no detailed knowledge of the filesystem type is required. For a few types however

(like nfs, nfs4, cifs, smbfs, ncpfs) ad hoc code is necessary. The nfs ad hoc code is built in,

but cifs, smbfs, and ncpfs have a separate mount program. In order to make it possible to

treat all types in a uniform way, mount will execute the program /sbin/mount.TYPE (if

that exists) when called with type TYPE. Since various versions of the smbmount program

have different calling conventions, /sbin/mount.smbfs may have to be a shell script that

sets up the desired call.

If no -t option is given, or if the auto type is specified, mount will try to guess the

desired type. If mount was compiled with the blkid library, the guessing is done by this

library. Otherwise, mount guesses itself by probing the superblock; if that does not turn

up anything that looks familiar, mount will try to read the file /etc/filesystems, or, if that

does not exist, /proc/filesystems. All of the filesystem types listed there will be tried,

except for those that are labeled "nodev" (e.g., devpts, proc, nfs, and nfs4). If

/etc/filesystems ends in a line with a single * only, mount will read /proc/filesystems

afterwards.

The auto type may be useful for user-mounted floppies. Creating a file /etc/filesystems

can be useful to change the probe order (e.g., to try vfat before msdos or ext3 before

Page 191: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

190 Manuale DEFT 7

ext2) or if you use a kernel module autoloader. Warning: the probing uses a heuristic (the

presence of appropriate 'magic'), and could recognize the wrong filesystem type, possibly

with catastrophic consequences. If your data is valuable, don't ask mount to guess.

More than one type may be specified in a comma separated list. The list of file system

types can be prefixed with no to specify the file system types on which no action should

be taken. (This can be meaningful with the -a option.)

For example, the command:

mount -a -t nomsdos,ext mounts all file systems except those of type msdos and ext.

-O

Used in conjunction with -a, to limit the set of filesystems to which the -a is applied. Like

-t in this regard except that it is useless except in the context of -a. For example, the

command:

mount -a -O no_netdev mounts all file systems except those which have the option

_netdev specified in the options field in the /etc/fstab file.

It is different from -t in that each option is matched exactly; a leading no at the beginning

of one option does not negate the rest.

The -t and -O options are cumulative in effect; that is, the command

mount -a -t ext2 -O _netdev

mounts all ext2 filesystems with the _netdev option, not all filesystems that are either

ext2 or have the _netdev option specified.

-o

Options are specified with a -o flag followed by a comma separated string of options.

Some of these options are only useful when they appear in the /etc/fstab file. The

following options apply to any file system that is being mounted (but not every file system

actually honors them - e.g., the sync option today has effect only for ext2, ext3, fat, vfat

and ufs):

async

All I/O to the file system should be done asynchronously.

atime

Page 192: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

191 Manuale DEFT 7

Update inode access time for each access. This is the default.

auto

Can be mounted with the -a option.

defaults

Use default options: rw, suid, dev, exec, auto, nouser, and async.

dev

Interpret character or block special devices on the file system.

exec

Permit execution of binaries.

group

Allow an ordinary (i.e., non-root) user to mount the file system if one of his groups

matches the group of the device. This option implies the options nosuid and nodev (unless

overridden by subsequent options, as in the option line group,dev,suid).

mand

Allow mandatory locks on this filesystem. See fcntl(2).

_netdev

The filesystem resides on a device that requires network access (used to prevent the

system from attempting to mount these filesystems until the network has been enabled

on the system).

noatime

Do not update inode access times on this file system (e.g, for faster access on the news

spool to speed up news servers).

nodiratime

Do not update directory inode access times on this filesystem.

noauto

Can only be mounted explicitly (i.e., the -a option will not cause the file system to be

mounted).

nodev

Do not interpret character or block special devices on the file system.

noexec

Do not allow direct execution of any binaries on the mounted file system. (Until recently

it was possible to run binaries anyway using a command like /lib/ld*.so /mnt/binary. This

trick fails since Linux 2.4.25 / 2.6.0.)

nomand

Do not allow mandatory locks on this filesystem.

Page 193: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

192 Manuale DEFT 7

nosuid

Do not allow set-user-identifier or set-group-identifier bits to take effect. (This seems

safe, but is in fact rather unsafe if you have suidperl(1) installed.)

nouser

Forbid an ordinary (i.e., non-root) user to mount the file system. This is the default.

owner

Allow an ordinary (i.e., non-root) user to mount the file system if he is the owner of the

device. This option implies the options nosuid and nodev (unless overridden by

subsequent options, as in the option line owner,dev,suid).

remount

Attempt to remount an already-mounted file system. This is commonly used to change

the mount flags for a file system, especially to make a readonly file system writeable. It

does not change device or mount point.

ro

Mount the file system read-only.

rw

Mount the file system read-write.

suid

Allow set-user-identifier or set-group-identifier bits to take effect.

sync

All I/O to the file system should be done synchronously. In case of media with limited

number of write cycles (e.g. some flash drives) "sync" may cause life-cycle shortening.

dirsync

All directory updates within the file system should be done synchronously. This affects

the following system calls: creat, link, unlink, symlink, mkdir, rmdir, mknod and rename.

user

Allow an ordinary user to mount the file system. The name of the mounting user is

written to mtab so that he can unmount the file system again. This option implies the

options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the

option line user,exec,dev,suid).

users

Allow every user to mount and unmount the file system. This option implies the options

noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line

users,exec,dev,suid).

context=context, fscontext=context and defcontext=context

Page 194: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

193 Manuale DEFT 7

The context= option is useful when mounting filesystems that do not support extended

attributes, such as a floppy or hard disk formatted with VFAT, or systems that are not

normally running under SELinux, such as an ext3 formatted disk from a non-SELinux

workstation. You can also use context= on filesystems you do not trust, such as a floppy. It

also helps in compatibility with xattr-supporting filesystems on earlier 2.4.<x> kernel

versions. Even where xattrs are supported, you can save time not having to label every file

by assigning the entire disk one security context.

A commonly used option for removable media is

context=system_u:object_r:removable_t.

Two other options are fscontext= and defcontext=, both of which are mutually exclusive

of the context option. This means you can use fscontext and defcontext with each other,

but neither can be used with context.

The fscontext= option works for all filesystems, regardless of their xattr support. The

fscontext option sets the overarching filesystem label to a specific security context. This

filesystem label is separate from the individual labels on the files. It represents the entire

filesystem for certain kinds of permission checks, such as during mount or file creation.

Individual file labels are still obtained from the xattrs on the files themselves. The context

option actually sets the aggregate context that fscontext provides, in addition to supplying

the same label for individual files.

You can set the default security context for unlabeled files using defcontext= option.

This overrides the value set for unlabeled files in the policy and requires a file system that

supports xattr labeling.

For more details see selinux(8)

--bind

Remount a subtree somewhere else (so that its contents are available in both places).

See above.

--move

Move a subtree to some other place. See above.

Filesystem Specific Mount Options

The following options apply only to certain file systems. We sort them by file system. They

Page 195: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

194 Manuale DEFT 7

all follow the -o flag.

What options are supported depends a bit on the running kernel. More info may be found

in the kernel source subdirectory Documentation/filesystems.

Mount options for adfs

uid=value and gid=value

Set the owner and group of the files in the file system (default: uid=gid=0).

ownmask=value and othmask=value

Set the permission mask for ADFS 'owner' permissions and 'other' permissions,

respectively (default: 0700 and 0077, respectively). See also

/usr/src/linux/Documentation/filesystems/adfs.txt.

Mount options for affs

uid=value and gid=value

Set the owner and group of the root of the file system (default: uid=gid=0, but with

option uid or gid without specified value, the uid and gid of the current process are

taken).

setuid=value and setgid=value

Set the owner and group of all files.

mode=value

Set the mode of all files to value & 0777 disregarding the original permissions. Add

search permission to directories that have read permission. The value is given in octal.

protect

Do not allow any changes to the protection bits on the file system.

usemp

Set uid and gid of the root of the file system to the uid and gid of the mount point upon

the first sync or umount, and then clear this option. Strange...

verbose

Print an informational message for each successful mount.

prefix=string

Prefix used before volume name, when following a link.

volume=string

Prefix (of length at most 30) used before '/' when following a symbolic link.

Page 196: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

195 Manuale DEFT 7

reserved=value

(Default: 2.) Number of unused blocks at the start of the device.

root=value

Give explicitly the location of the root block.

bs=value

Give blocksize. Allowed values are 512, 1024, 2048, 4096.

grpquota / noquota / quota / usrquota

These options are accepted but ignored. (However, quota utilities may react to such

strings in /etc/fstab.)

Mount options for cifs

See the options section of the mount.cifs(8) man page (cifs-mount package must be

installed).

Mount options for cifs

Just like nfs or smbfs implementation expects a binary argument to the mount system call.

This argument is constructed by mount.cifs(8) and the current version of mount (2.12)

does not know anything about cifs.

Mount options for coherent

None.

Mount options for debugfs

The debugfs file system is a pseudo file system, traditionally mounted on

/sys/kernel/debug. There are no mount options.

Mount options for devpts

The devpts file system is a pseudo file system, traditionally mounted on /dev/pts. In order

to acquire a pseudo terminal, a process opens /dev/ptmx; the number of the pseudo

terminal is then made available to the process and the pseudo terminal slave can be

accessed as /dev/pts/<number>.

uid=value and gid=value

This sets the owner or the group of newly created PTYs to the specified values. When

nothing is specified, they will be set to the UID and GID of the creating process. For

example, if there is a tty group with GID 5, then gid=5 will cause newly created PTYs to

belong to the tty group.

mode=value

Set the mode of newly created PTYs to the specified value. The default is 0600. A value

of mode=620 and gid=5 makes "mesg y" the default on newly created PTYs.

Page 197: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

196 Manuale DEFT 7

Mount options for ext

None. Note that the 'ext' file system is obsolete. Don't use it. Since Linux version 2.1.21

extfs is no longer part of the kernel source.

Mount options for ext2

The 'ext2' file system is the standard Linux file system. Since Linux 2.5.46, for most mount

options the default is determined by the filesystem superblock. Set them with tune2fs(8).

acl / noacl

Support POSIX Access Control Lists (or not).

bsddf / minixdf

Set the behaviour for the statfs system call. The minixdf behaviour is to return in the

f_blocks field the total number of blocks of the file system, while the bsddf behaviour

(which is the default) is to subtract the overhead blocks used by the ext2 file system and

not available for file storage.

Thus

% mount /k -o minixdf; df /k; umount /k

Filesystem 1024-blocks Used Available Capacity Mounted on

/dev/sda6 2630655 86954 2412169 3% /k

% mount /k -o bsddf; df /k; umount /k

Filesystem 1024-blocks Used Available Capacity Mounted on

/dev/sda6 2543714 13 2412169 0% /k

(Note that this example shows that one can add command line options to the options

given in /etc/fstab.)

check=none / nocheck

No checking is done at mount time. This is the default. This is fast. It is wise to invoke

e2fsck(8) every now and then, e.g. at boot time.

debug

Print debugging info upon each (re)mount.

errors=continue / errors=remount-ro / errors=panic

Define the behaviour when an error is encountered. (Either ignore errors and just mark

Page 198: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

197 Manuale DEFT 7

the file system erroneous and continue, or remount the file system read-only, or panic

and halt the system.) The default is set in the filesystem superblock, and can be changed

using tune2fs(8).

grpid or bsdgroups / nogrpid or sysvgroups

These options define what group id a newly created file gets. When grpid is set, it takes

the group id of the directory in which it is created; otherwise (the default) it takes the

fsgid of the current process, unless the directory has the setgid bit set, in which case it

takes the gid from the parent directory, and also gets the setgid bit set if it is a directory

itself.

grpquota / noquota / quota / usrquota

These options are accepted but ignored.

nobh

Do not attach buffer_heads to file pagecache. (Since 2.5.49.)

nouid32

Disables 32-bit UIDs and GIDs. This is for interoperability with older kernels which only

store and expect 16-bit values.

oldalloc or orlov

Use old allocator or Orlov allocator for new inodes. Orlov is default.

resgid=n and resuid=n

The ext2 file system reserves a certain percentage of the available space (by default 5%,

see mke2fs(8) and tune2fs(8)). These options determine who can use the reserved blocks.

(Roughly: whoever has the specified uid, or belongs to the specified group.)

sb=n

Instead of block 1, use block n as superblock. This could be useful when the filesystem

has been damaged. (Earlier, copies of the superblock would be made every 8192 blocks: in

block 1, 8193, 16385, ... (and one got thousands of copies on a big filesystem). Since

version 1.08, mke2fs has a -s (sparse superblock) option to reduce the number of backup

superblocks, and since version 1.15 this is the default. Note that this may mean that ext2

filesystems created by a recent mke2fs cannot be mounted r/w under Linux 2.0.*.) The

block number here uses 1k units. Thus, if you want to use logical block 32768 on a

filesystem with 4k blocks, use "sb=131072".

user_xattr / nouser_xattr

Support "user." extended attributes (or not).

Mount options for ext3

The 'ext3' file system is a version of the ext2 file system which has been enhanced with

Page 199: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

198 Manuale DEFT 7

journalling. It supports the same options as ext2 as well as the following additions:

journal=update

Update the ext3 file system's journal to the current format.

journal=inum

When a journal already exists, this option is ignored. Otherwise, it specifies the number

of the inode which will represent the ext3 file system's journal file; ext3 will create a new

journal, overwriting the old contents of the file whose inode number is inum.

noload

Do not load the ext3 file system's journal on mounting.

data=journal / data=ordered / data=writeback

Specifies the journalling mode for file data. Metadata is always journaled. To use modes

other than ordered on the root file system, pass the mode to the kernel as boot

parameter, e.g. rootflags=data=journal.

journal

All data is committed into the journal prior to being written into the main file system.

ordered

This is the default mode. All data is forced directly out to the main file system prior to

its metadata being committed to the journal.

writeback

Data ordering is not preserved - data may be written into the main file system after its

metadata has been committed to the journal. This is rumoured to be the highest-

throughput option. It guarantees internal file system integrity, however it can allow old

data to appear in files after a crash and journal recovery.

commit=nrsec

Sync all data and metadata every nrsec seconds. The default value is 5 seconds. Zero

means default.

Mount options for fat

(Note: fat is not a separate filesystem, but a common part of the msdos, umsdos and vfat

filesystems.)

blocksize=512 / blocksize=1024 / blocksize=2048

Set blocksize (default 512).

uid=value and gid=value

Page 200: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

199 Manuale DEFT 7

Set the owner and group of all files. (Default: the uid and gid of the current process.)

umask=value

Set the umask (the bitmask of the permissions that are not present). The default is the

umask of the current process. The value is given in octal.

dmask=value

Set the umask applied to directories only. The default is the umask of the current

process. The value is given in octal.

fmask=value

Set the umask applied to regular files only. The default is the umask of the current

process. The value is given in octal.

check=value

Three different levels of pickyness can be chosen:

r[elaxed]

Upper and lower case are accepted and equivalent, long name parts are truncated (e.g.

verylongname.foobar becomes verylong.foo), leading and embedded spaces are accepted

in each name part (name and extension).

n[ormal]

Like "relaxed", but many special characters (*, ?, <, spaces, etc.) are rejected. This is the

default.

s[trict]

Like "normal", but names may not contain long parts and special characters that are

sometimes used on Linux, but are not accepted by MS-DOS are rejected. (+, =, spaces,

etc.)

codepage=value

Sets the codepage for converting to shortname characters on FAT and VFAT filesystems.

By default, codepage 437 is used.

conv=b[inary] / conv=t[ext] / conv=a[uto]

The fat file system can perform CRLF<-->NL (MS-DOS text format to UNIX text format)

conversion in the kernel. The following conversion modes are available:

binary

no translation is performed. This is the default.

text

CRLF<-->NL translation is performed on all files.

auto

CRLF<-->NL translation is performed on all files that don't have a "well-known binary"

Page 201: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

200 Manuale DEFT 7

extension. The list of known extensions can be found at the beginning of fs/fat/misc.c (as

of 2.0, the list is: exe, com, bin, app, sys, drv, ovl, ovr, obj, lib, dll, pif, arc, zip, lha, lzh, zoo,

tar, z, arj, tz, taz, tzp, tpz, gz, tgz, deb, gif, bmp, tif, gl, jpg, pcx, tfm, vf, gf, pk, pxl, dvi).

Programs that do computed lseeks won't like in-kernel text conversion. Several people

have had their data ruined by this translation. Beware!

For file systems mounted in binary mode, a conversion tool (fromdos/todos) is available.

cvf_format=module

Forces the driver to use the CVF (Compressed Volume File) module cvf_module instead

of auto-detection. If the kernel supports kmod, the cvf_format=xxx option also controls

on-demand CVF module loading.

cvf_option=option

Option passed to the CVF module.

debug

Turn on the debug flag. A version string and a list of file system parameters will be

printed (these data are also printed if the parameters appear to be inconsistent).

fat=12 / fat=16 / fat=32

Specify a 12, 16 or 32 bit fat. This overrides the automatic FAT type detection routine.

Use with caution!

iocharset=value

Character set to use for converting between 8 bit characters and 16 bit Unicode

characters. The default is iso8859-1. Long filenames are stored on disk in Unicode format.

quiet

Turn on the quiet flag. Attempts to chown or chmod files do not return errors, although

they fail. Use with caution!

sys_immutable, showexec, dots, nodots, dotsOK=[yes|no]

Various misguided attempts to force Unix or DOS conventions onto a FAT file system.

Mount options for hfs

creator=cccc, type=cccc

Set the creator/type values as shown by the MacOS finder used for creating new files.

Default values: '????'.

uid=n, gid=n

Page 202: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

201 Manuale DEFT 7

Set the owner and group of all files. (Default: the uid and gid of the current process.)

dir_umask=n, file_umask=n, umask=n

Set the umask used for all directories, all regular files, or all files and directories.

Defaults to the umask of the current process.

session=n

Select the CDROM session to mount. Defaults to leaving that decision to the CDROM

driver. This option will fail with anything but a CDROM as underlying device.

part=n

Select partition number n from the device. Only makes sense for CDROMS. Defaults to

not parsing the partition table at all.

quiet

Don't complain about invalid mount options.

Mount options for hpfs

uid=value and gid=value

Set the owner and group of all files. (Default: the uid and gid of the current process.)

umask=value

Set the umask (the bitmask of the permissions that are not present). The default is the

umask of the current process. The value is given in octal.

case=lower / case=asis

Convert all files names to lower case, or leave them. (Default: case=lower.)

conv=binary / conv=text / conv=auto

For conv=text, delete some random CRs (in particular, all followed by NL) when reading

a file. For conv=auto, choose more or less at random between conv=binary and conv=text.

For conv=binary, just read what is in the file. This is the default.

nocheck

Do not abort mounting when certain consistency checks fail.

Mount options for iso9660

ISO 9660 is a standard describing a filesystem structure to be used on CD-ROMs. (This

filesystem type is also seen on some DVDs. See also the udf filesystem.)

Normal iso9660 filenames appear in a 8.3 format (i.e., DOS-like restrictions on filename

length), and in addition all characters are in upper case. Also there is no field for file

ownership, protection, number of links, provision for block/character devices, etc.

Page 203: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

202 Manuale DEFT 7

Rock Ridge is an extension to iso9660 that provides all of these unix like features. Basically

there are extensions to each directory record that supply all of the additional information,

and when Rock Ridge is in use, the filesystem is indistinguishable from a normal UNIX file

system (except that it is read-only, of course).

norock

Disable the use of Rock Ridge extensions, even if available. Cf. map.

nojoliet

Disable the use of Microsoft Joliet extensions, even if available. Cf. map.

check=r[elaxed] / check=s[trict]

With check=relaxed, a filename is first converted to lower case before doing the lookup.

This is probably only meaningful together with norock and map=normal. (Default:

check=strict.)

uid=value and gid=value

Give all files in the file system the indicated user or group id, possibly overriding the

information found in the Rock Ridge extensions. (Default: uid=0,gid=0.)

map=n[ormal] / map=o[ff] / map=a[corn]

For non-Rock Ridge volumes, normal name translation maps upper to lower case ASCII,

drops a trailing ';1', and converts ';' to '.'. With map=off no name translation is done. See

norock. (Default: map=normal.) map=acorn is like map=normal but also apply Acorn

extensions if present.

mode=value

For non-Rock Ridge volumes, give all files the indicated mode. (Default: read permission

for everybody.) Since Linux 2.1.37 one no longer needs to specify the mode in decimal.

(Octal is indicated by a leading 0.)

unhide

Also show hidden and associated files. (If the ordinary files and the associated or hidden

files have the same filenames, this may make the ordinary files inaccessible.)

block=[512|1024|2048]

Set the block size to the indicated value. (Default: block=1024.)

conv=a[uto] / conv=b[inary] / conv=m[text] / conv=t[ext]

(Default: conv=binary.) Since Linux 1.3.54 this option has no effect anymore. (And non-

binary settings used to be very dangerous, possibly leading to silent data corruption.)

cruft

If the high byte of the file length contains other garbage, set this mount option to

Page 204: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

203 Manuale DEFT 7

ignore the high order bits of the file length. This implies that a file cannot be larger than

16MB.

session=x

Select number of session on multisession CD. (Since 2.3.4.)

sbsector=xxx

Session begins from sector xxx. (Since 2.3.4.)

The following options are the same as for vfat and specifying them only makes sense

when using discs encoded using Microsoft's Joliet extensions.

iocharset=value

Character set to use for converting 16 bit Unicode characters on CD to 8 bit characters.

The default is iso8859-1.

utf8

Convert 16 bit Unicode characters on CD to UTF-8.

Mount options for jfs

iocharset=name

Character set to use for converting from Unicode to ASCII. The default is to do no

conversion. Use iocharset=utf8 for UTF8 translations. This requires CONFIG_NLS_UTF8 to

be set in the kernel .config file.

resize=value

Resize the volume to value blocks. JFS only supports growing a volume, not shrinking it.

This option is only valid during a remount, when the volume is mounted read-write. The

resize keyword with no value will grow the volume to the full size of the partition.

nointegrity

Do not write to the journal. The primary use of this option is to allow for higher

performance when restoring a volume from backup media. The integrity of the volume is

not guaranteed if the system abnormally abends.

integrity

Default. Commit metadata changes to the journal. Use this option to remount a volume

where the nointegrity option was previously specified in order to restore normal behavior.

errors=continue / errors=remount-ro / errors=panic

Define the behaviour when an error is encountered. (Either ignore errors and just mark

the file system erroneous and continue, or remount the file system read-only, or panic

Page 205: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

204 Manuale DEFT 7

and halt the system.)

noquota / quota / usrquota / grpquota

These options are accepted but ignored.

Mount options for minix

None.

Mount options for msdos

See mount options for fat. If the msdos file system detects an inconsistency, it reports an

error and sets the file system read-only. The file system can be made writeable again by

remounting it.

Mount options for ncpfs

Just like nfs, the ncpfs implementation expects a binary argument (a struct

ncp_mount_data) to the mount system call. This argument is constructed by ncpmount(8)

and the current version of mount (2.12) does not know anything about ncpfs.

Mount options for nfs

Instead of a textual option string, parsed by the kernel, the nfs file system expects a binary

argument of type struct nfs_mount_data. The program mount itself parses the following

options of the form 'tag=value', and puts them in the structure mentioned: rsize=n,

wsize=n, timeo=n, retrans=n, acregmin=n, acregmax=n, acdirmin=n, acdirmax=n,

actimeo=n, retry=n, port=n, mountport=n, mounthost=name, mountprog=n,

mountvers=n, nfsprog=n, nfsvers=n, namlen=n. The option addr=n is accepted but

ignored. Also the following Boolean options, possibly preceded by no are recognized: bg,

fg, soft, hard, intr, posix, cto, ac, tcp, udp, lock. For details, see nfs(5).

Especially useful options include

rsize=32768,wsize=32768

This causes the NFS client to try to negotiate a buffer size up to the size specified. A

large buffer size does improve performance, but both the server and client have to

support it. In the case where one of these does not support the size specified, the size

negotiated will be the largest that both support.

intr

This will allow NFS operations (on hard mounts) to be interrupted while waiting for a

response from the server.

nolock

Do not use locking. Do not start lockd.

Page 206: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

205 Manuale DEFT 7

Mount options for nfs4

Instead of a textual option string, parsed by the kernel, the nfs4 file system expects a

binary argument of type struct nfs4_mount_data. The program mount itself parses the

following options of the form 'tag=value', and puts them in the structure mentioned:

rsize=n, wsize=n, timeo=n, retrans=n, acregmin=n, acregmax=n, acdirmin=n, acdirmax=n,

actimeo=n, retry=n, port=n, proto=n, clientaddr=n, sec=n. The option addr=n is accepted

but ignored. Also the following Boolean options, possibly preceded by no are recognized:

bg, fg, soft, hard, intr, cto, ac, For details, see nfs(5).

Especially useful options include

rsize=32768,wsize=32768

This causes the NFS4 client to try to negotiate a buffer size up to the size specified. A

large buffer size does improve performance, but both the server and client have to

support it. In the case where one of these does not support the size specified, the size

negotiated will be the largest that both support.

intr

This will allow NFS4 operations (on hard mounts) to be interrupted while waiting for a

response from the server.

Mount options for ntfs

iocharset=name

Character set to use when returning file names. Unlike VFAT, NTFS suppresses names

that contain unconvertible characters. Deprecated.

nls=name

New name for the option earlier called iocharset.

utf8

Use UTF-8 for converting file names.

uni_xlate=[0|1|2]

For 0 (or 'no' or 'false'), do not use escape sequences for unknown Unicode characters.

For 1 (or 'yes' or 'true') or 2, use vfat-style 4-byte escape sequences starting with ":". Here

2 give a little-endian encoding and 1 a byteswapped bigendian encoding.

posix=[0|1]

Page 207: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

206 Manuale DEFT 7

If enabled (posix=1), the file system distinguishes between upper and lower case. The

8.3 alias names are presented as hard links instead of being suppressed.

uid=value, gid=value and umask=value

Set the file permission on the filesystem. The umask value is given in octal. By default,

the files are owned by root and not readable by somebody else.

Mount options for proc

uid=value and gid=value

These options are recognized, but have no effect as far as I can see.

Mount options for ramfs

Ramfs is a memory based filesystem. Mount it and you have it. Unmount it and it is gone.

Present since Linux 2.3.99pre4. There are no mount options.

Mount options for reiserfs

Reiserfs is a journaling filesystem. The reiserfs mount options are more fully described at

http://www.namesys.com/mount-options.html.

conv

Instructs version 3.6 reiserfs software to mount a version 3.5 file system, using the 3.6

format for newly created objects. This file system will no longer be compatible with

reiserfs 3.5 tools.

hash=rupasov / hash=tea / hash=r5 / hash=detect

Choose which hash function reiserfs will use to find files within directories.

rupasov

A hash invented by Yury Yu. Rupasov. It is fast and preserves locality, mapping

lexicographically close file names to close hash values. This option should not be used, as

it causes a high probability of hash collisions.

tea

A Davis-Meyer function implemented by Jeremy Fitzhardinge. It uses hash permuting

bits in the name. It gets high randomness and, therefore, low probability of hash collisions

at some CPU cost. This may be used if EHASHCOLLISION errors are experienced with the

r5 hash.

r5

A modified version of the rupasov hash. It is used by default and is the best choice

Page 208: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

207 Manuale DEFT 7

unless the file system has huge directories and unusual file-name patterns.

detect

Instructs mount to detect which hash function is in use by examining the file system

being mounted, and to write this information into the reiserfs superblock. This is only

useful on the first mount of an old format file system.

hashed_relocation

Tunes the block allocator. This may provide performance improvements in some

situations.

no_unhashed_relocation

Tunes the block allocator. This may provide performance improvements in some

situations.

noborder

Disable the border allocator algorithm invented by Yury Yu. Rupasov. This may provide

performance improvements in some situations.

nolog

Disable journalling. This will provide slight performance improvements in some

situations at the cost of losing reiserfs's fast recovery from crashes. Even with this option

turned on, reiserfs still performs all journalling operations, save for actual writes into its

journalling area. Implementation of nolog is a work in progress.

notail

By default, reiserfs stores small files and 'file tails' directly into its tree. This confuses

some utilities such as lilo(8). This option is used to disable packing of files into the tree.

replayonly

Replay the transactions which are in the journal, but do not actually mount the file

system. Mainly used by reiserfsck.

resize=number

A remount option which permits online expansion of reiserfs partitions. Instructs

reiserfs to assume that the device has number blocks. This option is designed for use with

devices which are under logical volume management (LVM). There is a special resizer

utility which can be obtained from ftp://ftp.namesys.com/pub/reiserfsprogs.

Mount options for romfs

None.

Mount options for smbfs

Just like nfs, the smbfs implementation expects a binary argument (a struct

smb_mount_data) to the mount system call. This argument is constructed by

Page 209: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

208 Manuale DEFT 7

smbmount(8) and the current version of mount (2.12) does not know anything about

smbfs.

Mount options for sysv

None.

Mount options for tmpfs

The following parameters accept a suffix k, m or g for Ki, Mi, Gi (binary kilo, mega and

giga) and can be changed on remount.

size=nbytes

Override default maximum size of the filesystem. The size is given in bytes, and rounded

down to entire pages. The default is half of the memory.

nr_blocks=

Set number of blocks.

nr_inodes=

Set number of inodes.

mode=

Set initial permissions of the root directory.

Mount options for udf

udf is the "Universal Disk Format" filesystem defined by the Optical Storage Technology

Association, and is often used for DVD-ROM. See also iso9660.

gid=

Set the default group.

umask=

Set the default umask. The value is given in octal.

uid=

Set the default user.

unhide

Show otherwise hidden files.

undelete

Show deleted files in lists.

nostrict

Unset strict conformance.

Page 210: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

209 Manuale DEFT 7

iocharset

Set the NLS character set.

bs=

Set the block size. (May not work unless 2048.)

novrs

Skip volume sequence recognition.

session=

Set the CDROM session counting from 0. Default: last session.

anchor=

Override standard anchor location. Default: 256.

volume=

Override the VolumeDesc location. (unused)

partition=

Override the PartitionDesc location. (unused)

lastblock=

Set the last block of the filesystem.

fileset=

Override the fileset block location. (unused)

rootdir=

Override the root directory location. (unused)

Mount options for ufs

ufstype=value

UFS is a file system widely used in different operating systems. The problem are

differences among implementations. Features of some implementations are

undocumented, so its hard to recognize the type of ufs automatically. That's why the user

must specify the type of ufs by mount option. Possible values are:

old

Old format of ufs, this is the default, read only. (Don't forget to give the -r option.)

44bsd

For filesystems created by a BSD-like system (NetBSD,FreeBSD,OpenBSD).

sun

For filesystems created by SunOS or Solaris on Sparc.

Page 211: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

210 Manuale DEFT 7

sunx86

For filesystems created by Solaris on x86.

hp

For filesystems created by HP-UX, read-only.

nextstep

For filesystems created by NeXTStep (on NeXT station) (currently read only).

nextstep-cd

For NextStep CDROMs (block_size == 2048), read-only.

openstep

For filesystems created by OpenStep (currently read only). The same filesystem type is

also used by Mac OS X.

onerror=value

Set behaviour on error:

panic

If an error is encountered, cause a kernel panic.

[lock|umount|repair]

These mount options don't do anything at present; when an error is encountered only a

console message is printed.

Mount options for umsdos

See mount options for msdos. The dotsOK option is explicitly killed by umsdos.

Mount options for vfat

First of all, the mount options for fat are recognized. The dotsOK option is explicitly killed

by vfat. Furthermore, there are

uni_xlate

Translate unhandled Unicode characters to special escaped sequences. This lets you

backup and restore filenames that are created with any Unicode characters. Without this

option, a '?' is used when no translation is possible. The escape character is ':' because it is

otherwise illegal on the vfat filesystem. The escape sequence that gets used, where u is

the unicode character, is: ':', (u & 0x3f), ((u>>6) & 0x3f), (u>>12).

posix

Allow two files with names that only differ in case.

nonumtail

First try to make a short name without sequence number, before trying name~num.ext.

Page 212: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

211 Manuale DEFT 7

utf8

UTF8 is the filesystem safe 8-bit encoding of Unicode that is used by the console. It can

be be enabled for the filesystem with this option. If 'uni_xlate' gets set, UTF8 gets

disabled.

shortname=[lower|win95|winnt|mixed]

Defines the behaviour for creation and display of filenames which fit into 8.3 characters.

If a long name for a file exists, it will always be preferred display. There are four modes:

lower

Force the short name to lower case upon display; store a long name when the short

name is not all upper case.

win95

Force the short name to upper case upon display; store a long name when the short

name is not all upper case.

winnt

Display the shortname as is; store a long name when the short name is not all lower

case or all upper case.

mixed

Display the short name as is; store a long name when the short name is not all upper

case.

The default is "lower".

Mount options for USBfs

devuid=uid and devgid=gid and devmode=mode

Set the owner and group and mode of the device files in the USBfs file system (default:

uid=gid=0, mode=0644). The mode is given in octal.

busuid=uid and busgid=gid and busmode=mode

Set the owner and group and mode of the bus directories in the USBfs file system

(default: uid=gid=0, mode=0555). The mode is given in octal.

listuid=uid and listgid=gid and listmode=mode

Set the owner and group and mode of the file devices (default: uid=gid=0, mode=0444).

The mode is given in octal.

Mount options for xenix

Page 213: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

212 Manuale DEFT 7

None.

Mount options for xfs

biosize=size

Sets the preferred buffered I/O size (default size is 64K). size must be expressed as the

logarithm (base2) of the desired I/O size. Valid values for this option are 14 through 16,

inclusive (i.e. 16K, 32K, and 64K bytes). On machines with a 4K pagesize, 13 (8K bytes) is

also a valid size. The preferred buffered I/O size can also be altered on an individual file

basis using the ioctl(2) system call.

dmapi " / " xdsm

Enable the DMAPI (Data Management API) event callouts.

logbufs=value

Set the number of in-memory log buffers. Valid numbers range from 2-8 inclusive. The

default value is 8 buffers for filesystems with a blocksize of 64K, 4 buffers for filesystems

with a blocksize of 32K, 3 buffers for filesystems with a blocksize of 16K, and 2 buffers for

all other configurations. Increasing the number of buffers may increase performance on

some workloads at the cost of the memory used for the additional log buffers and their

associated control structures.

logbsize=value

Set the size of each in-memory log buffer. Valid sizes are 16384 (16K) and 32768 (32K).

The default value for machines with more than 32MB of memory is 32768, machines with

less memory use 16384 by default.

logdev=device and rtdev=device

Use an external log (metadata journal) and/or real-time device. An XFS filesystem has

up to three parts: a data section, a log section, and a real-time section. The real-time

section is optional, and the log section can be separate from the data section or contained

within it. Refer to xfs(5).

noalign

Data allocations will not be aligned at stripe unit boundaries.

noatime

Access timestamps are not updated when a file is read.

norecovery

The filesystem will be mounted without running log recovery. If the filesystem was not

cleanly unmounted, it is likely to be inconsistent when mounted in norecovery mode.

Some files or directories may not be accessible because of this. Filesystems mounted

norecovery must be mounted read-only or the mount will fail.

Page 214: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

213 Manuale DEFT 7

nouuid

Ignore the filesystem uuid. This avoids errors for duplicate uuids.

osyncisdsync

Make writes to files opened with the O_SYNC flag set behave as if the O_DSYNC flag had

been used instead. This can result in better performance without compromising data

safety. However if this option is in effect, timestamp updates from O_SYNC writes can be

lost if the system crashes.

quota / usrquota / uqnoenforce

User disk quota accounting enabled, and limits (optionally) enforced.

grpquota / gqnoenforce

Group disk quota accounting enabled and limits (optionally) enforced.

sunit=value and swidth=value

Used to specify the stripe unit and width for a RAID device or a stripe volume. value

must be specified in 512-byte block units. If this option is not specified and the filesystem

was made on a stripe volume or the stripe width or unit were specified for the RAID

device at mkfs time, then the mount system call will restore the value from the

superblock. For filesystems that are made directly on RAID devices, these options can be

used to override the information in the superblock if the underlying disk layout changes

after the filesystem has been created. The swidth option is required if the sunit option has

been specified, and must be a multiple of the sunit value.

Mount options for xiafs

None. Although nothing is wrong with xiafs, it is not used much, and is not maintained.

Probably one shouldn't use it. Since Linux version 2.1.21 xiafs is no longer part of the

kernel source.

the Loop Device

One further possible type is a mount via the loop device. For example, the command

mount /tmp/fdimage /mnt -t msdos -o loop=/dev/loop3,blocksize=1024

will set up the loop device /dev/loop3 to correspond to the file /tmp/fdimage, and then

mount this device on /mnt.

This type of mount knows about three options, namely loop, offset and encryption, that

are really options to losetup(8). (These options can be used in addition to those specific to

the filesystem type.)

Page 215: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

214 Manuale DEFT 7

If no explicit loop device is mentioned (but just an option '-o loop' is given), then mount

will try to find some unused loop device and use that. If you are not so unwise as to make

/etc/mtab a symbolic link to /proc/mounts then any loop device allocated by mount will

be freed by umount. You can also free a loop device by hand, using 'losetup -d', see

losetup(8).

Return Codes

mount has the following return codes (the bits can be ORed):

1. success

2. incorrect invocation or permissions

3. system error (out of memory, cannot fork, no more loop devices)

4. internal mount bug or missing nfs support in mount

5. user interrupt

6. problems writing or locking /etc/mtab

7. mount failure

8. some mount succeeded

Files

/etc/fstab

file system table

/etc/mtab

table of mounted file systems

/etc/mtab~

lock file

/etc/mtab.tmp

temporary file

/etc/filesystems

a list of filesystem types to try

See Also

mount(2), umount(2), fstab(5), umount(8), swapon(8), nfs(5), xfs(5), e2label(8),

xfs_admin(8), mountd(8), nfsd(8), mke2fs(8), tune2fs(8), losetup(8)

Bugs

Page 216: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

215 Manuale DEFT 7

It is possible for a corrupted file system to cause a crash.

Some Linux file systems don't support -o sync and -o dirsync (the ext2, ext3, fat and vfat

file systems do support synchronous updates (a la BSD) when mounted with the sync

option).

The -o remount may not be able to change mount parameters (all ext2fs-specific

parameters, except sb, are changeable with a remount, for example, but you can't change

gid or umask for the fatfs).

Mount by label or uuid will work only if your devices have the names listed in

/proc/partitions. In particular, it may well fail if the kernel was compiled with devfs but

devfs is not mounted.

It is possible that files /etc/mtab and /proc/mounts don't match. The first file is based only

on the mount command options, but the content of the second file also depends on the

kernel and others settings (e.g. remote NFS server. In particular case the mount command

may reports unreliable information about a NFS mount point and the /proc/mounts file

usually contains more reliable information.)

Checking files on NFS filesystem referenced by file descriptors (i.e. the fcntl and ioctl

families of functions) may lead to inconsistent result due to the lack of consistency check

in kernel even if noac is used.

History

A mount command existed in Version 5 AT&T UNIX.

11.2 Affuse

Usage: affuse [<FUSE library options>] af_image mount_point

FUSE options:

-d -o debug enable debug output (implies -f)

-f foreground operation

-s disable multi-threaded operation

-o allow_other allow access to other users

-o allow_root allow access to root

-o nonempty allow mounts over non-empty file/dir

-o default_permissions enable permission checking by kernel

-o fsname=NAME set filesystem name

-o subtype=NAME set filesystem type

-o large_read issue large read requests (2.4 only)

-o max_read=N set maximum size of read requests

Page 217: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

216 Manuale DEFT 7

-o hard_remove immediate removal (don't hide files)

-o use_ino let filesystem set inode numbers

-o readdir_ino try to fill in d_ino in readdir

-o direct_io use direct I/O

-o kernel_cache cache files in kernel

-o [no]auto_cache enable caching based on modification times (off)

-o umask=M set file permissions (octal)

-o uid=N set file owner

-o gid=N set file group

-o entry_timeout=T cache timeout for names (1.0s)

-o negative_timeout=T cache timeout for deleted names (0.0s)

-o attr_timeout=T cache timeout for attributes (1.0s)

-o ac_attr_timeout=T auto cache timeout for attributes (attr_timeout)

-o intr allow requests to be interrupted

-o intr_signal=NUM signal to send on interrupt (10)

-o modules=M1[:M2...] names of modules to push onto filesystem stack

-o max_write=N set maximum size of write requests

-o max_readahead=N set maximum readahead

-o async_read perform reads asynchronously (default)

-o sync_read perform reads synchronously

-o atomic_o_trunc enable atomic open+truncate support

-o big_writes enable larger than 4kB writes

-o no_remote_lock disable remote file locking

Module options:

[subdir]

-o subdir=DIR prepend this directory to all paths (mandatory)

-o [no]rellinks transform absolute symlinks to relative

[iconv]

-o from_code=CHARSET original encoding of file names (default: UTF-8)

-o to_code=CHARSET new encoding of the file names (default: UTF-8)

Use fusermount -u mount_point, to unmount

Md5sum

cksum,md5sum,sum - print file checksum and block count

Page 218: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

217 Manuale DEFT 7

SYNOPSIS

cksum,md5sum,sum [ options ] [ file ... ]

DESCRIPTION

sum lists the checksum, and for most methods the block count, for each file argument.

The standard input is read if there are no file arguments. getconf UNIVERSE determines

the default sum method: att for the att universe, bsd otherwise. The default for the other

commands is the command name itself. The att method is a true sum, all others are order

dependent.

Method names consist of a leading identifier and 0 or more options separated by -.

getconf PATH_RESOLVE determines how symbolic links are handled. This can be explicitly

overridden by the --logical , --metaphysical, and --physical options below. PATH_RESOLVE

can be one of:

logical

Follow all symbolic links.

metaphysical

Follow command argument symbolic links, otherwise don't follow.

physical

Don't follow symbolic links.

OPTIONS

-a, --all

List the checksum for all files. Use with --total to list both individual and total checksums

and block counts.

-b, --binary

Read files in binary mode. This is the default.

-B, --scale=scale

Block count scale (bytes per block) override for methods that include size in the output.

The default is method specific.

-c, --check

Each file is interpreted as the output from a previous sum. If --header or --permissions

was specified in the previous sum then the checksum method is automatically

determined, otherwise --method must be specified. The listed checksum is compared with

the current value and a warning is issued for each file that does not match. If file was

generated by --permissions then the file mode, user and group are also checked. Empty

lines, lines starting with #<space>, or the line # are ignored. Lines containing no blanks are

interpreted as [no]name[=value] options:

method=name

Page 219: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

218 Manuale DEFT 7

Checksum method to apply to subsequent lines.

permissions

Subsequent lines were generated with --permissions.

-h, --header

Print the checksum method as the first output line. Used with --check and --permissions

.

-l, --list

Each file is interpreted as a list of files, one per line, that is checksummed.

-p, --permissions

If --check is not specified then list the file mode, user and group between the checksum

and path. User and group matching the caller are output as -. If --check is specified then

the mode, user and group for each path in file are updated if necessary to match those in

file . A warning is printed on the standard error for each changed file.

-R, --recursive

Recursively checksum the contents of directories.

-S, --silent|status

No output for --check; 0 exit status means all sums matched, non-0 means at least one

sum failed to match. Ignored for --permissions.

-t, --total

List only the total checksum and block count of all files. --all --total lists each checksum

and the total. The total checksum and block count may be different from the checksum

and block count of the catenation of all files due to partial blocks that may occur when the

files are treated separately.

-T, --text

Read files in text mode (i.e., treat \r\n as \n).

-w, --warn

Warn about invalid --check lines. On by default; -w means --nowarn.

-x, --method|algorithm=method

Specifies the checksum method to apply. Parenthesized method options are readonly

implementation details.

att|sys5|s5|default

The system 5 release 4 checksum. This is the default for sum when getconf UNIVERSE

is att. This is the only true sum; all of the other methods are order dependent.

ast4|32x4|tw

The ast 128 bit PRNG hash generated by catenating 4 separate 32 bit PNRG hashes.

Page 220: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

219 Manuale DEFT 7

The block count is not printed.

bsd|ucb

The BSD checksum.

crc

32 bit CRC (cyclic redundancy check).

polynomial=mask

The 32 bit crc polynomial bitmask with implicit bit 32. The default value is

0xedb88320.

done[=number]

XOR the final crc value with number. 0xffffffff is used if number is omitted. The

option value may be omitted. The default value is 0.

init[=number]

The initial crc value. 0xffffffff is used if number is omitted. The option value may be

omitted. The default value is 0.

rotate

XOR each input character with the high order crc byte (instead of the low order).

size[=number]

Include the total number of bytes in the crc. number , if specified, is first XOR'd into

the size. The option value may be omitted. The default value is 0.

prng

32 bit PRNG (pseudo random number generator) hash.

mpy=number

The 32 bit PRNG multiplier. The default value is 0x01000193 .

add=number

The 32 bit PRNG addend. The default value is 0.

init[=number]

The PRNG initial value. 0xffffffff is used if number is omitted. The option value may

be omitted. The default value is 0x811c9dc5.

md5|MD5

The RSA Data Security, Inc. MD5 Message-Digest Method, 1991-2, used with

permission. The block count is not printed.

(version)

md5 (RSA Data Security, Inc. MD5 Message-Digest, 1991-2) 1996-02-29

sha1|SHA1|sha-1|SHA-1

Page 221: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

220 Manuale DEFT 7

FIPS 180-1 SHA-1 secure hash algorithm 1.

(version)

sha1 (FIPS 180-1) 1996-09-26

(author)

Steve Reid <[email protected]>

sha256|sha-256|SHA256|SHA-256

FIPS SHA-256 secure hash algorithm.

(version)

sha-256 (FIPS) 2000-01-01

(author)

Aaron D. Gifford

sha384|sha-384|SHA384|SHA-384

FIPS SHA-384 secure hash algorithm.

(version)

sha-384 (FIPS) 2000-01-01

(author)

Aaron D. Gifford

sha512|sha-512|SHA512|SHA-512

FIPS SHA-512 secure hash algorithm.

(version)

sha-512 (FIPS) 2000-01-01

(author)

Aaron D. Gifford

posix|cksum|std|standard

The posix 1003.2-1992 32 bit crc checksum. This is the default cksum(1) method.

Shorthand for crc-0x04c11db7-rotate-done-size .

zip

The zip(1) crc. Shorthand for crc-0xedb88320-init-done .

fddi

The FDDI crc. Shorthand for crc-0xedb88320-size=0xcc55cc55.

fnv|fnv1

The Fowler-Noll-Vo 32 bit PRNG hash with non-zero initializer (FNV-1). Shorthand for

prng-0x01000193-init=0x811c9dc5.

ast|strsum

Page 222: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

221 Manuale DEFT 7

The ast strsum(3) PRNG hash. Shorthand for prng-0x63c63cd9-add=0x9c39c33d.

-L, --logical|follow

Follow symbolic links when traversing directories. The default is determined by getconf

PATH_RESOLVE.

-H, --metaphysical

Follow command argument symbolic links, otherwise don't follow symbolic links when

traversing directories. The default is determined by getconf PATH_RESOLVE.

-P, --physical

Don't follow symbolic links when traversing directories. The default is determined by

getconf PATH_RESOLVE.

-r, --bsd

Equivalent to --method=bsd --scale=512 for compatibility with other sum(1)

implementations.

-s, --sysv

Equivalent to --method=sys5 for compatibility with other sum(1) implementations.

SEE ALSO

getconf(1), tw(1), uuencode(1)

IMPLEMENTATION

version

sum (AT&T Research) 2009-11-28

author

Glenn Fowler <[email protected] >

author

David Korn <[email protected]>

copyright

Copyright 1992-2010 AT&T Intellectual Property license

http://www.opensource.org/licenses/cpl1.0.txt

11.3 Sha1sum

sha1sum - compute and check SHA1 message digest

Synopsis

sha1sum [OPTION] [FILE]...

Description

Print or check SHA1 (160-bit) checksums. With no FILE, or when FILE is -, read standard

Page 223: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

222 Manuale DEFT 7

input.

-b, --binary

read in binary mode

-c, --check

read SHA1 sums from the FILEs and check them

-t, --text

read in text mode (default)

The following two options are useful only when verifying checksums:

--status

don't output anything, status code shows success

-w, --warn

warn about improperly formatted checksum lines

--help

display this help and exit

--version

output version information and exit

The sums are computed as described in FIPS-180-1. When checking, the input should be a

former output of this program. The default mode is to print a line with checksum, a

character indicating type ('*' for binary, ' ' for text), and name for each FILE.

Author

Written by Ulrich Drepper, Scott Miller, and David Madore.

Reporting Bugs

Report bugs to <[email protected]>.

Copyright

Copyright 2006 Free Software Foundation, Inc.

This is free software. You may redistribute copies of it under the terms of the GNU

General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY,

to the extent permitted by law.

See Also

The full documentation for sha1sum is maintained as a Texinfo manual. If the info and

sha1sum programs are properly installed at your site, the command

info sha1sum

should give you access to the complete manual.

Referenced By

Page 224: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

223 Manuale DEFT 7

cfv(1), cksfv(1), monit(1), openvpn(8), prelink(8)

11.4 Md5, sha1, sha256 deep

md5deep - Compute and compare MD5 message digests

sha1deep - Compute and compare SHA-1 message digests

sha256deep - Compute and compare SHA-256 message digests

tigerdeep - Compute and compare Tiger message digests

whirlpooldeep - Compute and compare Whirlpool message digests

Synopsis

md5deep -v | -V | -h

md5deep [-m|-M|-x|-X <file>] [-a|-A <hash>] [-f <file>] [-p <size>] [-i <size>] [-

tnwzresS0lbkq] [-o <fbcplsd>] [FILES]

Description

Computes the hashes, or message digest, for any number of files while optionally

recursively digging through the directory structure. Can also take a list of known hashes

and display the filenames of input files whose hashes either do or do not match any of the

known hashes. Errors are reported to standard error. If no FILES are specified, reads from

standard input.

-p <size>

Piecewise mode. Breaks files into chunks before hashing. Chunks may be specified using

multiplers b, k, m, g, t, p, or e. (Never let it be said that the author didn't plan ahead!) This

mode cannot be used with the -z mode.

-i|-I <size>

Size threshold mode. Only hash files smaller than the given the threshold. In -i mode,

simply omits those files larger than the threshold. In -I mode, displays all files, but uses

asterisks for the hashes of files larger than the threshold. Sizes may be specified using

multiplers b, k, m, g, t, p, or e.

-r

Enables recursive mode. All subdirectories are traversed. Please note that recursive

mode cannot be used to examine all files of a given file extension. For example, calling

md5deep -r *.txt will examine all files in directories that end in .txt.

-e

Displays a progress indicator and estimate of time remaining for each file being

processed. Time estimates for files larger than 4GB are not available on Windows. This

mode may not be used with th -p mode.

-m <file>

Page 225: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

224 Manuale DEFT 7

Enables matching mode. The file given should be a list of known hashes. The input files

are examined one at a time, and only those files that match the list of known hashes are

output. This flag may be used more than once to add multiple sets of known hashes.

Acceptable formats for lists of known hashes are plain (such as those generated by

md5deep or md5sum), Hashkeeper files, iLook, and the National Software Reference

Library (NSRL) as produced by the National Institute for Standards in Technology.

If standard input is used with the -m flag, displays "stdin" if the input matches one of

the hashes in the list of known hashes. If the hash does not match, the program displays

no output.

This flag may not be used in conjunction with the -x, -X, or -A flags. See the section

"UNICODE SUPPORT" below.

-x <file>

Same as the -m flag above, but does negative matching. That is, only those files NOT in

the list of known hashes are displayed.

This flag may not be used in conjunction with the -m, -M, or -a flags. See the section

"UNICODE SUPPORT" below.

-M and -X <file>

Same as -m and -x above, but displays the hash for each file that does (or does not)

match the list of known hashes.

-a <hash>

Adds a single hash to the list of known hashes used for matching mode, and if not

already enabled, enables matching mode. Adding single hashes cannot, by itself, be used

to print the hashes of matching files like the -M flag does. When used in conjunction with

the -w flag, the filename displayed is just the hash submitted on the command line.

This flag may not be used in conjunction with the -x, -X, or -A flags.

-A <hash>

Same as -a above, but does negative matching. This flag may not be used in conjunction

with the -m, -M, or -A flags.

-f <file>

Takes a list of files to be hashed from the specified file. Each line is assumed to be a

filename. This flag can only be used once per invocation. If it's used a second time, the

second instance will clobber the first.

-w

During any of the matching modes (-m,-M,-x,or -X), displays the filename of the known

hash that matched the input file. See the section "UNICODE SUPPORT" below.

-t

Page 226: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

225 Manuale DEFT 7

Display a timestamp in GMT with each result. On Windows this timestamp will be the

file's creation time. On all other systems it should be the file's change time.

-n

During any of the matching modes (-m,-M,-x,or -X), displays only the filenames of any

known hashes that were not matched by any of the input files.

-s

Enables silent mode. All error messages are supressed.

-S

Like silent mode, but still displays warnings on improperly formatted hashes in the list

of known hashes.

-z

Enables file size mode. Prepends the hash with a ten digit representation of the size of

each file processed. If the file size is greater than 9999999999 bytes (about 9.3GB) the

program displays 9999999999 for the size.

-q

Quiet mode. File names are omitted from the output.

-0

Uses a NULL character (/0) to terminate each line instead of a newline. Useful for

processing filenames with strange characters.

-l

Enables relative file paths. Instead of printing the absolute path for each file, displays

the relative file path as indicated on the command line. This flag may not be used in

conjunction with the -b flag.

-b

Enables bare mode. Strips any leading directory information from displayed filenames.

This flag may not be used in conjunction with the -l flag.

-k

Enables asterisk mode. An asterisk is inserted in lieu of a second space between the

filename and the hash, just like md5sum in its binary (-b) mode.

-c

Enables comma separated values output, or CSV mode. This mode has the side effect of

removing the 10 digit size limitation from -z mode. Also note that asterisks from -k mode

are not displayed when in CSV mode.

-o <bcpflsd>

Enables expert mode. Allows the user specify which (and only which) types of files are

processed. Directory processing is still controlled with the -r flag. The expert mode options

Page 227: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

226 Manuale DEFT 7

allowed are:

f - Regular files

b - Block Devices

c - Character Devices

p - Named Pipes

l - Symbolic Links

s - Sockets

d - Solaris Doors

-h

Show a help screen and exit.

-v

Show the version number and exit.

-V

Show copyright information and exit.

Unicode Support

As of version 2.0 the program supports Unicode characters in filenames on Microsoft

Windows systems. Due to limitations in Windows, however, each Unicode character is

represented as a question mark (?) in the output. Note that Unicode characters are not

supported in the files containing known hashes. You can specify a file of known hashes

that has Unicode characters in its name by using tab completition or an asterisk (e.g.

md5deep -m *.txt where there is only one file with a .txt extension).

Return Value

Returns a bit-wise value based on the success of the operation and the status of any

matching operations.

1. Success. Note that the program considers itself successful even when it encounters

read errors, permission denied errors, or finds directories when not in recursive mode.

2. Unused hashes. Under any of the matching modes, returns this value if one or more

of the known hashes was not matched by any of the input files.

3. Unmatched inputs. Under any of the matching modes, returns this value if one or

more of the input values did not match any of the known hashes.

4. User error, such as trying to do both positive and negative matching at the same time.

5. Internal error, such as memory corruption or uncaught cycle. All internal errors should

be reported to the developer! See the section "Reporting Bugs" below.

Author

Page 228: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

227 Manuale DEFT 7

md5deep was written by Jesse Kornblum, research [at] jessekornblum [dot] com.

Known Issues

Using the -r flag cannot be used to recursively process all files of a given extension in a

directory. This is a feature, not a bug. If you need to do this, use the find(1) command.

Reporting Bugs

We take all bug reports very seriously. Any bug that jeopardizes the forensic integrity of

this program could have serious consequenses on people's lives. When submitting a bug

report, please include a description of the problem, how you found it, and your contact

information.

Send bug reports to the author at the address above.

Copyright

This program is a work of the US Government. In accordance with 17 USC 105, copyright

protection is not available for any work of the US Government. This program is PUBLIC

DOMAIN. Portions of this program contain code that is licensed under the terms of the

General Public License (GPL). Those portions retain their original copyright and license.

See the file COPYING for more details.

There is NO warranty for this program; not even for MERCHANTABILITY or FITNESS FOR A

PARTICULAR PURPOSE.

See Also

More information and installation instructions can be found in the README file. Current

versions of both documents can be found on the project homepage:

http://md5deep.sourceforge.net/

The MD5 specification, RFC 1321, is available at

http://www.ietf.org/rfc/rfc1321.txt

The SHA-1 specification, RFC 3174, is available at

http://www.faqs.org/rfcs/rfc3174.html

The SHA-256 specification, FIPS 180-2, is available at

http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf

The Tiger specification is available at

http://www.cs.technion.ac.il/~biham/Reports/Tiger/

The Whirlpool specification is available at

http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html

11.5 Dhash

** DHash 2.0.1 - Terminal Version **

Page 229: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

228 Manuale DEFT 7

Usage:

dhash -t -f FILE HASH_ALGO1 [HASH_ALGO2] [HASH_ALGO3] [OPTIONS]

-t Terminal interface

-f file to hashing

-o output acquire file

-c compress Output file (bz2)

HASH_ALGO:

--md5 calculate md5

--sha1 calculate sha1

--svf calculate svf

OPTIONS:

--md5file file for check md5 hash

--sha1file file for check sha1 hash

-l | --log logging into html file

--language=[LANGUAGE] [LANGUAGE]: IT,EN,....

Example:

dhash -t -f linux.iso --md5 --sha1 --md5file linuxsum.md5 -l dhash.log.html --language=EN

11.6 Grep

NAME

grep, egrep, fgrep, rgrep - print lines matching a pattern

SYNOPSIS

grep [options] PATTERN [FILE...]

grep [options] [-e PATTERN | -f FILE] [FILE...]

DESCRIPTION

Page 230: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

229 Manuale DEFT 7

grep searches the named input FILEs (or standard input if no files are

named, or the file name - is given) for lines containing a match to the

given PATTERN. By default, grep prints the matching lines.

In addition, three variant programs egrep, fgrep and rgrep are avail-

able. egrep is the same as grep -E. fgrep is the same as grep -F.

rgrep is the same as grep -r.

OPTIONS

-A NUM, --after-context=NUM

Print NUM lines of trailing context after matching lines.

Places a line containing -- between contiguous groups of

matches.

-a, --text

Process a binary file as if it were text; this is equivalent to

the --binary-files=text option.

-B NUM, --before-context=NUM

Print NUM lines of leading context before matching lines.

Places a line containing -- between contiguous groups of

matches.

-b, --byte-offset

Print the byte offset within the input file before each line of

output.

--binary-files=TYPE

If the first few bytes of a file indicate that the file contains

binary data, assume that the file is of type TYPE. By default,

TYPE is binary, and grep normally outputs either a one-line mes-

sage saying that a binary file matches, or no message if there

is no match. If TYPE is without-match, grep assumes that a

Page 231: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

230 Manuale DEFT 7

binary file does not match; this is equivalent to the -I option.

If TYPE is text, grep processes a binary file as if it were

text; this is equivalent to the -a option. Warning: grep

--binary-files=text might output binary garbage, which can have

nasty side effects if the output is a terminal and if the termi-

nal driver interprets some of it as commands.

-C NUM, --context=NUM

Print NUM lines of output context. Places a line containing --

between contiguous groups of matches.

-c, --count

Suppress normal output; instead print a count of matching lines

for each input file. With the -v, --invert-match option (see

below), count non-matching lines.

--colour[=WHEN], --color[=WHEN]

Surround the matching string with the marker find in GREP_COLOR

environment variable. WHEN may be `never', `always', or `auto'

-D ACTION, --devices=ACTION

If an input file is a device, FIFO or socket, use ACTION to pro-

cess it. By default, ACTION is read, which means that devices

are read just as if they were ordinary files. If ACTION is

skip, devices are silently skipped.

-d ACTION, --directories=ACTION

If an input file is a directory, use ACTION to process it. By

default, ACTION is read, which means that directories are read

just as if they were ordinary files. If ACTION is skip, direc-

tories are silently skipped. If ACTION is recurse, grep reads

all files under each directory, recursively; this is equivalent

to the -r option.

Page 232: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

231 Manuale DEFT 7

-E, --extended-regexp

Interpret PATTERN as an extended regular expression (see below).

-e PATTERN, --regexp=PATTERN

Use PATTERN as the pattern; useful to protect patterns beginning

with -.

-F, --fixed-strings

Interpret PATTERN as a list of fixed strings, separated by new-

lines, any of which is to be matched.

-f FILE, --file=FILE

Obtain patterns from FILE, one per line. The empty file con-

tains zero patterns, and therefore matches nothing.

-G, --basic-regexp

Interpret PATTERN as a basic regular expression (see below).

This is the default.

-H, --with-filename

Print the filename for each match.

-h, --no-filename

Suppress the prefixing of filenames on output when multiple

files are searched.

--help Output a brief help message.

-I Process a binary file as if it did not contain matching data;

this is equivalent to the --binary-files=without-match option.

-i, --ignore-case

Ignore case distinctions in both the PATTERN and the input

files.

Page 233: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

232 Manuale DEFT 7

-L, --files-without-match

Suppress normal output; instead print the name of each input

file from which no output would normally have been printed. The

scanning will stop on the first match.

-l, --files-with-matches

Suppress normal output; instead print the name of each input

file from which output would normally have been printed. The

scanning will stop on the first match.

--label=LABEL

Displays input actually coming from standard input as input com-

ing from file LABEL. This is especially useful for tools like

zgrep, e.g. gzip -cd foo.gz |grep --label=foo something

--line-buffered

Use line buffering, it can be a performance penalty.

-m NUM, --max-count=NUM

Stop reading a file after NUM matching lines. If the input is

standard input from a regular file, and NUM matching lines are

output, grep ensures that the standard input is positioned to

just after the last matching line before exiting, regardless of

the presence of trailing context lines. This enables a calling

process to resume a search. When grep stops after NUM matching

lines, it outputs any trailing context lines. When the -c or

--count option is also used, grep does not output a count

greater than NUM. When the -v or --invert-match option is also

used, grep stops after outputting NUM non-matching lines.

--mmap If possible, use the mmap(2) system call to read input, instead

of the default read(2) system call. In some situations, --mmap

yields better performance. However, --mmap can cause undefined

Page 234: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

233 Manuale DEFT 7

behavior (including core dumps) if an input file shrinks while

grep is operating, or if an I/O error occurs.

-n, --line-number

Prefix each line of output with the line number within its input

file.

-o, --only-matching

Show only the part of a matching line that matches PATTERN.

-P, --perl-regexp

Interpret PATTERN as a Perl regular expression.

-q, --quiet, --silent

Quiet; do not write anything to standard output. Exit immedi-

ately with zero status if any match is found, even if an error

was detected. Also see the -s or --no-messages option.

-R, -r, --recursive

Read all files under each directory, recursively; this is equiv-

alent to the -d recurse option.

--include=PATTERN

Recurse in directories only searching file matching PATTERN.

--exclude=PATTERN

Recurse in directories skip file matching PATTERN.

-s, --no-messages

Suppress error messages about nonexistent or unreadable files.

Portability note: unlike GNU grep, traditional grep did not con-

form to POSIX.2, because traditional grep lacked a -q option and

its -s option behaved like GNU grep's -q option. Shell scripts

intended to be portable to traditional grep should avoid both -q

Page 235: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

234 Manuale DEFT 7

and -s and should redirect output to /dev/null instead.

-U, --binary

Treat the file(s) as binary. By default, under MS-DOS and MS-

Windows, grep guesses the file type by looking at the contents

of the first 32KB read from the file. If grep decides the file

is a text file, it strips the CR characters from the original

file contents (to make regular expressions with ^ and $ work

correctly). Specifying -U overrules this guesswork, causing all

files to be read and passed to the matching mechanism verbatim;

if the file is a text file with CR/LF pairs at the end of each

line, this will cause some regular expressions to fail. This

option has no effect on platforms other than MS-DOS and MS-Win-

dows.

-u, --unix-byte-offsets

Report Unix-style byte offsets. This switch causes grep to

report byte offsets as if the file were Unix-style text file,

i.e. with CR characters stripped off. This will produce results

identical to running grep on a Unix machine. This option has no

effect unless -b option is also used; it has no effect on plat-

forms other than MS-DOS and MS-Windows.

-V, --version

Print the version number of grep to standard error. This ver-

sion number should be included in all bug reports (see below).

-v, --invert-match

Invert the sense of matching, to select non-matching lines.

-w, --word-regexp

Select only those lines containing matches that form whole

words. The test is that the matching substring must either be

at the beginning of the line, or preceded by a non-word con-

Page 236: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

235 Manuale DEFT 7

stituent character. Similarly, it must be either at the end of

the line or followed by a non-word constituent character. Word-

constituent characters are letters, digits, and the underscore.

-x, --line-regexp

Select only those matches that exactly match the whole line.

-y Obsolete synonym for -i.

-Z, --null

Output a zero byte (the ASCII NUL character) instead of the

character that normally follows a file name. For example, grep

-lZ outputs a zero byte after each file name instead of the

usual newline. This option makes the output unambiguous, even

in the presence of file names containing unusual characters like

newlines. This option can be used with commands like find

-print0, perl -0, sort -z, and xargs -0 to process arbitrary

file names, even those that contain newline characters.

-z, --null-data

Treat the input as a set of lines, each terminated by a zero

byte (the ASCII NUL character) instead of a newline. Like the

-Z or --null option, this option can be used with commands like

sort -z to process arbitrary file names.

REGULAR EXPRESSIONS

A regular expression is a pattern that describes a set of strings.

Regular expressions are constructed analogously to arithmetic expres-

sions, by using various operators to combine smaller expressions.

grep understands three different versions of regular expression syntax:

"basic," "extended," and "perl." In GNU grep, there is no difference

in available functionality using either of the first two syntaxes. In

Page 237: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

236 Manuale DEFT 7

other implementations, basic regular expressions are less powerful.

The following description applies to extended regular expressions; dif-

ferences for basic regular expressions are summarized afterwards. Perl

regular expressions add additional functionality, but the implementa-

tion used here is undocumented and is not compatible with other grep

implementations.

The fundamental building blocks are the regular expressions that match

a single character. Most characters, including all letters and digits,

are regular expressions that match themselves. Any metacharacter with

special meaning may be quoted by preceding it with a backslash.

A bracket expression is a list of characters enclosed by [ and ]. It

matches any single character in that list; if the first character of

the list is the caret ^ then it matches any character not in the list.

For example, the regular expression [0123456789] matches any single

digit.

Within a bracket expression, a range expression consists of two charac-

ters separated by a hyphen. It matches any single character that sorts

between the two characters, inclusive, using the locale's collating

sequence and character set. For example, in the default C locale,

[a-d] is equivalent to [abcd]. Many locales sort characters in dictio-

nary order, and in these locales [a-d] is typically not equivalent to

[abcd]; it might be equivalent to [aBbCcDd], for example. To obtain

the traditional interpretation of bracket expressions, you can use the

C locale by setting the LC_ALL environment variable to the value C.

Finally, certain named classes of characters are predefined within

bracket expressions, as follows. Their names are self explanatory, and

they are [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:],

[:lower:], [:print:], [:punct:], [:space:], [:upper:], and [:xdigit:].

For example, [[:alnum:]] means [0-9A-Za-z], except the latter form

depends upon the C locale and the ASCII character encoding, whereas the

Page 238: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

237 Manuale DEFT 7

former is independent of locale and character set. (Note that the

brackets in these class names are part of the symbolic names, and must

be included in addition to the brackets delimiting the bracket list.)

Most metacharacters lose their special meaning inside lists. To

include a literal ] place it first in the list. Similarly, to include

a literal ^ place it anywhere but first. Finally, to include a literal

- place it last.

The period . matches any single character. The symbol \w is a synonym

for [[:alnum:]] and \W is a synonym for [^[:alnum]].

The caret ^ and the dollar sign $ are metacharacters that respectively

match the empty string at the beginning and end of a line. The symbols

\< and \> respectively match the empty string at the beginning and end

of a word. The symbol \b matches the empty string at the edge of a

word, and \B matches the empty string provided it's not at the edge of

a word.

A regular expression may be followed by one of several repetition oper-

ators:

? The preceding item is optional and matched at most once.

* The preceding item will be matched zero or more times.

+ The preceding item will be matched one or more times.

{n} The preceding item is matched exactly n times.

{n,} The preceding item is matched n or more times.

{n,m} The preceding item is matched at least n times, but not more

than m times.

Two regular expressions may be concatenated; the resulting regular

expression matches any string formed by concatenating two substrings

that respectively match the concatenated subexpressions.

Two regular expressions may be joined by the infix operator |; the

resulting regular expression matches any string matching either subex-

Page 239: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

238 Manuale DEFT 7

pression.

Repetition takes precedence over concatenation, which in turn takes

precedence over alternation. A whole subexpression may be enclosed in

parentheses to override these precedence rules.

The backreference \n, where n is a single digit, matches the substring

previously matched by the nth parenthesized subexpression of the regu-

lar expression.

In basic regular expressions the metacharacters ?, +, {, |, (, and )

lose their special meaning; instead use the backslashed versions \?,

\+, \{, \|, \(, and \).

Traditional egrep did not support the { metacharacter, and some egrep

implementations support \{ instead, so portable scripts should avoid {

in egrep patterns and should use [{] to match a literal {.

GNU egrep attempts to support traditional usage by assuming that { is

not special if it would be the start of an invalid interval specifica-

tion. For example, the shell command egrep '{1' searches for the two-

character string {1 instead of reporting a syntax error in the regular

expression. POSIX.2 allows this behavior as an extension, but portable

scripts should avoid it.

ENVIRONMENT VARIABLES

grep's behavior is affected by the following environment variables.

A locale LC_foo is specified by examining the three environment vari-

ables LC_ALL, LC_foo, LANG, in that order. The first of these vari-

ables that is set specifies the locale. For example, if LC_ALL is not

set, but LC_MESSAGES is set to pt_BR, then Brazilian Portuguese is used

for the LC_MESSAGES locale. The C locale is used if none of these

Page 240: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

239 Manuale DEFT 7

environment variables are set, or if the locale catalog is not

installed, or if grep was not compiled with national language support

(NLS).

GREP_OPTIONS

This variable specifies default options to be placed in front of

any explicit options. For example, if GREP_OPTIONS is

'--binary-files=without-match --directories=skip', grep behaves

as if the two options --binary-files=without-match and --direc-

tories=skip had been specified before any explicit options.

Option specifications are separated by whitespace. A backslash

escapes the next character, so it can be used to specify an

option containing whitespace or a backslash.

GREP_COLOR

Specifies the marker for highlighting.

LC_ALL, LC_COLLATE, LANG

These variables specify the LC_COLLATE locale, which determines

the collating sequence used to interpret range expressions like

[a-z].

LC_ALL, LC_CTYPE, LANG

These variables specify the LC_CTYPE locale, which determines

the type of characters, e.g., which characters are whitespace.

LC_ALL, LC_MESSAGES, LANG

These variables specify the LC_MESSAGES locale, which determines

the language that grep uses for messages. The default C locale

uses American English messages.

POSIXLY_CORRECT

If set, grep behaves as POSIX.2 requires; otherwise, grep

behaves more like other GNU programs. POSIX.2 requires that

Page 241: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

240 Manuale DEFT 7

options that follow file names must be treated as file names; by

default, such options are permuted to the front of the operand

list and are treated as options. Also, POSIX.2 requires that

unrecognized options be diagnosed as "illegal", but since they

are not really against the law the default is to diagnose them

as "invalid". POSIXLY_CORRECT also disables _N_GNU_nonop-

tion_argv_flags_, described below.

_N_GNU_nonoption_argv_flags_

(Here N is grep's numeric process ID.) If the ith character of

this environment variable's value is 1, do not consider the ith

operand of grep to be an option, even if it appears to be one.

A shell can put this variable in the environment for each com-

mand it runs, specifying which operands are the results of file

name wildcard expansion and therefore should not be treated as

options. This behavior is available only with the GNU C

library, and only when POSIXLY_CORRECT is not set.

DIAGNOSTICS

Normally, exit status is 0 if selected lines are found and 1 otherwise.

But the exit status is 2 if an error occurred, unless the -q or --quiet

or --silent option is used and a selected line is found.

BUGS

Email bug reports to [email protected]. Be sure to include the

word "grep" somewhere in the "Subject:" field.

Large repetition counts in the {n,m} construct may cause grep to use

lots of memory. In addition, certain other obscure regular expressions

require exponential time and space, and may cause grep to run out of

memory.

Page 242: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

241 Manuale DEFT 7

Backreferences are very slow, and may require exponential time.

11.7 Dd

dd - convert and copy a file

Synopsis

dd [OPERAND]...

dd OPTION

Description

Copy a file, converting and formatting according to the operands.

bs=BYTES

force ibs=BYTES and obs=BYTES

cbs=BYTES

convert BYTES bytes at a time

conv=CONVS

convert the file as per the comma separated symbol list

count=BLOCKS

copy only BLOCKS input blocks

ibs=BYTES

read BYTES bytes at a time

if=FILE

read from FILE instead of stdin

iflag=FLAGS

read as per the comma separated symbol list

obs=BYTES

write BYTES bytes at a time

of=FILE

write to FILE instead of stdout

oflag=FLAGS

write as per the comma separated symbol list

seek=BLOCKS

skip BLOCKS obs-sized blocks at start of output

skip=BLOCKS

Page 243: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

242 Manuale DEFT 7

skip BLOCKS ibs-sized blocks at start of input

status=noxfer

suppress transfer statistics

BLOCKS and BYTES may be followed by the following multiplicative suffixes: xM M, c 1, w

2, b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G

1024*1024*1024, and so on for T, P, E, Z, Y.

Each CONV symbol may be:

ascii

from EBCDIC to ASCII

ebcdic

from ASCII to EBCDIC

ibm

from ASCII to alternate EBCDIC

block

pad newline-terminated records with spaces to cbs-size

unblock

replace trailing spaces in cbs-size records with newline

lcase

change upper case to lower case

nocreat

do not create the output file

excl

fail if the output file already exists

notrunc

do not truncate the output file

ucase

change lower case to upper case

swab

swap every pair of input bytes

noerror

continue after read errors

sync

Page 244: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

243 Manuale DEFT 7

pad every input block with NULs to ibs-size; when used

with block or unblock, pad with spaces rather than NULs

fdatasync physically write output file data before finishing

fsync likewise, but also write metadata

Each FLAG symbol may be:

append

append mode (makes sense only for output)

direct

use direct I/O for data

dsync

use synchronized I/O for data

sync

likewise, but also for metadata

nonblock

use non-blocking I/O

nofollow

do not follow symlinks

noctty

do not assign controlling terminal from file

Sending a USR1 signal to a running 'dd' process makes it print I/O statistics to standard

error and then resume copying.

CW$ dd if=/dev/zero of=/dev/null& pid=$!

CW$ kill -USR1 $pid; sleep 1; kill $pid

18335302+0 records in

18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s

Options are:

--help

display this help and exit

--version

output version information and exit

Author

Page 245: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

244 Manuale DEFT 7

Written by Paul Rubin, David MacKenzie, and Stuart Kemp.

Reporting Bugs

Report bugs to <[email protected]>.

Copyright

Copyright 2006 Free Software Foundation, Inc.

This is free software. You may redistribute copies of it under the terms of the GNU

General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY,

to the extent permitted by law.

See Also

The full documentation for dd is maintained as a Texinfo manual. If the info and dd

programs are properly installed at your site, the command

info dd

should give you access to the complete manual.

Referenced By

buffer(1), cdrecord(1), cstream(1), cycbuff.conf(5), gpart(8), myrescue(1), sg_dd(8),

sg_read(8), sgm_dd(8), sgp_dd(8), spax(1), star(1), varnishd(1), wodim(1), xfs(5),

xfs_copy(8), xfs_repair(8)

11.8 DD rescue

Data recovery tool, save data from a crashed partition.

Syntax

ddrescue [options] infile outfile [logfile]

Options:

-b=bytes Hardware block size of input device [512]

--block-size=bytes

-B Show binary multipliers in numbers [default SI]

--binary-prefixes

-c=blocks Hardware blocks to copy at a time [128]

--cluster-size=blocks

-C Do not read new data beyond logfile limits

--complete-only

-d Use direct disc access for input file

--direct

-e=n Maximum number of error areas allowed

Page 246: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

245 Manuale DEFT 7

--max-errors=n

-i=pos Starting position in input file [0]

--input-position=pos

-n Do not try to split error areas

--no-split

-o=pos Starting position in output file [ipos]

--output-position=pos

-q Quiet operation

--quiet

-r=n Exit after given retries (-1=infinity) [0]

--max-retries=n

-s=bytes Maximum size of data to be copied

--max-size=bytes

-t Truncate output file

--truncate

-v Verbose operation

--verbose

-V Output version information and exit

--version

Numbers may be followed by a multiplier: b = blocks, k = kB = 10^3 = 1000, Ki = KiB = 2^10

= 1024, M = 10^6, Mi = 2^20, G = 10^9, Gi = 2^30, etc...

Installation

Debian / Ubuntu Linux:

# apt-get install ddrescue

RedHat /Fedora /CentOS Linux:

# yum -y install ddrescue

ddrescue written by Antonio Diaz Diaz, download from the GNU web site.

Installs as /usr/bin/ddrescue

Example:

To copy /dev/sda (damaged \device\harddisk0) to another drive /dev/sdb (empty

\device\harddisk1)

# ddrescue /dev/sda /dev/sdb

To recover the partition data run fsck, for example if /home (user data) is on /dev/sda2,

Page 247: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

246 Manuale DEFT 7

run fsck on partition /dev/sdb2:

# fsck /dev/sdb2

This avoids touching the damaged /dev/sda, if the procedure fails you can send the

original disk to a professional data recovery service.

Lastly mount the partition somewhere and see if you can access the data:

# mount /dev/sdb2 /mnt/data

"Rescue me, Oh take me in your arms, Rescue me" - Aretha Franklin

11.9 DcflDD

dcfldd - manual page for dcfldd (dcfldd) 1.3.4

SYNOPSIS

dcfldd [OPTION]...

DESCRIPTION

Copy a file, converting and formatting according to the options.

bs=BYTES

force ibs=BYTES and obs=BYTES

cbs=BYTES

convert BYTES bytes at a time

conv=KEYWORDS

convert the file as per the comma separated keyword list

count=BLOCKS

copy only BLOCKS input blocks

ibs=BYTES

read BYTES bytes at a time

if=FILE

read from FILE instead of stdin

obs=BYTES

write BYTES bytes at a time

of=FILE

write to FILE instead of stdout

NOTE: of=FILE may be used several times to write

output to multiple files simultaneously

of:=COMMAND

Page 248: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

247 Manuale DEFT 7

exec and write output to process COMMAND

seek=BLOCKS

skip BLOCKS obs-sized blocks at start of output

skip=BLOCKS

skip BLOCKS ibs-sized blocks at start of input

pattern=HEX

use the specified binary pattern as input

textpattern=TEXT

use repeating TEXT as input

errlog=FILE

send error messages to FILE as well as stderr

hashwindow=BYTES

perform a hash on every BYTES amount of data

hash=NAME

either md5, sha1, sha256, sha384 or sha512

default algorithm is md5. To select multiple algorithms to run simultaneously enter the

names in a comma separated list

hashlog=FILE

send MD5 hash output to FILE instead of stderr

if you are using multiple hash algorithms you can send each to a seperate file using the

convention ALGORITHMlog=FILE, for example md5log=FILE1, sha1log=FILE2, etc.

hashlog:=COMMAND

exec and write hashlog to process COMMAND

ALGORITHMlog:=COMMAND also works in the same fashion

hashconv=[before|after]

perform the hashing before or after the conversions

hashformat=FORMAT

display each hashwindow according to FORMAT

the hash format mini-language is described below

totalhashformat=FORMAT

display the total hash value according to FORMAT

status=[on|off]

display a continual status message on stderr

default state is "on"

Page 249: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

248 Manuale DEFT 7

statusinterval=N

update the status message every N blocks

default value is 256

sizeprobe=[if|of]

determine the size of the input or output file

for use with status messages. (this option gives you a percentage indicator) WARNING: do

not use this option against a

tape device.

split=BYTES

write every BYTES amount of data to a new file

This operation applies to any of=FILE that follows

splitformat=TEXT

the file extension format for split operation.

you may use any number of 'a' or 'n' in any combo the default format is "nnn" NOTE: The

split and splitformat options take effect

only for output files specified AFTER these options appear in the command line. Likewise,

you may specify these several times for for different output files within the same

command line. you may use as many digits in any combination you would like. (e.g.

"anaannnaana" would be valid, but quite insane)

vf=FILE

verify that FILE matches the specified input

verifylog=FILE

send verify results to FILE instead of stderr

verifylog:=COMMAND

exec and write verify results to process COMMAND

--help

display this help and exit

--version

output version information and exit

The structure of of FORMAT may contain any valid text and special variables. The built-

in variables are used the following format: #variable_name# To pass FORMAT strings to

the program from a command line, it may be necessary to surround your FORMAT

strings with "quotes." The built-in variables are listed below:

window_start

The beginning byte offset of the hashwindow

Page 250: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

249 Manuale DEFT 7

window_end

The ending byte offset of the hashwindow

block_start

The beginning block (by input blocksize) of the window

block_end

The ending block (by input blocksize) of the hash window

hash

The hash value

algorithm

The name of the hash algorithm

For example, the default FORMAT for hashformat and totalhashformat are:

hashformat="#window_start# - #window_end#: #hash#" totalhashformat="Total

(#algorithm#): #hash#"

The FORMAT structure accepts the following escape codes:

\n

Newline

\t

Tab

\r

Carriage return

\\

Insert the '\' character

##

Insert the '#' character as text, not a variable

BLOCKS and BYTES may be followed by the following multiplicative suffixes: xM M, c 1,

w 2, b 512, kD 1000, k 1024, MD 1,000,000, M 1,048,576, GD 1,000,000,000, G

1,073,741,824, and so on for T, P, E, Z, Y.

Each KEYWORD may be:

ascii

from EBCDIC to ASCII

ebcdic

from ASCII to EBCDIC

ibm

Page 251: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

250 Manuale DEFT 7

from ASCII to alternated EBCDIC

block

pad newline-terminated records with spaces to cbs-size

unblock

replace trailing spaces in cbs-size records with newline

lcase

change upper case to lower case

notrunc

do not truncate the output file

ucase

change lower case to upper case

swab

swap every pair of input bytes

noerror

continue after read errors

sync

pad every input block with NULs to ibs-size; when used with block or unblock, pad with

spaces rather than NULs

AUTHOR

Written by: dcfldd by Nicholas Harbour, GNU dd by Paul Rubin, David MacKenzie and

Stuart Kemp.

REPORTING BUGS

Report bugs to <[email protected]>.

COPYRIGHT

Copyright 1985-2006 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO warranty; not

even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO

The full documentation for dcfldd is maintained as a Texinfo manual. If the info and dcfldd

programs are properly installed at your site, the command

info dcfldd

should give you access to the complete manual.

Page 252: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

251 Manuale DEFT 7

11.10 Fls

fls - List file and directory names in a disk image.

Synopsis

fls [-adDFlpruvV] [-m mnt ] [-z zone ] [-f fstype ] [-s seconds ] [-i imgtype ] [-o imgoffset ] [-

b dev_sector_size] image [images] [ inode ]

Description

fls lists the files and directory names in the image and can display file names of recently

deleted files for the directory using the given inode. If the inode argument is not given,

the inode value for the root directory is used. For example, on an NTFS file system it

would be 5 and on a Ext3 file system it would be 2.

The arguments are as follows:

-a

Display the "." and ".." directory entries (by default it does not)

-d

Display deleted entries only

-D

Display directory entries only

-f fstype

The type of file system. Use ’-f list’ to list the supported file system types. If not given,

autodetection methods are used.

-F

Display file (all non-directory) entries only.

-l

Display file details in long format. The following contents are displayed:

file_type inode file_name mod_time acc_time chg_time cre_time size uid gid

-m mnt

Display files in time machine format so that a timeline can be gid created with

mactime(1) .

The string given as mnt will be prepended to the file names as the mounting point (for

example /usr).

-p

Display the full path for each entry. By default it denotes the directory depth on

recursive runs with a ’+’ sign.

-r

Recursively display directories. This will not follow deleted directories, because it can’t.

Page 253: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

252 Manuale DEFT 7

-s seconds

The time skew of the original system in seconds. For example, if the original system was

100 seconds slow, this value would be -100. This is only used if -l or -m are given.

-i imgtype

Identify the type of image file, such as raw or split. Use ’-i list’ to list the supported

types. If not given, autodetection methods are used.

-o imgoffset

The sector offset where the file system starts in the image.

-b dev_sector_size

The size, in bytes, of the underlying device sectors. If not given, the value in the image

format is used (if it exists) or 512-bytes is assumed.

-u

Display undeleted entries only

-v

Verbose output to stderr.

-V

Display version.

-z zone

The ASCII string of the time zone of the original system. For example, EST or GMT. These

strings must be defined by your operating system and may vary.

image [images]

One (or more if split) disk or partition images whose format is given with ’-i’.

Once the inode has been determined, the file can be recovered using icat(1) from The

Coroners Toolkit. The amount of information recovered from deleted file entries varies

depending on the system. For example, on Linux, a recently deleted file can be easily

recovered, while in Solaris not even the inode can be determined. If you just want to find

what file name belongs to an inode, it is easier to use ffind(1) .

Examples

To get a list of all files and directories in an image use:

# fls -r image 2

or just (if no inode is specified, the root directory inode is used):

# fls -r image

To get the full path of deleted files in a given directory:

# fls -d -p image 29

To get the mactime output do:

Page 254: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

253 Manuale DEFT 7

# fls -m /usr/local image 2

If you have a disk image and the file system starts in sector 63, use:

# fls -o 63 disk-img.dd

If you have a disk image that is split use:

# fls -i "split" -o 63 disk-1.dd disk-2.dd disk-3.dd

See Also

ffind(1) , icat(1)

Author

Brian Carrier <carrier at sleuthkit dot org>

Send documentation updates to <doc-updates at sleuthkit dot org>

11.11 Mactime

mactime - Create an ASCII time line of file activity

Synopsis

mactime [-b body ] [-g group file ] [-p password file ] [-i (day|hour) index file ] [-dhmVy] [-z

TIME_ZONE ] [DATE_RANGE]

Description

mactime creates an ASCII time line of file activity based on the body file specified by ’-b’

or from STDIN. The time line is written to STDOUT. The body file must be in the time

machine format that is created by ’ils -m’, ’fls -m’, or the mac-robber tool.

Arguments

-b body

Specify the location of a body file. This file must be generated by a tool such as ’fls -m’

or ’ils -m’. The ’mac-robber’ and ’grave-robber’ tools can also be used to generate the file.

-g group file

Specify the location of the group file. mactime will display the group name instead of

the GID if this is given.

-p password file

Specify the location of the passwd file. mactime will display the user name instead of

the UID of this is given.

-i day|hour index file

Specify the location of an index file to write to. The first argument specifies the

granularity, either an hourly summary or daily. If the ’-d’ flag is given, then the summary

will be separated by a ’,’ to import into a spread sheet.

-d

Page 255: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

254 Manuale DEFT 7

Display timeline and index files in comma delimited format. This is used to import the

data into a spread sheet for presentations or graphs.

-h

Display header info about the session including time range, input source, and passwd or

group files.

-V

Display version to STDOUT.

-m

The month is given as a number instead of name.

-y

The date range is given with the year first.

-z TIME_ZONE

The timezone from where the data was collected. The name of this argument is system

dependent (examples include EST5EDT, GMT+1).

DATE_RANGE

The range of dates to make the time line for. The standard format is yyyy-mm-dd for a

starting date and no ending date. For an ending date, use yyyy-mm-dd..yyyy-mm-dd.

License

The changes from mactime in TCT and mac-daddy are distributed under the Common

Public License, found in the cpl1.0.txt file in the The Sleuth Kit licenses directory.

History

A version of mactime first appeared in The Coroner’s Toolkit (TCT) (Dan Farmer) and later

mac-daddy (Rob Lee).

Author

Brian Carrier <carrier at sleuthkit dot org>

Send documentation updates to <doc-updates at sleuthkit dot org>

11.12 Locate

NAME

locate - list files in databases that match a pattern

SYNOPSIS

locate [-d path | --database=path] [-e | -E | --[non-]existing] [-i |

--ignore-case] [-0 | --null] [-c | --count] [-w | --wholename] |-b |

--basename] [-l N | --limit=N] [-S | --statistics] [-r | --regex ] [-P

Page 256: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

255 Manuale DEFT 7

| -H | --nofollow] [-L | --follow] [--version] [-A | --all] [-p |

--print] [--help] pattern...

DESCRIPTION

This manual page documents the GNU version of locate. For each given

pattern, locate searches one or more databases of file names and dis-

plays the file names that contain the pattern. Patterns can contain

shell-style metacharacters: `*', `?', and `[]'. The metacharacters do

not treat `/' or `.' specially. Therefore, a pattern `foo*bar' can

match a file name that contains `foo3/bar', and a pattern `*duck*' can

match a file name that contains `lake/.ducky'. Patterns that contain

metacharacters should be quoted to protect them from expansion by the

shell.

If a pattern is a plain string -- it contains no metacharacters --

locate displays all file names in the database that contain that string

anywhere. If a pattern does contain metacharacters, locate only dis-

plays file names that match the pattern exactly. As a result, patterns

that contain metacharacters should usually begin with a `*', and will

most often end with one as well. The exceptions are patterns that are

intended to explicitly match the beginning or end of a file name.

The file name databases contain lists of files that were on the system

when the databases were last updated. The system administrator can

choose the file name of the default database, the frequency with which

the databases are updated, and the directories for which they contain

entries; see updatedb(1).

If locate's output is going to a terminal, unusual characters in the

output are escaped in the same way as for the -print action of the find

command. If the output is not going to a terminal, file names are

printed exactly as-is.

OPTIONS

-A, --all

Print only names which match all non-option arguments, not those

matching one or more non-option arguments.

Page 257: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

256 Manuale DEFT 7

-c, --count

Instead of printing the matched filenames, just print the total

number of matches we found, unless --print (-p) is also present.

-d path, --database=path

Instead of searching the default file name database, search the

file name databases in path, which is a colon-separated list of

database file names. You can also use the environment variable

LOCATE_PATH to set the list of database files to search. The

option overrides the environment variable if both are used.

Empty elements in the path are taken to be synonyms for the file

name of the default database. A database can be supplied on

stdin, using `-' as an element of path. If more than one element

of path is `-', later instances are ignored (and a warning mes-

sage is printed).

The file name database format changed starting with GNU find and

locate version 4.0 to allow machines with different byte order-

ings to share the databases. This version of locate can auto-

matically recognize and read databases produced for older ver-

sions of GNU locate or Unix versions of locate or find. Support

for the old locate database format will be discontinued in a

future release.

-e, --existing

Only print out such names that currently exist (instead of such

names that existed when the database was created). Note that

this may slow down the program a lot, if there are many matches

in the database. If you are using this option within a program,

please note that it is possible for the file to be deleted after

locate has checked that it exists, but before you use it.

-E, --non-existing

Only print out such names that currently do not exist (instead

of such names that existed when the database was created). Note

that this may slow down the program a lot, if there are many

matches in the database.

-L, --follow

Page 258: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

257 Manuale DEFT 7

If testing for the existence of files (with the -e or -E

options), consider broken symbolic links to be non-existing.

This is the default.

-P, -H, --nofollow

If testing for the existence of files (with the -e or -E

options), treat broken symbolic links as if they were existing

files. The -H form of this option is provided purely for simi-

larity with find; the use of -P is recommended over -H.

-i, --ignore-case

Ignore case distinctions in both the pattern and the file names.

-l N, --limit=N

Limit the number of matches to N. If a limit is set via this

option, the number of results printed for the -c option will

never be larger than this number.

-m, --mmap

Accepted but does nothing, for compatibility with BSD locate.

-0, --null

Use ASCII NUL as a separator, instead of newline.

-p, --print

Print search results when they normally would not, because of

the presence of --statistics (-S) or --count (-c).

-w, --wholename

Match against the whole name of the file as listed in the

database. This is the default.

-b, --basename

Results are considered to match if the pattern specified matches

the final component of the name of a file as listed in the

database. This final component is usually referred to as the

`base name'.

-r, --regex

The pattern specified on the command line is understood to be a

regular expression, as opposed to a glob pattern. The Regular

expressions work in the same was as in emacs and find, except

Page 259: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

258 Manuale DEFT 7

for the fact that "." will match a newline. Filenames whose

full paths match the specified regular expression are printed

(or, in the case of the -c option, counted). If you wish to

anchor your regular expression at the ends of the full path

name, then as is usual with regular expressions, you should use

the characters ^ and $ to signify this.

-s, --stdio

Accepted but does nothing, for compatibility with BSD locate.

-S, --statistics

Print various statistics about each locate database and then

exit without performing a search, unless non-option arguments

are given. For compatibility with BSD, -S is accepted as a syn-

onym for --statistics. However, the ouptut of locate -S is dif-

ferent for the GNU and BSD implementations of locate.

--help Print a summary of the options to locate and exit.

--version

Print the version number of locate and exit.

ENVIRONMENT

LOCATE_PATH

Colon-separated list of databases to search. If the value has a

leading or trailing colon, or has two colons in a row, you may

get results that vary between different versions of locate.

SEE ALSO

find(1), locatedb(5), updatedb(1), xargs(1), glob(3), Finding Files

(on-line in Info, or printed)

BUGS

The locate database correctly handles filenames containing newlines,

but only if the system's sort command has a working -z option. If you

suspect that locate may need to return filenames containing newlines,

consider using its --null option.

The best way to report a bug is to use the form at http://savan-

nah.gnu.org/bugs/?group=findutils. The reason for this is that you

Page 260: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

259 Manuale DEFT 7

will then be able to track progress in fixing the problem. Other com-

ments about locate(1) and about the findutils package in general can be

sent to the bug-findutils mailing list. To join the list, send email

to [email protected].

11.13 Find

NAME

find - search for files in a directory hierarchy

SYNOPSIS

find [-H] [-L] [-P] [path...] [expression]

DESCRIPTION

This manual page documents the GNU version of find. GNU find searches

the directory tree rooted at each given file name by evaluating the

given expression from left to right, according to the rules of prece-

dence (see section OPERATORS), until the outcome is known (the left

hand side is false for and operations, true for or), at which point

find moves on to the next file name.

If you are using find in an environment where security is important

(for example if you are using it to seach directories that are writable

by other users), you should read the "Security Considerations" chapter

of the findutils documentation, which is called Finding Files and comes

with findutils. That document also includes a lot more detail and

discussion than this manual page, so you may find it a more useful

source of information.

OPTIONS

The `-H', `-L' and `-P' options control the treatment of symbolic

links. Command-line arguments following these are taken to be names of

files or directories to be examined, up to the first argument that

begins with `-', `(', `)', `,', or `!'. That argument and any follow-

ing arguments are taken to be the expression describing what is to be

searched for. If no paths are given, the current directory is used.

If no expression is given, the expression `-print' is used (but you

should probably consider using `-print0' instead, anyway).

Page 261: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

260 Manuale DEFT 7

This manual page talks about `options' within the expression list.

These options control the behaviour of find but are specified immedi-

ately after the last path name. The three `real' options `-H', `-L'

and `-P' must appear before the first path name, if at all.

-P Never follow symbolic links. This is the default behaviour.

When find examines or prints information a file, and the file is

a symbolic link, the information used shall be taken from the

properties of the symbolic link itself.

-L Follow symbolic links. When find examines or prints information

about files, the information used shall be taken from the prop-

erties of the file to which the link points, not from the link

itself (unless it is a broken symbolic link or find is unable to

examine the file to which the link points). Use of this option

implies -noleaf. If you later use the -P option, -noleaf will

still be in effect. If -L is in effect and find discovers a

symbolic link to a subdirectory during its search, the subdirec-

tory pointed to by the symbolic link will be searched.

When the -L option is in effect, the -type predicate will always

match against the type of the file that a symbolic link points

to rather than the link itself (unless the symbolic link is bro-

ken). Using -L causes the -lname and -ilname predicates always

to return false.

-H Do not follow symbolic links, except while processing the com-

mand line arguments. When find examines or prints information

about files, the information used shall be taken from the prop-

erties of the symbolic link itself. The only exception to this

behaviour is when a file specified on the command line is a sym-

bolic link, and the link can be resolved. For that situation,

the information used is taken from whatever the link points to

(that is, the link is followed). The information about the link

itself is used as a fallback if the file pointed to by the sym-

bolic link cannot be examined. If -H is in effect and one of

the paths specified on the command line is a symbolic link to a

directory, the contents of that directory will be examined

Page 262: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

261 Manuale DEFT 7

(though of course -maxdepth 0 would prevent this).

If more than one of -H, -L and -P is specified, each overrides the oth-

ers; the last one appearing on the command line takes effect. Since it

is the default, the -P option should be considered to be in effect

unless either -H or -L is specified.

GNU find frequently stats files during the processing of the command

line itself, before any searching has begun. These options also affect

how those arguments are processed. Specifically, there are a number of

tests that compare files listed on the command line against a file we

are currently considering. In each case, the file specified on the

command line will have been examined and some of its properties will

have been saved. If the named file is in fact a symbolic link, and the

-P option is in effect (or if neither -H nor -L were specified), the

information used for the comparison will be taken from the properties

of the symbolic link. Otherwise, it will be taken from the properties

of the file the link points to. If find cannot follow the link (for

example because it has insufficient privileges or the link points to a

nonexistent file) the properties of the link itself will be used.

When the -H or -L options are in effect, any symbolic links listed as

the argument of -newer will be dereferenced, and the timestamp will be

taken from the file to which the symbolic link points. The same con-

sideration applies to -anewer and -cnewer.

The -follow option has a similar effect to -L, though it takes effect

at the point where it appears (that is, if -L is not used but -follow

is, any symbolic links appearing after -follow on the command line will

be dereferenced, and those before it will not).

EXPRESSIONS

The expression is made up of options (which affect overall operation

rather than the processing of a specific file, and always return true),

tests (which return a true or false value), and actions (which have

side effects and return a true or false value), all separated by opera-

tors. -and is assumed where the operator is omitted.

If the expression contains no actions other than -prune, -print is per-

formed on all files for which the expression is true.

Page 263: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

262 Manuale DEFT 7

OPTIONS

All options always return true. Except for -follow and -daystart, they

always take effect, rather than being processed only when their place

in the expression is reached. Therefore, for clarity, it is best to

place them at the beginning of the expression. A warning is issued if

you don't do this.

-daystart

Measure times (for -amin, -atime, -cmin, -ctime, -mmin, and

-mtime) from the beginning of today rather than from 24 hours

ago. This option only affects tests which appear later on the

command line.

-depth Process each directory's contents before the directory itself.

-d A synonym for -depth, for compatibility with FreeBSD, NetBSD,

MacOS X and OpenBSD.

-follow

Deprecated; use the -L option instead. Dereference symbolic

links. Implies -noleaf. The -follow option affects only those

tests which appear after it on the command line. Unless the -H

or -L option has been specified, the position of the -follow

option changes the behaviour of the -newer predicate; any files

listed as the argument of -newer will be dereferenced if they

are symbolic links. The same consideration applies to -anewer

and -cnewer. Similarly, the -type predicate will always match

against the type of the file that a symbolic link points to

rather than the link itself. Using -follow causes the -lname

and -ilname predicates always to return false.

-help, --help

Print a summary of the command-line usage of find and exit.

-ignore_readdir_race

Normally, find will emit an error message when it fails to stat

a file. If you give this option and a file is deleted between

the time find reads the name of the file from the directory and

the time it tries to stat the file, no error message will be

issued. This also applies to files or directories whose names

Page 264: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

263 Manuale DEFT 7

are given on the command line. This option takes effect at the

time the command line is read, which means that you cannot

search one part of the filesystem with this option on and part

of it with this option off (if you need to do that, you will

need to issue two find commands instead, one with the option and

one without it).

-maxdepth levels

Descend at most levels (a non-negative integer) levels of direc-

tories below the command line arguments. `-maxdepth 0' means

only apply the tests and actions to the command line arguments.

-mindepth levels

Do not apply any tests or actions at levels less than levels (a

non-negative integer). `-mindepth 1' means process all files

except the command line arguments.

-mount Don't descend directories on other filesystems. An alternate

name for -xdev, for compatibility with some other versions of

find.

-noignore_readdir_race

Turns off the effect of -ignore_readdir_race.

-noleaf

Do not optimize by assuming that directories contain 2 fewer

subdirectories than their hard link count. This option is

needed when searching filesystems that do not follow the Unix

directory-link convention, such as CD-ROM or MS-DOS filesystems

or AFS volume mount points. Each directory on a normal Unix

filesystem has at least 2 hard links: its name and its `.'

entry. Additionally, its subdirectories (if any) each have a

`..' entry linked to that directory. When find is examining a

directory, after it has statted 2 fewer subdirectories than the

directory's link count, it knows that the rest of the entries in

the directory are non-directories (`leaf' files in the directory

tree). If only the files' names need to be examined, there is

no need to stat them; this gives a significant increase in

search speed.

Page 265: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

264 Manuale DEFT 7

-regextype type

Changes the regular expression syntax understood by -regex and

-iregex tests which occur later on the command line. Currently-

implemented types are emacs (this is the default), posix-awk,

posix-basic, posix-egrep and posix-extended.

-version, --version

Print the find version number and exit.

-warn, -nowarn

Turn warning messages on or off. These warnings apply only to

the command line usage, not to any conditions that find might

encounter when it searches directories. The default behaviour

corresponds to -warn if standard input is a tty, and to -nowarn

otherwise.

-xdev Don't descend directories on other filesystems.

TESTS

Numeric arguments can be specified as

+n for greater than n,

-n for less than n,

n for exactly n.

-amin n

File was last accessed n minutes ago.

-anewer file

File was last accessed more recently than file was modified. If

file is a symbolic link and the -H option or the -L option is in

effect, the access time of the file it points to is always used.

-atime n

File was last accessed n*24 hours ago. When find figures out

how many 24-hour periods ago the file was last accessed, any

fractional part is ignored, so to match -atime +1, a file has to

have been accessed at least two days ago.

-cmin n

File's status was last changed n minutes ago.

-cnewer file

File's status was last changed more recently than file was modi-

Page 266: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

265 Manuale DEFT 7

fied. If file is a symbolic link and the -H option or the -L

option is in effect, the status-change time of the file it

points to is always used.

-ctime n

File's status was last changed n*24 hours ago. See the comments

for -atime to understand how rounding affects the interpretation

of file status change times.

-empty File is empty and is either a regular file or a directory.

-false Always false.

-fstype type

File is on a filesystem of type type. The valid filesystem

types vary among different versions of Unix; an incomplete list

of filesystem types that are accepted on some version of Unix or

another is: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. You can

use -printf with the %F directive to see the types of your

filesystems.

-gid n File's numeric group ID is n.

-group gname

File belongs to group gname (numeric group ID allowed).

-ilname pattern

Like -lname, but the match is case insensitive. If the -L

option or the -follow option is in effect, this test returns

false unless the symbolic link is broken.

-iname pattern

Like -name, but the match is case insensitive. For example, the

patterns `fo*' and `F??' match the file names `Foo', `FOO',

`foo', `fOo', etc. In these patterns, unlike filename expan-

sion by the shell, an initial '.' can be matched by '*'. That

is, find -name *bar will match the file `.foobar'. Please note

that you should quote patterns as a matter of course, otherwise

the shell will expand any wildcard characters in them.

-inum n

File has inode number n. It is normally easier to use the

-samefile test instead.

Page 267: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

266 Manuale DEFT 7

-ipath pattern

Behaves in the same way as -iwholename. This option is depre-

cated, so please do not use it.

-iregex pattern

Like -regex, but the match is case insensitive.

-iwholename pattern

Like -wholename, but the match is case insensitive.

-links n

File has n links.

-lname pattern

File is a symbolic link whose contents match shell pattern pat-

tern. The metacharacters do not treat `/' or `.' specially. If

the -L option or the -follow option is in effect, this test

returns false unless the symbolic link is broken.

-mmin n

File's data was last modified n minutes ago.

-mtime n

File's data was last modified n*24 hours ago. See the comments

for -atime to understand how rounding affects the interpretation

of file modification times.

-name pattern

Base of file name (the path with the leading directories

removed) matches shell pattern pattern. The metacharacters

(`*', `?', and `[]') match a `.' at the start of the base name

(this is a change in findutils-4.2.2; see section STANDARDS CON-

FORMANCE below). To ignore a directory and the files under it,

use -prune; see an example in the description of -wholename.

Braces are not recognised as being special, despite the fact

that some shells including Bash imbue braces with a special

meaning in shell patterns. The filename matching is performed

with the use of the fnmatch(3) library function. Don't forget

to enclose the pattern in quotes in order to protect it from

expansion by the shell.

-newer file

Page 268: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

267 Manuale DEFT 7

File was modified more recently than file. If file is a sym-

bolic link and the -H option or the -L option is in effect, the

modification time of the file it points to is always used.

-nouser

No user corresponds to file's numeric user ID.

-nogroup

No group corresponds to file's numeric group ID.

-path pattern

See -wholename. The predicate -path is also supported by HP-UX

find.

-perm mode

File's permission bits are exactly mode (octal or symbolic).

Since an exact match is required, if you want to use this form

for symbolic modes, you may have to specify a rather complex

mode string. For example '-perm g=w' will only match files

which have mode 0020 (that is, ones for which group write per-

mission is the only permission set). It is more likely that you

will want to use the '/' or '-' forms, for example '-perm -g=w',

which matches any file with group write permission. See the

EXAMPLES section for some illustrative examples.

-perm -mode

All of the permission bits mode are set for the file. Symbolic

modes are accepted in this form, and this is usually the way in

which would want to use them. You must specify 'u', 'g' or 'o'

if you use a symbolic mode. See the EXAMPLES section for some

illustrative examples.

-perm /mode

Any of the permission bits mode are set for the file. Symbolic

modes are accepted in this form. You must specify 'u', 'g' or

'o' if you use a symbolic mode. See the EXAMPLES section for

some illustrative examples. If no permission bits in mode are

set, this test currently matches no files. However, it will

soon be changed to match any file (the idea is to be more con-

sistent with the behaviour of perm -000).

Page 269: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

268 Manuale DEFT 7

-perm +mode

Deprecated, old way of searching for files with any of the per-

mission bits in mode set. You should use -perm /mode instead.

Trying to use the '+' syntax with symbolic modes will yield sur-

prising results. For example, '+u+x' is a valid symbolic mode

(equivalent to +u,+x, i.e. 0111) and will therefore not be eval-

uated as -perm +mode but instead as the exact mode specifier

-perm mode and so it matches files with exact permissions 0111

instead of files with any execute bit set. If you found this

paragraph confusing, you're not alone - just use -perm /mode.

This form of the -perm test is deprecated because the POSIX

specification requires the interpretation of a leading '+' as

being part of a symbolic mode, and so we switched to using '/'

instead.

-regex pattern

File name matches regular expression pattern. This is a match

on the whole path, not a search. For example, to match a file

named `./fubar3', you can use the regular expression `.*bar.' or

`.*b.*3', but not `f.*r3'. The regular expressions understood

by find are by default Emacs Regular Expressions, but this can

be changed with the -regextype option.

-samefile name

File refers to the same inode as name. When -L is in effect,

this can include symbolic links.

-size n[cwbkMG]

File uses n units of space. The following suffixes can be used:

`b' for 512-byte blocks (this is the default if no suffix is

used)

`c' for bytes

`w' for two-byte words

`k' for Kilobytes (units of 1024 bytes)

`M' for Megabytes (units of 1048576 bytes)

`G' for Gigabytes (units of 1073741824 bytes)

Page 270: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

269 Manuale DEFT 7

The size does not count indirect blocks, but it does count

blocks in sparse files that are not actually allocated. Bear in

mind that the `%k' and `%b' format specifiers of -printf handle

sparse files differently. The `b' suffix always denotes

512-byte blocks and never 1 Kilobyte blocks, which is different

to the behaviour of -ls.

-true Always true.

-type c

File is of type c:

b block (buffered) special

c character (unbuffered) special

d directory

p named pipe (FIFO)

f regular file

l symbolic link; this is never true if the -L option or the

-follow option is in effect, unless the symbolic link is

broken. If you want to search for symbolic links when -L

is in effect, use -xtype.

s socket

D door (Solaris)

-uid n File's numeric user ID is n.

-used n

File was last accessed n days after its status was last changed.

-user uname

File is owned by user uname (numeric user ID allowed).

-wholename pattern

File name matches shell pattern pattern. The metacharacters do

not treat `/' or `.' specially; so, for example,

find . -wholename './sr*sc'

will print an entry for a directory called './src/misc' (if one

exists). To ignore a whole directory tree, use -prune rather

than checking every file in the tree. For example, to skip the

directory `src/emacs' and all files and directories under it,

and print the names of the other files found, do something like

Page 271: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

270 Manuale DEFT 7

this:

find . -wholename './src/emacs' -prune -o -print

-xtype c

The same as -type unless the file is a symbolic link. For sym-

bolic links: if the -H or -P option was specified, true if the

file is a link to a file of type c; if the -L option has been

given, true if c is `l'. In other words, for symbolic links,

-xtype checks the type of the file that -type does not check.

ACTIONS

-delete

Delete files; true if removal succeeded. If the removal failed,

an error message is issued. Use of this action automatically

turns on the '-depth' option.

-exec command ;

Execute command; true if 0 status is returned. All following

arguments to find are taken to be arguments to the command until

an argument consisting of `;' is encountered. The string `{}'

is replaced by the current file name being processed everywhere

it occurs in the arguments to the command, not just in arguments

where it is alone, as in some versions of find. Both of these

constructions might need to be escaped (with a `\') or quoted to

protect them from expansion by the shell. See the EXAMPLES sec-

tion for examples of the use of the `-exec' option. The speci-

fied command is run once for each matched file. The command is

executed in the starting directory. There are unavoidable

security problems surrounding use of the -exec option; you

should use the -execdir option instead.

-exec command {} +

This variant of the -exec option runs the specified command on

the selected files, but the command line is built by appending

each selected file name at the end; the total number of invoca-

tions of the command will be much less than the number of

matched files. The command line is built in much the same way

Page 272: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

271 Manuale DEFT 7

that xargs builds its command lines. Only one instance of '{}'

is allowed within the command. The command is executed in the

starting directory.

-execdir command ;

-execdir command {} +

Like -exec, but the specified command is run from the subdirec-

tory containing the matched file, which is not normally the

directory in which you started find. This a much more secure

method for invoking commands, as it avoids race conditions dur-

ing resolution of the paths to the matched files. As with the

-exec option, the '+' form of -execdir will build a command line

to process more than one matched file, but any given invocation

of command will only list files that exist in the same subdirec-

tory. If you use this option, you must ensure that your $PATH

environment variable does not reference the current directory;

otherwise, an attacker can run any commands they like by leaving

an appropriately-named file in a directory in which you will run

-execdir.

-fls file

True; like -ls but write to file like -fprint. The output file

is always created, even if the predicate is never matched. See

the UNUSUAL FILENAMES section for information about how unusual

characters in filenames are handled.

-fprint file

True; print the full file name into file file. If file does not

exist when find is run, it is created; if it does exist, it is

truncated. The file names ``/dev/stdout'' and ``/dev/stderr''

are handled specially; they refer to the standard output and

standard error output, respectively. The output file is always

created, even if the predicate is never matched. See the

UNUSUAL FILENAMES section for information about how unusual

characters in filenames are handled.

-fprint0 file

True; like -print0 but write to file like -fprint. The output

Page 273: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

272 Manuale DEFT 7

file is always created, even if the predicate is never matched.

See the UNUSUAL FILENAMES section for information about how

unusual characters in filenames are handled.

-fprintf file format

True; like -printf but write to file like -fprint. The output

file is always created, even if the predicate is never matched.

See the UNUSUAL FILENAMES section for information about how

unusual characters in filenames are handled.

-ok command ;

Like -exec but ask the user first (on the standard input); if

the response does not start with `y' or `Y', do not run the com-

mand, and return false. If the command is run, its standard

input is redirected from /dev/null.

-print True; print the full file name on the standard output, followed

by a newline. If you are piping the output of find into

another program and there is the faintest possibility that the

files which you are searching for might contain a newline, then

you should seriously consider using the `-print0' option instead

of `-print'. See the UNUSUAL FILENAMES section for information

about how unusual characters in filenames are handled.

-okdir command ;

Like -execdir but ask the user first (on the standard input); if

the response does not start with `y' or `Y', do not run the com-

mand, and return false. If the command is run, its standard

input is redirected from /dev/null.

-print0

True; print the full file name on the standard output, followed

by a null character (instead of the newline character that

`-print' uses). This allows file names that contain newlines or

other types of white space to be correctly interpreted by pro-

grams that process the find output. This option corresponds to

the `-0' option of xargs.

-printf format

True; print format on the standard output, interpreting `\'

Page 274: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

273 Manuale DEFT 7

escapes and `%' directives. Field widths and precisions can be

specified as with the `printf' C function. Please note that

many of the fields are printed as %s rather than %d, and this

may mean that flags don't work as you might expect. This also

means that the `-' flag does work (it forces fields to be left-

aligned). Unlike -print, -printf does not add a newline at the

end of the string. The escapes and directives are:

\a Alarm bell.

\b Backspace.

\c Stop printing from this format immediately and flush the

output.

\f Form feed.

\n Newline.

\r Carriage return.

\t Horizontal tab.

\v Vertical tab.

\ ASCII NUL.

\\ A literal backslash (`\').

\NNN The character whose ASCII code is NNN (octal).

A `\' character followed by any other character is treated as an

ordinary character, so they both are printed.

%% A literal percent sign.

%a File's last access time in the format returned by the C

`ctime' function.

%Ak File's last access time in the format specified by k,

which is either `@' or a directive for the C `strftime'

function. The possible values for k are listed below;

some of them might not be available on all systems, due

to differences in `strftime' between systems.

@ seconds since Jan. 1, 1970, 00:00 GMT.

Time fields:

H hour (00..23)

I hour (01..12)

k hour ( 0..23)

Page 275: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

274 Manuale DEFT 7

l hour ( 1..12)

M minute (00..59)

p locale's AM or PM

r time, 12-hour (hh:mm:ss [AP]M)

S second (00..61)

T time, 24-hour (hh:mm:ss)

+ Date and time, separated by '+', for example

`2004-04-28+22:22:05'. The time is given in the

current timezone (which may be affected by set-

ting the TZ environment variable). This is a GNU

extension.

X locale's time representation (H:M:S)

Z time zone (e.g., EDT), or nothing if no time zone

is determinable

Date fields:

a locale's abbreviated weekday name (Sun..Sat)

A locale's full weekday name, variable length (Sun-

day..Saturday)

b locale's abbreviated month name (Jan..Dec)

B locale's full month name, variable length (Jan-

uary..December)

c locale's date and time (Sat Nov 04 12:02:33 EST 1989)

d day of month (01..31)

D date (mm/dd/yy)

h same as b

j day of year (001..366)

m month (01..12)

U week number of year with Sunday as first day of

week (00..53)

w day of week (0..6)

W week number of year with Monday as first day of

week (00..53)

x locale's date representation (mm/dd/yy)

y last two digits of year (00..99)

Page 276: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

275 Manuale DEFT 7

Y year (1970...)

%b The amount of disk space used for this file in 512-byte

blocks. Since disk space is allocated in multiples of the

filesystem block size this is usually greater than

%s/1024, but it can also be smaller if the file is a

sparse file.

%c File's last status change time in the format returned by

the C `ctime' function.

%Ck File's last status change time in the format specified by

k, which is the same as for %A.

%d File's depth in the directory tree; 0 means the file is a

command line argument.

%D The device number on which the file exists (the st_dev

field of struct stat), in decimal.

%f File's name with any leading directories removed (only

the last element).

%F Type of the filesystem the file is on; this value can be

used for -fstype.

%g File's group name, or numeric group ID if the group has

no name.

%G File's numeric group ID.

%h Leading directories of file's name (all but the last ele-

ment). If the file name contains no slashes (since it is

in the current directory) the %h specifier expands to

".".

%H Command line argument under which file was found.

%i File's inode number (in decimal).

%k The amount of disk space used for this file in 1K blocks.

Since disk space is allocated in multiples of the

filesystem block size this is usually greater than

%s/1024, but it can also be smaller if the file is a

sparse file.

%l Object of symbolic link (empty string if file is not a

symbolic link).

Page 277: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

276 Manuale DEFT 7

%m File's permission bits (in octal). This option uses the

'traditional' numbers which most Unix implementations

use, but if your particular implementation uses an

unusual ordering of octal permissions bits, you will see

a difference between the actual value of the file's mode

and the output of %m. Normally you will want to have a

leading zero on this number, and to do this, you should

use the # flag (as in, for example, '%#m').

%M File's permissions (in symbolic form, as for ls). This

directive is supported in findutils 4.2.5 and later.

%n Number of hard links to file.

%p File's name.

%P File's name with the name of the command line argument

under which it was found removed.

%s File's size in bytes.

%t File's last modification time in the format returned by

the C `ctime' function.

%Tk File's last modification time in the format specified by

k, which is the same as for %A.

%u File's user name, or numeric user ID if the user has no

name.

%U File's numeric user ID.

%y File's type (like in ls -l), U=unknown type (shouldn't

happen)

%Y File's type (like %y), plus follow symlinks: L=loop,

N=nonexistent

A `%' character followed by any other character is discarded

(but the other character is printed).

The %m and %d directives support the # , 0 and + flags, but the

other directives do not, even if they print numbers. Numeric

directives that do not support these flags include G, U, b, D, k

and n. The `-' format flag is supported and changes the align-

ment of a field from right-justified (which is the default) to

left-justified.

Page 278: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

277 Manuale DEFT 7

See the UNUSUAL FILENAMES section for information about how

unusual characters in filenames are handled.

-prune If -depth is not given, true; if the file is a directory, do not

descend into it.

If -depth is given, false; no effect.

-quit Exit immediately. No child processes will be left running, but

no more paths specified on the command line will be processed.

For example, find /tmp/foo /tmp/bar -print -quit will print only

/tmp/foo. Any command lines which have been built up with

-execdir ... {} + will be invoked before find exits. The exit

status may or may not be zero, depending on whether an error has

already occurred.

-ls True; list current file in `ls -dils' format on standard output.

The block counts are of 1K blocks, unless the environment vari-

able POSIXLY_CORRECT is set, in which case 512-byte blocks are

used. See the UNUSUAL FILENAMES section for information about

how unusual characters in filenames are handled.

UNUSUAL FILENAMES

Many of the actions of find result in the printing of data which is

under the control of other users. This includes file names, sizes,

modification times and so forth. File names are a potential problem

since they can contain any character except '\0' and '/'. Unusual

characters in file names can do unexpected and often undesirable things

to your terminal (for example, changing the settings of your function

keys on some terminals). Unusual characters are handled differently by

various actions, as described below.

-print0, -fprint0

Always print the exact filename, unchanged, even if the output

is going to a terminal.

-ls, -fls

Unusual characters are always escaped. White space, backslash,

and double quote characters are printed using C-style escaping

(for example '\f', '\"'). Other unusual characters are printed

using an octal escape. Other printable characters (for -ls and

Page 279: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

278 Manuale DEFT 7

-fls these are the characters between octal 041 and 0176) are

printed as-is.

-printf, -fprintf

If the output is not going to a terminal, it is printed as-is.

Otherwise, the result depends on which directive is in use. The

directives %D, %F, %g, %G, %H, %Y, and %y expand to values which

are not under control of files' owners, and so are printed as-

is. The directives %a, %b, %c, %d, %i, %k, %m, %M, %n, %s, %t,

%u and %U have values which are under the control of files' own-

ers but which cannot be used to send arbitrary data to the ter-

minal, and so these are printed as-is. The directives %f, %h,

%l, %p and %P are quoted. This quoting is performed in the same

way as for GNU ls. This is not the same quoting mechanism as

the one used for -ls and -fls. If you are able to decide what

format to use for the output of find then it is normally better

to use '\0' as a terminator than to use newline, as file names

can contain white space and newline characters.

-print, -fprint

Quoting is handled in the same way as for -printf and -fprintf.

If you are using find in a script or in a situation where the

matched files might have arbitrary names, you should consider

using -print0 instead of -print.

The -ok and -okdir actions print the current filename as-is. This may

change in a future release.

OPERATORS

Listed in order of decreasing precedence:

( expr )

Force precedence.

! expr True if expr is false.

-not expr

Same as ! expr, but not POSIX compliant.

expr1 expr2

Two expressions in a row are taken to be joined with an implied

"and"; expr2 is not evaluated if expr1 is false.

Page 280: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

279 Manuale DEFT 7

expr1 -a expr2

Same as expr1 expr2.

expr1 -and expr2

Same as expr1 expr2, but not POSIX compliant.

expr1 -o expr2

Or; expr2 is not evaluated if expr1 is true.

expr1 -or expr2

Same as expr1 -o expr2, but not POSIX compliant.

expr1 , expr2

List; both expr1 and expr2 are always evaluated. The value of

expr1 is discarded; the value of the list is the value of

expr2. The comma operator can be useful forsearching for

several different types of thing, but traversing the filesystem

hierarchy only once. The -fprintf action can be used to list

the various matched items into several different output files.

STANDARDS CONFORMANCE

The following options are specified in the POSIX standard (IEEE Std

1003.1, 2003 Edition):

-H This option is supported.

-L This option is supported.

-name This option is supported, but POSIX conformance depends on the

POSIX conformance of the system's fnmatch(3) library function.

As of findutils-4.2.2, shell metacharacters ('*'. '?' or '[]'

for example) will match a leading '.', because IEEE PASC inter-

pretation 126 requires this. This is a change from previous

versions of findutils.

-type Supported. POSIX specifies `b', `c', `d', `l', `p', `f' and

`s'. GNU find also supports `D', representing a Door, where the

OS provides these.

-ok Supported. Interpretation of the response is not locale-depen-

dent (see ENVIRONMENT VARIABLES).

-newer Supported. If the file specified is a symbolic link, it is

Page 281: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

280 Manuale DEFT 7

always dereferenced. This is a change from previous behaviour,

which used to take the relevant time from the symbolic link; see

the HISTORY section below.

Other predicates

The predicates `-atime', `-ctime', `-depth', `-group', `-links',

`-mtime', `-nogroup', `-nouser', `-perm', `-print', `-prune',

`-size', `-user' and `-xdev', are all supported.

The POSIX standard specifies parentheses `(', `)', negation `!' and the

`and' and `or' operators (`-a', `-o').

All other options, predicates, expressions and so forth are extensions

beyond the POSIX standard. Many of these extensions are not unique to

GNU find, however.

The POSIX standard requires that

The find utility shall detect infinite loops; that is, entering

a previously visited directory that is an ancestor of the last

file encountered. When it detects an infinite loop, find shall

write a diagnostic message to standard error and shall either

recover its position in the hierarchy or terminate.

The link count of directories which contain entries which are hard

links to an ancestor will often be lower than they otherwise should be.

This can mean that GNU find will sometimes optimise away the visiting

of a subdirectory which is actually a link to an ancestor. Since find

does not actually enter such a subdirectory, it is allowed to avoid

emitting a diagnostic message. Although this behaviour may be somewhat

confusing, it is unlikely that anybody actually depends on this

behaviour. If the leaf optimisation has been turned off with -noleaf,

the directory entry will always be examined and the diagnostic message

will be issued where it is appropriate. Symbolic links cannot be used

to create filesystem cycles as such, but if the -L option or the -fol-

low option is in use, a diagnostic message is issued when find encoun-

ters a loop of symbolic links. As with loops containing hard links,

the leaf optimisation will often mean that find knows that it doesn't

need to call stat() or chdir() on the symbolic link, so this diagnostic

is frequently not necessary.

Page 282: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

281 Manuale DEFT 7

The -d option is supported for compatibility with various BSD systems,

but you should use the POSIX-compliant option -depth instead.

The POSIXLY_CORRECT environment variable does not affect the behaviour

of the -regex or -iregex tests because those tests aren't specified in

the POSIX standard.

ENVIRONMENT VARIABLES

LANG Provides a default value for the internationalization variables

that are unset or null.

LC_ALL If set to a non-empty string value, override the values of all

the other internationalization variables.

LC_COLLATE

The POSIX standard specifies that this variable affects the pat-

tern matching to be used for the `-name' option. GNU find uses

the fnmatch(3) library function, and so support for `LC_COLLATE'

depends on the system library.

POSIX also specifies that the `LC_COLLATE' environment variable

affects the interpretation of the user's response to the query

issued by `-ok', but this is not the case for GNU find.

LC_CTYPE

This variable affects the treatment of character classes used

with the `-name' test, if the system's fnmatch(3) library func-

tion supports this. It has no effect on the behaviour of the

`-ok' expression.

LC_MESSAGES

Determines the locale to be used for internationalised messages.

NLSPATH

Determines the location of the internationalisation message cat-

alogues.

PATH Affects the directories which are searched to find the executa-

bles invoked by `-exec', `-execdir', `-ok' and `-okdir'.

POSIXLY_CORRECT

Determines the block size used by `-ls' and `-fls'. If

`POSIXLY_CORRECT' is set, blocks are units of 512 bytes. Other-

wise they are units of 1024 bytes.

Page 283: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

282 Manuale DEFT 7

TZ Affects the time zone used for some of the time-related format

directives of -printf and -fprintf.

EXAMPLES

find /tmp -name core -type f -print | xargs /bin/rm -f

Find files named core in or below the directory /tmp and delete them.

Note that this will work incorrectly if there are any filenames con-

taining newlines, single or double quotes, or spaces.

find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f

Find files named core in or below the directory /tmp and delete them,

processing filenames in such a way that file or directory names con-

taining single or double quotes, spaces or newlines are correctly han-

dled. The -name test comes before the -type test in order to avoid

having to call stat(2) on every file.

find . -type f -exec file '{}' \;

Runs `file' on every file in or below the current directory. Notice

that the braces are enclosed in single quote marks to protect them from

interpretation as shell script punctuation. The semicolon is simi-

larly protected by the use of a backslash, though ';' could have been

used in that case also.

find / \( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \

\( -size +100M -fprintf /root/big.txt '%-10s %p\n' \)

Traverse the filesystem just once, listing setuid files and directories

into /root/suid.txt and large files into /root/big.txt.

find $HOME -mtime 0

Search for files in your home directory which have been modified in the

last twenty-four hours. This command works this way because the time

since each file was last modified is divided by 24 hours and any

remainder is discarded. That means that to match -mtime 0, a file will

have to have a modification in the past which is less than 24 hours

ago.

find . -perm 664

Search for files which have read and write permission for their owner,

and group, but which other users can read but not write to. Files

Page 284: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

283 Manuale DEFT 7

which meet these criteria but have other permissions bits set (for

example if someone can execute the file) will not be matched.

find . -perm -664

Search for files which have read and write permission for their owner

and group, and which other users can read, without regard to the pres-

ence of any extra permission bits (for example the executable bit).

This will match a file which has mode 0777, for example.

find . -perm /222

Search for files which are writable by somebody (their owner, or their

group, or anybody else).

find . -perm /220

find . -perm /u+w,g+w

find . -perm /u=w,g=w

All three of these commands do the same thing, but the first one uses

the octal representation of the file mode, and the other two use the

symbolic form. These commands all search for files which are writable

by either their owner or their group. The files don't have to be

writable by both the owner and group to be matched; either will do.

find . -perm -220

find . -perm -g+w,u+w

Both these commands do the same thing; search for files which are

writable by both their owner and their group.

find . -perm -444 -perm /222 ! -perm /111

find . -perm -a+r -perm /a+w ! -perm /a+x

These two commands both search for files that are readable for every-

body (-perm -444 or -perm -a+r), have at least on write bit set (-perm

/222 or -perm /a+w) but are not executable for anybody (! -perm /111

and ! -perm /a+x respectively)

EXIT STATUS

find exits with status 0 if all files are processed successfully,

greater than 0 if errors occur. This is deliberately a very broad

description, but if the return value is non-zero, you should not rely

on the correctness of the results of find.

SEE ALSO

Page 285: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

284 Manuale DEFT 7

locate(1), locatedb(5), updatedb(1), xargs(1), chmod(1), fnmatch(3),

regex(7), stat(2), lstat(2), ls(1), printf(3), strftime(3), ctime(3),

Finding Files (on-line in Info, or printed).

HISTORY

As of findutils-4.2.2, shell metacharacters ('*'. '?' or '[]' for exam-

ple) used in filename patterns will match a leading '.', because IEEE

POSIX interpretation 126 requires this.

NON-BUGS

$ find . -name *.c -print

find: paths must precede expression

Usage: find [-H] [-L] [-P] [path...] [expression]

This happens because *.c has been expanded by the shell resulting in

find actually receiving a command line like this:

find . -name bigram.c code.c frcode.c locate.c -print

That command is of course not going to work. Instead of doing things

this way, you should enclose the pattern in quotes:

$ find . -name '*.c' -print

BUGS

The test -perm /000 currently matches no files, but for greater consis-

tency with -perm -000, this will be changed to match all files; this

change will probably be made in early 2006. Meanwhile, a warning mes-

sage is given if you do this.

There are security problems inherent in the behaviour that the POSIX

standard specifies for find, which therefore cannot be fixed. For

example, the -exec action is inherently insecure, and -execdir should

be used instead. Please see Finding Files for more information.

The best way to report a bug is to use the form at http://savan-

nah.gnu.org/bugs/?group=findutils. The reason for this is that you

will then be able to track progress in fixing the problem. Other com-

ments about find(1) and about the findutils package in general can be

sent to the bug-findutils mailing list. To join the list, send email

to [email protected].

Page 286: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

285 Manuale DEFT 7

11.14 Foremost

NAME

foremost - Recover files using their headers, footers, and data

structures

SYNOPSIS

foremost [-h] [-V] [-d] [-vqwQT] [-b <blocksize>] [-o <dir>] [-t

<type>] [-s <num>] [-i <file>]

BUILTIN FORMATS

Recover files from a disk image based on file types specified by the

user using the -t switch.

jpg Support for the JFIF and Exif formats including implementations

used in modern digital cameras.

gif

png

bmp Support for windows bmp format.

avi

exe Support for Windows PE binaries, will extract DLL and EXE files

along with their compile times.

mpg Support for most MPEG files (must begin with 0x000001BA)

wav

riff This will extract AVI and RIFF since they use the same file

format (RIFF). note faster than running each separately.

wmv Note may also extract -wma files as they have similar format.

mov

pdf

ole This will grab any file using the OLE file structure. This

includes PowerPoint, Word, Excel, Access, and StarWriter

doc Note it is more efficient to run OLE as you get more bang for

your buck. If you wish to ignore all other ole files then use

this.

zip Note is will extract .jar files as well because they use a

similar format. Open Office docs are just zip’d XML files so

they are extracted as well. These include SXW, SXC, SXI, and

Page 287: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

286 Manuale DEFT 7

SX? for undetermined OpenOffice files. Office 2007 files are

also XML based (PPTX,DOCX,XLSX)

rar

htm

cpp C source code detection, note this is primitive and may generate

documents other than C code.

all Run all pre-defined extraction methods. [Default if no -t is

specified]

DESCRIPTION

Recover files from a disk image based on headers and footers specified

by the user.

-h Show a help screen and exit.

-V Show copyright information and exit.

-d Turn on indirect block detection, this works well for Unix file

systems.

-T Time stamp the output directory so you don’t have to delete the

output dir when running multiple times.

-v Enables verbose mode. This causes more information regarding the

current state of the program to be displayed on the screen, and

is highly recommended.

-q Enables quick mode. In quick mode, only the start of each sector

is searched for matching headers. That is, the header is

searched only up to the length of the longest header. The rest

of the sector, usually about 500 bytes, is ignored. This mode

makes foremost run considerably faster, but it may cause you to

miss files that are embedded in other files. For example, using

quick mode you will not be able to find JPEG images embedded in

Microsoft Word documents.

Quick mode should not be used when examining NTFS file systems.

Because NTFS will store small files inside the Master File

Table, these files will be missed during quick mode.

-Q Enables Quiet mode. Most error messages will be suppressed.

-w Enables write audit only mode. No files will be extracted.

-a Enables write all headers, perform no error detection in terms

Page 288: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

287 Manuale DEFT 7

of corrupted files.

-b number

Allows you to specify the block size used in foremost. This is

relevant for file naming and quick searches. The default is

512. ie. foremost -b 1024 image.dd

-k number

Allows you to specify the chunk size used in foremost. This can

improve speed if you have enough RAM to fit the image in. It

reduces the checking that occurs between chunks of the buffer.

For example if you had > 500MB of RAM. ie. foremost -k

500 image.dd

-i file

The file is used as the input file. If no input file is

specified or the input file cannot be read then stdin is used.

-o directory

Recovered files are written to the directory directory.

-c file

Sets the configuration file to use. If none is specified, the

file "foremost.conf" from the current directory is used, if that

doesn’t exist then "/etc/foremost.conf" is used. The format for

the configuration file is described in the default configuration

file included with this program. See the CONFIGURATION FILE

section below for more information.

-s number

Skips number blocks in the input file before beginning the

search for headers. ie. foremost -s 512 -t jpeg -i

/dev/hda1

CONFIGURATION FILE

The configuration file is used to control what types of files

foremost searches for. A sample configuration file,

foremost.conf, is included with this distribution. For each file

type, the configuration file describes the file’s extension,

whether the header and footer are case sensitive, the maximum

file size, and the header and footer for the file. The footer

Page 289: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

288 Manuale DEFT 7

field is optional, but header, size, case sensitivity, and

extension are not!

Any line that begins with a pound sign is considered a comment

and ignored. Thus, to skip a file type just put a pound sign at

the beginning of that line

Headers and footers are decoded before use. To specify a value

in hexadecimal use \x[0-f][0-f], and for octal use

\[1-9][1-9][1-9]. Spaces can be represented by \s. Example:

"\x4F\123\I\sCCI" decodes to "OSI CCI".

To match any single character (aka a wildcard) use a ?. If you

need to search for the ? character, you will need to change the

wildcard line *and* every occurrence of the old wildcard

character in the configuration file. Do not forget those hex and

octal values! ? is equal to \x3f and \063.

There is a sample set of headers in the README file.

EXAMPLES

Search for jpeg format skipping the first 100 blocks

foremost -s 100 -t jpg -i image.dd

Only generate an audit file, and print to the screen (verbose mode)

foremost -av image.dd

Search all defined types

foremost -t all -i image.dd

Search for gif and pdf’s

foremost -t gif,pdf -i image.dd

Search for office documents and jpeg files in a Unix file system in

verbose mode.

foremost -vd -t ole,jpeg -i image.dd

Run the default case

foremost image.dd

AUTHORS

Original Code written by Special Agent Kris Kendall and Special Agent

Jesse Kornblum of the United States Air Force Office of Special

Investigations.

Modification by Nick Mikus a Research Associate at the Naval

Page 290: Paolo Dal Checco, Alessandro Rossetti, Stefano Fratepietro - Manuale DEFT 7

289 Manuale DEFT 7

Postgraduate School Center for Information Systems Security Studies and

Research. The modification of Foremost was part of a masters thesis at

NPS.

BUGS

When compiling foremost on systems with versions of glibc 2.1.x or

older, you will get some (harmless) compiler warnings regarding the

implicit declaration of fseeko and ftello. You can safely ignore these

warnings.

REPORTING BUGS

Because Foremost could be used to obtain evidence for criminal

prosecutions, we take all bug reports very seriously. Any bug that

jeopardizes the forensic integrity of this program could have serious

consequenses. When submitting a bug report, please include a

description of the problem, how you found it, and your contact

information.

Send bug reports to:

namikus AT users d0t sf d0t net

COPYRIGHT

This program is a work of the US Government. In accordance with 17 USC

105, copyright protection is not available for any work of the US

Government.

This is free software; see the source for copying conditions. There is

NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR

PURPOSE.

SEE ALSO

There is more information in the README file.

Foremost was originally designed to imitate the\\ functionality of

CarvThis, a DOS program written by the Defense Computer Forensics Lab

in in 1999.

v1.5 - May 2009 FOREMOST(8)