C03-disque-install_debian - TP LINUX - MTN

Guillaume ASTIER

26/02/16

Ajout d’un disque

Ajout d’un disque sur virtual box

Depuis l’outils de configuration, ajoutez un disque dur de 10Go avec une taille fixe et ajoutez le à l’instance virtualisée.

Ajout et partition de disque

Le but de ce chapitre est d’ajouter et de partitionner un disque de façon à obtenir la structure suivante :

Parition

Partitionner le disque avec la commande:

“‘fdisk’”.

Par exemple,pour créer la première partition dédiée à:

“‘/data/eleves’”:

fdisk

# fdisk /dev/<disque>
Command (m for help): n  // nouvelle partition
Command action
    e   extended
    p   primary partition (1-4)
p
Partition number (1-4):  1
First cylinder (1-522, default 1): [entrer] 
Last cylinder, +cylinders or +size{K,M,G} (1-522, default 522): +250M
Command (m for help): p  // affiche la table des partitions
[...]
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            1          33      265041   83  Linux
[...]
Command (m for help): w  // enregistrer les modifications !

Formatage

Formater les partitions en ext4 avec la commande :

“‘mkfs.ext4’”.

Point de montage

Créer les points de montage “‘/data/eleves’”, “‘/data/profs’”, “‘/data/intervenants’” et “‘/backups’”.

Monter le disque

Monter manuellement les cinqs systèmes de fichiers avec la commande :

“‘mount’”.

Affichage

Il existe plusieurs façon d’afficher les systèmes de fichiers montés. Par exemple, exécuter et comparer :

# df -h
# mount  (sans option)
# cat /etc/mtab

Gestion démarrage

Grâce au fichier “‘/etc/mtab’”, mettre à jour le fichier “‘/etc/fstab’” pour que les montages soient effectués automatiquement au boot de la machine.

Vous pouvez redémarrer la machine virtuelle pour vérifier.

Nouveau montage

Créer du contenu dans “‘/data/eleves’” (se servir, par exemple, des commandes : ‘mkdir’, ‘touch’ et ‘vim’).

BACKUP

DD

La commande “‘dd’” permet de copier tout ou une partie d’un disque par blocs d’octets. La syntaxe est la suivante (regarder l’aide pour plus de détails) :

# dd if=<fichier_src> of=<fichier_dest> bs=<taille_des_blocs>

/!\ Note : Lorsque dd est utilisé sur un système de fichier, ce dernier doit être démonté (commande “umount”) !

Sauvegarde

Avec ‘dd’, effectuer une sauvegarde physique de la partition “‘/data/eleves’” dans “‘/backups/’”. A l’issue de la sauvegarde, remonter la partition.

Compression

Avec la commande “‘du -sh ’”, regarder la taille du fichier de sauvegarde.

Vous pouvez compresser ce fichier avec des utilitaires tels que “‘gzip’”, “‘bzip2’” ou “‘xz’”.

Restauration

Opérations préalable

Supprimer l’intégralité des fichiers contenus dans la partition “/data/eleves”, et restaurer cette dernière en une seule commande.

C’est à dire que cette commande décompressera et copiera les données à la volée (en utilisant un/des pipes ‘|’ dans votre commande).

Vérifier que les fichiers créés au sont à nouveau disponibles.

LVM

Logical Volume Management (LVM)

Pré-requis : Ajouter un deuxième disque dur de 4Go. Ce disque sera utilisé dans ce chapitre.

Le but de ce chapitre est d’obtenir la structure suivante pour les répertoires personnels. Chaque classe (M1, M2, etc.) aura un volume logique qui lui sera dédié.

/home/M1
/home/M2
/home/MTN

fdisk

Avec la commande “‘fdisk’” sur le nouveau disque “‘/dev/sdc’”, créer une partition unique correspondant à la taille totale du disque. Modifier son type en “Linux LVM”.

pvcreate

Avec la commande “‘pvcreate’”, initialiser cette partition pour l’utiliser dans un groupe de volume LVM.

vgcreate

Avec la commande “‘vgcreate’”, insérer ce volume physique dans un nouveau groupe de volumes nommé “‘vg00’”. Vous pouvez vérifier la taille du nouveau groupe de volumes avec la commande “‘vgdisplay’”.

lvcreate

Avec la commande “‘lvcreate’”, découper dans ce groupe de volumes, trois volumes logiques de 1G. Vérifier le résultat avec la commande “‘vgdisplay -v’”.

Format

Formater ces partitions en ext4 et les monter dans les points de montages ‘/home/M1’, ‘/home/M2’ et ‘/home/MTN’. Mettre à jour de fichier fstab.

lvextend

Imaginons que les élèves de M2 aient besoin de 500Mo supplémentaires, agrandir le volume logique correspondant avec “‘lvextend’”.

Et étendre la partition avec “‘resize2fs’”. Vérifier la nouvelle taille avec la commande “‘df -h /home/M2’”.

vgextend

Les élèves de M1 ont besoin de 1 Go supplémentaire mais il n’y a plus assez d’espace sur le groupe de volumes (il manque 500M).

RAID

RAID Logiciel

Pré-requis :

Le but de ce chapitre est de mettre en oeuvre un RAID 1 logiciel. C’est à dire mettre les deux disques dur de 4 Go en “miroir”.

mdadm

Avec la commande “‘mdadm’”, créer le fichier device “‘/dev/md0’” qui sera un RAID de niveau 1, des deux disques ‘/dev/sdb’ et ‘/dev/sdc’ :

mdadm --create /dev/md0 --level 1 --raid-devices=2 /dev/sdb /dev/sdc

suivie

Suivre l’état d’avancement de la construction du RAID avec le commande :

# watch cat /proc/mdstat

Création/formatage/montage

Créer une partition sur le nouveau disque logique “‘/dev/md0’”, la formater et la monter dans “‘/mnt’”.

Populer

Créer des fichiers dans “‘/mnt’”.

Tester

Pour tester le RAID, simuler une panne sur le disque ‘’sdc’’ :

mdadm --manage --set-faulty /dev/md0 /dev/sdc

Vérification

Vérifier l’état du RAID (et notamment l’état du disque en panne) avec la commande :

mdadm --detail /dev/md0

Suppression

Enlever du RAID le disque défectueux (et vérifier avec la commande du 4.6) :

mdadm /dev/md0 -r /dev/sdc

Après cette étape, dans un cas réel, le disque pourrait physiquement être enlevé puis remplacé sans qu’aucune donnée ne soit perdue !

Re-montage

Remettre le disque ‘sdc’ dans le RAID (vérifier les messages des commandes du et 4.2) :

mdadm /dev/md0 -a /dev/sdc

HARD CORE

Prologue

Votre ami(e) a malencontreusement effacé des photos de son disque dur. Heureusement, vous avez démonté le système de fichier (ext4) à temps, et fait une copie bloc à bloc de la partition concernée dans l’optique de récupérer ces données plus tard. Cette sauvegarde est disponible à l’adresse https://isen.gastier.net/sda4.img.gz.

Rapatrier ce fichier sur votre machine virtuelle :

# $wget --user="isen" --password="isen2018" https://isen.gastier.net/sda4.img.gz 

Verification

Il s’agissait de photos au format PNG. Ce format a comme magic number “‘89 50 4e 47 0d 0a 1a 0a’” (cf. liens 1 et 2), en d’autres termes, cela signifie que tout fichier de ce type commence par cette séquence d’octets. Et il finit par un IEND chunk identifiable par la séquence “‘00 00 00 00 49 45 4E 44 42 60 82’” (cf. liens 3 et 4).

Préambule

Dans un premier temps, monter le fichier comme une partition (en utilisant l’option “‘-o loop’” de “‘mount’”) et vérifier que les fichiers ont bien été effacés. Quelle est la cause de l’effacement ?

Édition recherche

Ensuite, démonter le fichier et tenter de récupérer les photos effacées. S’aider des utilitaires suivants :

* Editeur hexadecimal pour afficher le contenu d'un fichier en
  hexadécimal:

  # hexdump -C <fichier>
 
* Calculatrice hexadécimal (le résultat est en base 10 et attention aux
  majuscules)
 
  # bc
  ibase=16
  2B-0F
  28
 
* Copie une partie d'un fichier dans un autre (dans l'exemple
  ci-dessous, le fichier de destination contiendra les 5 octets après
  l'offset de 20 octets du premier fichier) :
 
  # dd if=<fichier_src> of=<fichier_dst> bs=1 count=5 skip=20

Propal

Proposer une technique (théorique) pour effacer un fichier de façon sécurisée, càd sans qu’il ne reste de traces sur le système de fichier.

Finish him

Proposer ou écrire un utilitaire qui efface efface de façon sécurisée.