all:bibles:linux:hdd
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| all:bibles:linux:hdd [2025/02/20 14:17] – [Snapshot] omeylhoc | all:bibles:linux:hdd [2025/02/20 14:30] (Version actuelle) – [Avec process en cours] omeylhoc | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Partitions/ | ||
| + | ---- | ||
| + | |||
| + | <note warning> | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Partitionnement disque ===== | ||
| + | |||
| + | ==== Partitionnement MBR (Master Boot Record) ==== | ||
| + | |||
| + | === Table de partition === | ||
| + | |||
| + | La table de partitions principale est contenue dans le tout premier secteur du support dit secteur d' | ||
| + | |||
| + | === Partitions primaires === | ||
| + | |||
| + | Dans la table de partitions principale, on peut créer au plus quatre partitions, qui sont ou bien quatre partitions primaires, ou bien une à trois partitions primaires associée(s) à une partition étendue (généralement la dernière). Une partition étendue permet de s' | ||
| + | |||
| + | < | ||
| + | |||
| + | === Partition étendue, partitions secondaires === | ||
| + | |||
| + | Lorsque l'on a besoin de plus de quatre partitions, il faut donc créer une partition étendue. Cette dernière est simplement une partition primaire spéciale qui va contenir à son tour des partitions secondaires (souvent appelées partitions logiques). L' | ||
| + | |||
| + | ==== Partitionnement GPT (GUID Partition Table) ==== | ||
| + | |||
| + | Pas de limite à 4 partitions, limite à 128 partitions sous Windows 64 bits. | ||
| + | En mode GPT, les informations concernant la table de partitionnement sont stockées dans un entête GPT, mais pour garantir une compatibilité (avec les logiciels gérant MBR mais non GPT), GPT maintient une entrée MBR (dite protectrice car englobant la totalité du disque) suivie de l' | ||
| + | |||
| + | ==== Identification disque ==== | ||
| + | |||
| + | Identification du disque et obtention de la référence UUID : | ||
| + | |||
| + | <code bash> | ||
| + | sudo blkid | ||
| + | </ | ||
| + | |||
| + | ==== fdisk (jusqu' | ||
| + | |||
| + | <code bash> | ||
| + | sudo fdisk /dev/sdx | ||
| + | </ | ||
| + | |||
| + | Création d’une partition en tapant n puis p pour partition primaire\\ | ||
| + | Numéro de partition 1\\ | ||
| + | Cylindre de début : laisser par défaut\\ | ||
| + | Cylindre de fin : laisser par défaut pour tout le disque ou bien nbre de cylindre ou taille en Mo (ex : +500M)\\ | ||
| + | Enfin pour enregistrer les modifications et quitter taper w. | ||
| + | |||
| + | <note tip> | ||
| + | |||
| + | === Lister les partitions === | ||
| + | |||
| + | <code bash> | ||
| + | sudo fdisk -l | ||
| + | </ | ||
| + | |||
| + | ==== parted (à partir de 2 To) ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo parted /dev/sdx | ||
| + | </ | ||
| + | |||
| + | * affiche la table de partition | ||
| + | <code bash> | ||
| + | |||
| + | </ | ||
| + | |||
| + | * création d’un nouveau label du type gpt, msdos, bsd, mac, pc98, sun ou loop (raw disk access) | ||
| + | |||
| + | <code bash> | ||
| + | mklabel < | ||
| + | </ | ||
| + | |||
| + | * création d’une partition primaire utilisant toute la taille du disque avec un filesystem ext4 | ||
| + | |||
| + | <code bash> | ||
| + | mkpart primary ext4 0GB 100% | ||
| + | </ | ||
| + | |||
| + | * donne un nom à la partition 1 | ||
| + | |||
| + | <code bash> | ||
| + | name 1 <nom> | ||
| + | </ | ||
| + | |||
| + | * rend la partition 1 bootable. Partitions 1 à 4 pour les primaires et à partir de 5 les partitions étendues. | ||
| + | |||
| + | <code bash> | ||
| + | set 1 boot on | ||
| + | </ | ||
| + | |||
| + | === Lister les partitions === | ||
| + | |||
| + | <code bash> | ||
| + | sudo parted -ls | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Système de fichiers ===== | ||
| + | |||
| + | ==== Différents file system==== | ||
| + | |||
| + | === FAT16 === | ||
| + | |||
| + | * Taille maximum partition : 2 Go (voir 4 Go) | ||
| + | * Taille maximum fichier : 4 Go | ||
| + | * Taille maximale nom de fichier : 8.3 étendu à 255 caractères avec VFAT | ||
| + | * Nombre maximum de fichier au total : 65 518 | ||
| + | |||
| + | === FAT32 === | ||
| + | |||
| + | * Taille maximum partition : 2 To | ||
| + | * Taille maximum fichier : 4 Go | ||
| + | * Taille maximale nom de fichier : 255 caractères (UTF-16) | ||
| + | * Nombre maximum de fichier par répertoire : 65 534 (en incluant les entrée répertoire courant et répertoire parent) | ||
| + | * Nombre maximum de fichier au total : 2 < | ||
| + | |||
| + | === NTFS === | ||
| + | |||
| + | * Taille maximum partition : 256 To | ||
| + | * Taille maximum fichier : 16 To | ||
| + | * Taille maximale nom de fichier : 255 caractères (UTF-16) | ||
| + | * Nombre maximum de fichier au total : 2 < | ||
| + | |||
| + | === ext4 === | ||
| + | |||
| + | * Taille maximum partition : 16 To | ||
| + | * Taille maximum fichier : 16 To | ||
| + | * Taille maximale nom de fichier : 255 octets | ||
| + | * Nombre maximum de fichier au total : 2 < | ||
| + | |||
| + | === Btrfs === | ||
| + | |||
| + | * Taille maximum partition : 16 Eio | ||
| + | * Taille maximum fichier : 16 Eio | ||
| + | * Taille maximale nom de fichier : 255 octets | ||
| + | * Nombre maximum de fichier au total : 2 < | ||
| + | |||
| + | === XFS === | ||
| + | |||
| + | * Taille maximum partition : 16 Eio | ||
| + | * Taille maximum fichier : 8 Eio | ||
| + | * Taille maximale nom de fichier : 255 octets | ||
| + | |||
| + | === ZFS=== | ||
| + | |||
| + | * Taille maximum partition : 16 Eio | ||
| + | * Taille maximum fichier : 16 Eio | ||
| + | * Taille maximale nom de fichier : 255 octets | ||
| + | * Nombre maximum de fichier au total : 2 < | ||
| + | |||
| + | ==== Formatage ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo mkfs /dev/sdxn –t ext4 | ||
| + | </ | ||
| + | |||
| + | Avec « x » lettre du disque et « n » numéro de partition. | ||
| + | |||
| + | Pour le format xfs installer le paquet xfsprogs : | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt-get install xfsprogs | ||
| + | sudo mkfs /dev/sdxn –t xfs | ||
| + | </ | ||
| + | |||
| + | ==== Label ==== | ||
| + | |||
| + | === ext2/ext3 === | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt install e2fsprogs | ||
| + | sudo e2label /dev/sdxy nouveau_nom | ||
| + | </ | ||
| + | |||
| + | === FAT32 === | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt install mtools | ||
| + | sudo mlabel -i /dev/sdxy :: | ||
| + | </ | ||
| + | |||
| + | === NTFS === | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt install ntfsprogs | ||
| + | sudo ntfslabel /dev/sdxy nouveau_nom | ||
| + | </ | ||
| + | |||
| + | ==== Vérification ==== | ||
| + | |||
| + | === Manuel === | ||
| + | |||
| + | Vérification d'une partition non montée : | ||
| + | |||
| + | <code bash> | ||
| + | sudo e2fsck /dev/sdxn | ||
| + | </ | ||
| + | |||
| + | === Automatique === | ||
| + | |||
| + | Vérification tous les 90 jours ou tous les 500 montages : | ||
| + | |||
| + | <code bash> | ||
| + | sudo tune2fs –i 90d –c 500 /dev/sdxn | ||
| + | </ | ||
| + | |||
| + | === Interrogation paramètres === | ||
| + | |||
| + | Vérifier les paramètres « Maximum mount count » et « Check interval » suite à la commande : | ||
| + | |||
| + | <code bash> | ||
| + | sudo dumpe2fs -h /dev/sdxn | ||
| + | </ | ||
| + | |||
| + | ==== SWAP ==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Pour définir une partition ou un fichier comme espace d’échange : | ||
| + | |||
| + | <code bash> | ||
| + | sudo mkswap /dev/sda6 | ||
| + | </ | ||
| + | |||
| + | Pour activer la partition d’échange : | ||
| + | |||
| + | <code bash> | ||
| + | sudo swapon /dev/sda6 | ||
| + | </ | ||
| + | |||
| + | A ajouter dans le fichier /etc/fstab pour prise en compte permanente. | ||
| + | |||
| + | ==== Interrogation ==== | ||
| + | |||
| + | | file –s / | ||
| + | | lsblk -f | affiche les filesystems des devices block | | ||
| + | | lsblk -m | affiche les propriétaires et les droits associés des devices block | | ||
| + | | lsblk -t | affiche la topologie des devices block | | ||
| + | | df -h | affiche l’utilisation des différents systèmes de fichiers | | ||
| + | |||
| + | ==== Echange de fichiers avec MAC ==== | ||
| + | |||
| + | Installer les paquets suivants : | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt-get install hfsprogs hfsutils | ||
| + | </ | ||
| + | |||
| + | Utiliser le format HFS+ avec gparted ou autre. | ||
| + | |||
| + | ==== Arborescence filesystem linux ==== | ||
| + | |||
| + | | /bin | commandes disponible en runlevel 1 | | ||
| + | | /sbin | autres commandes indispensables au système | | ||
| + | | /usr | binaires pour les utilisateurs | | ||
| + | | /opt | binaires non système | | ||
| + | | /lib | librairies | | ||
| + | | /sys | ensemble du système tel que vu par le noyau Linux | | ||
| + | | /proc | répertoire virtuel, représentation des process en cours | | ||
| + | | /dev | devices | | ||
| + | | /var | log, e-mail, spool d’impression, | ||
| + | | /tmp | espace temporaire (effacé au reboot) | | ||
| + | | /home | home dir des utilisateurs | | ||
| + | | /etc | fichiers de configuration | | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Montage ===== | ||
| + | |||
| + | ==== Montage temporaire ==== | ||
| + | |||
| + | Utilisation de la commande mount : | ||
| + | |||
| + | <code bash> | ||
| + | sudo mount /dev/sdb1 /mnt | ||
| + | </ | ||
| + | |||
| + | Pour défaire le montage on peut préciser le point de montage ou bien l' | ||
| + | |||
| + | <code bash> | ||
| + | sudo umount /mnt | ||
| + | sudo umount /dev/sdb1 | ||
| + | </ | ||
| + | |||
| + | <note important> | ||
| + | |||
| + | ==== Montage persistant ==== | ||
| + | |||
| + | <note warning> | ||
| + | </ | ||
| + | |||
| + | Afin de rendre persistant un montage il faut utiliser le fichier <color # | ||
| + | |||
| + | < | ||
| + | <file system> | ||
| + | UUID=xxxxxxx | ||
| + | UUID=yyyyyyy | ||
| + | </ | ||
| + | |||
| + | === File system === | ||
| + | |||
| + | Il est préférable d' | ||
| + | |||
| + | === Mount point === | ||
| + | |||
| + | Point de montage dans l' | ||
| + | |||
| + | === Type === | ||
| + | |||
| + | Indique le format de la partition. | ||
| + | |||
| + | | ext2, | ||
| + | | swap | Swap linux | | ||
| + | | tmpfs | Filesyste temporaire en mémoire | ||
| + | | fat | Windows fat16 | | ||
| + | | vfat | Windows fat32 | | ||
| + | | ntfs | Windows ntfs | | ||
| + | | hfsplus | ||
| + | | iso9660 | ||
| + | |||
| + | === Options === | ||
| + | |||
| + | Les options s' | ||
| + | |||
| + | ^ option | ||
| + | | defaults | ||
| + | | **rw**/ | ||
| + | | suid/ | ||
| + | | **dev**/ | ||
| + | | **exec**/ | ||
| + | | **auto**/ | ||
| + | | **nouser** | ||
| + | | _netdev | ||
| + | | **async** | ||
| + | | **atime**/ | ||
| + | | sw | Montage des partitions swap | swap | | ||
| + | | discard | ||
| + | |||
| + | === Dump === | ||
| + | |||
| + | Utilisé pour les sauvegardes. Laisser 0. | ||
| + | |||
| + | === Pass === | ||
| + | |||
| + | Donne l' | ||
| + | |||
| + | | 0 | swap et partitions windows : pas de vérification | | ||
| + | | 1 | racine | ||
| + | | 2 | autres partitions linux | | ||
| + | |||
| + | === Prise en compte des modifications === | ||
| + | |||
| + | Avant tout redémarrage toujours tester les modifications de la fstab via la commande : | ||
| + | |||
| + | <code bash> | ||
| + | mount -a | ||
| + | </ | ||
| + | |||
| + | ==== Sécurité ==== | ||
| + | |||
| + | | /tmp | peut être monté avec l' | ||
| + | | /usr | monter en read-only pour sécuriser une fois l' | ||
| + | |||
| + | ==== Montages particuliers ==== | ||
| + | |||
| + | === Monter un fichier === | ||
| + | |||
| + | Pour monter un fichier comme une image iso il faut utiliser l' | ||
| + | |||
| + | <code bash> | ||
| + | mount -o loop image.iso /mnt | ||
| + | </ | ||
| + | |||
| + | === Monter un répertoire === | ||
| + | |||
| + | Pour remonter un répertoire ailleurs dans l' | ||
| + | |||
| + | <code bash> | ||
| + | mount --bind olddir newdir | ||
| + | mount -o remount, | ||
| + | </ | ||
| + | |||
| + | Ou pour un montage persistent via la fstab : | ||
| + | |||
| + | < | ||
| + | olddir | ||
| + | </ | ||
| + | |||
| + | ==== Interrogation ==== | ||
| + | |||
| + | | df -h | Liste les systèmes de fichiers | ||
| + | | mount | Liste les montages | ||
| + | | mount %%|%% column -t | idem plus lisible | ||
| + | | findmnt | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Fragmentation ===== | ||
| + | |||
| + | ==== Interrogation ==== | ||
| + | |||
| + | Vérifier le type de système de fichiers à l'aide le commande : | ||
| + | |||
| + | <code bash> | ||
| + | blkid | ||
| + | </ | ||
| + | |||
| + | === Système de fichier ext4 === | ||
| + | |||
| + | <code bash> | ||
| + | sudo e4defrag -c / | ||
| + | </ | ||
| + | |||
| + | A la fin on obtient un « Fragmentation score » : | ||
| + | |||
| + | * de 0 à 30 : le système de fichiers n'est pas fragmenté. | ||
| + | * de 31 à 55 : le système de fichiers est un peu fragmenté. | ||
| + | * à partir de 56 : le système de fichiers devrait être défragmenté. | ||
| + | |||
| + | === Système de fichier xfs === | ||
| + | |||
| + | <code bash> | ||
| + | xfs_db -r /dev/sdxn | ||
| + | xfs_db> frag -d | ||
| + | xfs_db> frag -f | ||
| + | </ | ||
| + | |||
| + | ==== Défragmentation ==== | ||
| + | |||
| + | === Système de fichier ext4 === | ||
| + | |||
| + | <code bash> | ||
| + | sudo e4defrag / | ||
| + | </ | ||
| + | |||
| + | === Système de fichier xfs === | ||
| + | |||
| + | <code bash> | ||
| + | xfs_fsr /dev/sdxn | ||
| + | xfs_fsr | ||
| + | </ | ||
| + | |||
| + | ==== Sources ==== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Espace disque ===== | ||
| + | |||
| + | ==== Interrogation ==== | ||
| + | |||
| + | === En volume === | ||
| + | |||
| + | | df -h | Affiche le taux d’occupation des partitions en terme de taille | ||
| + | | du -sh * | Affiche la taille des répertoires/ | ||
| + | |||
| + | === En nombre d' | ||
| + | |||
| + | | df –i | Affiche le taux d’occupation des partitions en terme d’inodes | ||
| + | | du --inodes -d 3 / %%|%% sort –n | Affiche la liste triée des répertoires/ | ||
| + | |||
| + | ==== Disque saturé ==== | ||
| + | |||
| + | Pour résoudre le problème d'un disque saturé on utilisera les commandes suivantes : | ||
| + | |||
| + | <code bash> | ||
| + | df -h # pour vérifier l' | ||
| + | du -sh * # pour vérifier l' | ||
| + | ls -alhS # lister les fichiers par ordre de taille | ||
| + | ncdu # idem mais graphique | ||
| + | lsof +L1 # pour lister les fichiers supprimés qui sont encore ouvert par des process | ||
| + | </ | ||
| + | ==== Augmenter la taille de la partition / ==== | ||
| + | |||
| + | * Augmenter la taille du disque virtuel | ||
| + | * Identifier le disque et la partition à agrandir | ||
| + | * Redimensionner la partition (exemple pour la partition 1) | ||
| + | |||
| + | <code bash> | ||
| + | sudo parted / | ||
| + | resizepart 1 100% | ||
| + | </ | ||
| + | |||
| + | * Etendre le système de fichier | ||
| + | |||
| + | <code bash> | ||
| + | sudo resize2fs /dev/root | ||
| + | </ | ||
| + | |||
| + | ==== Diminuer la taille d'une partition ==== | ||
| + | |||
| + | === Démonter la partition === | ||
| + | |||
| + | <code bash> | ||
| + | sudo umount /dev/sdxn | ||
| + | </ | ||
| + | |||
| + | === Vérification du système de fichier === | ||
| + | |||
| + | <code bash> | ||
| + | sudo e2fsck -f /dev/sdxn | ||
| + | </ | ||
| + | |||
| + | === Redimensionnement du système de fichiers === | ||
| + | |||
| + | <code bash> | ||
| + | sudo resize2fs /dev/sdxn < | ||
| + | </ | ||
| + | |||
| + | === Redimensionnement partition === | ||
| + | |||
| + | Utiliser gparted. | ||
| + | |||
| + | ==== Copier un système linux sur un disque plus petit ==== | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | Démarrer un live CD avec les 2 disques accessibles. | ||
| + | |||
| + | === Préparation disque === | ||
| + | |||
| + | Créer la (ou les) partition de destination, | ||
| + | |||
| + | === Copier le système de fichiers === | ||
| + | |||
| + | Monter les 2 disques sous /mnt/src et /mnt/dst puis copier le système de fichiers : | ||
| + | |||
| + | <code bash> | ||
| + | cd /mnt/src | ||
| + | cp -dpRx * /mnt/dst | ||
| + | </ | ||
| + | |||
| + | === Adaptation fstab === | ||
| + | |||
| + | Lister les uuid : | ||
| + | |||
| + | <code bash> | ||
| + | sudo blkid | ||
| + | </ | ||
| + | |||
| + | Adapter le fichier <color # | ||
| + | |||
| + | === GRUB === | ||
| + | |||
| + | Reconstruire un grub adapté : | ||
| + | |||
| + | <code bash> | ||
| + | sudo mount --bind /dev / | ||
| + | sudo mount --bind /proc / | ||
| + | sudo chroot /mnt/dst | ||
| + | sudo grub-mkconfig -o / | ||
| + | grub-install /dev/sdx | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== LVM ===== | ||
| + | |||
| + | <note tip>PV : Physical Volume \\ VG : Volume Group \\ LV : Logical Volume</ | ||
| + | |||
| + | ==== Création ==== | ||
| + | |||
| + | <code bash> | ||
| + | pvcreate /dev/sdxn | ||
| + | pvdisplay | ||
| + | vgcreate vgname /dev/sdxn | ||
| + | vgdisplay | ||
| + | lvcreate –n lvname –L 50g vgname | ||
| + | lvdisplay | ||
| + | mkfs –t ext4 / | ||
| + | </ | ||
| + | |||
| + | ==== Extension ==== | ||
| + | |||
| + | === Démonter le volume === | ||
| + | |||
| + | <code bash> | ||
| + | umount / | ||
| + | </ | ||
| + | |||
| + | === Vérifier le système de fichiers === | ||
| + | |||
| + | <code bash> | ||
| + | e2fsck -f / | ||
| + | </ | ||
| + | |||
| + | === Etendre le volume === | ||
| + | |||
| + | Ici on utilise tout l' | ||
| + | |||
| + | <code bash> | ||
| + | lvextend -l +100%FREE / | ||
| + | </ | ||
| + | |||
| + | === Etendre le système de fichier === | ||
| + | |||
| + | <code bash> | ||
| + | resize2fs / | ||
| + | </ | ||
| + | |||
| + | Pour un système de fichier xfs on utilisera la commande xfs_growfs qui fonctionne avec le système de fichier monté. Ainsi pour étendre le filesystem root avec tout l' | ||
| + | |||
| + | <code bash> | ||
| + | xfs_growfs / | ||
| + | </ | ||
| + | |||
| + | === Remonter le système de fichier === | ||
| + | |||
| + | Si déjà dans la fstab on se contente de : | ||
| + | |||
| + | <code bash> | ||
| + | mount -a | ||
| + | </ | ||
| + | |||
| + | ==== Augmenter taille partition ==== | ||
| + | |||
| + | Après augmentation de la taille sur une vm par exemple. | ||
| + | |||
| + | === Forcer le système à relire les informations liées aux disques === | ||
| + | |||
| + | <code bash> | ||
| + | partprobe | ||
| + | </ | ||
| + | |||
| + | === Créer une partition à la suite des autres === | ||
| + | |||
| + | <code bash> | ||
| + | cfdisk | ||
| + | </ | ||
| + | |||
| + | === Vérifier le type des partitions === | ||
| + | |||
| + | <code bash> | ||
| + | df -hT | ||
| + | </ | ||
| + | |||
| + | === Formater la partition avec le type désiré === | ||
| + | |||
| + | <code bash> | ||
| + | mkfs.ext4 /dev/sdxn | ||
| + | </ | ||
| + | |||
| + | === Ajouter la partition dans le VG === | ||
| + | |||
| + | Le Physical Volume est créé automatiquement. | ||
| + | |||
| + | <code bash> | ||
| + | vgextend < | ||
| + | vgdisplay | ||
| + | </ | ||
| + | |||
| + | === Extension du LV === | ||
| + | |||
| + | <code bash> | ||
| + | lvextend –l +100%FREE < | ||
| + | lvdisplay | ||
| + | </ | ||
| + | |||
| + | === Redimensionnement du système de fichiers === | ||
| + | |||
| + | <code bash> | ||
| + | resize2fs < | ||
| + | </ | ||
| + | |||
| + | === Vérification du résultat === | ||
| + | |||
| + | <code bash> | ||
| + | df -hT | ||
| + | </ | ||
| + | |||
| + | ==== Snapshot ==== | ||
| + | |||
| + | <code bash> | ||
| + | lvcreate --size 1g --snapshot -n < | ||
| + | lvcreate –L 1g –s –n < | ||
| + | mount -o ro,auto / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Récupération fichier ===== | ||
| + | |||
| + | ==== Avec process en cours ==== | ||
| + | |||
| + | Il est possible de retrouver le contenu d'un fichier qui a été ouvert par un process qui est toujours en cours d' | ||
| + | |||
| + | * Lister les fichiers effacés | ||
| + | |||
| + | <code bash> | ||
| + | lsof | grep deleted | ||
| + | bash 363415 | ||
| + | </ | ||
| + | |||
| + | * Récupérer le numéro de processus et aller chercher le file descriptor dans le contexte en mémoire | ||
| + | |||
| + | <code bash> | ||
| + | cd / | ||
| + | </ | ||
| + | |||
| + | * Copier le contenu du fichier pour le sauvegarder | ||
| + | |||
| + | <code bash> | ||
| + | cat <fd> | ||
| + | # soit pour l' | ||
| + | cat / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Investigation HDD défectueux ===== | ||
| + | |||
| + | ==== Affichage données SMART ==== | ||
| + | |||
| + | < | ||
| + | smartctl –a / | ||
| + | smartctl –x / | ||
| + | </ | ||
| + | |||
| + | ==== Vérification d'un disque ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo badblocks -s -v -c 10240 /dev/sdx | ||
| + | </ | ||
| + | |||
| + | ^ option | ||
| + | | -s | Affiche l' | ||
| + | | -v | Affiche toutes les erreurs | ||
| + | | -c | Permet de déterminer la taille des blocs à tester | ||
| + | |||
| + | Une fois le test terminé, le nombre de secteurs défectueux est affiché. | ||
| + | |||
| + | ==== Récupération table de partition ==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | === Installation package gpart === | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt-get install gpart | ||
| + | sudo gpart /dev/sdx | ||
| + | </ | ||
| + | |||
| + | === Lecture table de partition === | ||
| + | |||
| + | <code bash> | ||
| + | sudo gpart /dev/sdx | ||
| + | </ | ||
| + | |||
| + | === Recréation de la table === | ||
| + | |||
| + | Si le résultat de la lecture de la table semble cohérent on peut tenter de recréer la table : | ||
| + | |||
| + | <code bash> | ||
| + | sudo gpart -W /dev/sdx /dev/sdx | ||
| + | </ | ||
| + | |||
| + | <note important> | ||
| + | |||
| + | ==== Récupération descripteur d'un système de fichier ==== | ||
| + | |||
| + | === Message d' | ||
| + | |||
| + | Message d' | ||
| + | |||
| + | === Recherche des sauvegardes du descripteur === | ||
| + | |||
| + | <code bash> | ||
| + | sudo mke2fs -n /dev/sdxn | ||
| + | Superblock backups stored on blocks: | ||
| + | 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208 | ||
| + | </ | ||
| + | |||
| + | === Restauration du superblock à partir d'une des sauvegardes === | ||
| + | |||
| + | <code bash> | ||
| + | sudo e2fsck -b<block number> /dev/sdxn | ||
| + | </ | ||
| + | |||
| + | ==== Récupération données sur HDD défectueux ==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | === Installer le package testdisk === | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt-get install testdisk | ||
| + | </ | ||
| + | |||
| + | === Lancer testdisk === | ||
| + | |||
| + | <code bash> | ||
| + | sudo testdisk | ||
| + | </ | ||
| + | |||
| + | * Création fichier de log ... ou pas | ||
| + | |||
| + | [create] | ||
| + | |||
| + | * Sélectionner le périphérique | ||
| + | |||
| + | [Proceed] | ||
| + | |||
| + | * Sélectionner le type de partition | ||
| + | |||
| + | [Intel] | ||
| + | |||
| + | * Lancer l' | ||
| + | |||
| + | [Analyse]\\ | ||
| + | [Quick Search] | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Test performances ===== | ||
| + | |||
| + | <code bash> | ||
| + | sudo hdparm -t --direct /dev/sdx | ||
| + | dd if=/ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Commande dd ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <note tip> | ||
| + | |||
| + | ==== Syntaxe ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo dd if=< | ||
| + | </ | ||
| + | |||
| + | * if : périphérique source | ||
| + | * of : périphérique destination | ||
| + | * bs : taille des block. Puissance de 2 supérieure à 512. Sur du matériel moderne bs=4096 est une bonne valeur (équivalent à bs=4k). | ||
| + | * skip : saute des blocs d' | ||
| + | * seek : saute autant de blocs sur le média de sortie avant d' | ||
| + | * conv=notrunc : ne pas tronquer le fichier en sortie | ||
| + | * conv=noerror : continuer en cas d' | ||
| + | |||
| + | ==== Copier une partition sur une autre ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo dd if=/ | ||
| + | </ | ||
| + | |||
| + | ==== Cloner un disque dur entier ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo dd if=/dev/sdx of=/dev/sdy conv=notrunc status=progress | ||
| + | </ | ||
| + | |||
| + | ==== Copier un disque sur un disque plus petit ==== | ||
| + | |||
| + | === Clonezilla === | ||
| + | |||
| + | * Faire une copie de disque vers disque. | ||
| + | * Cocher l' | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | * Dans un des panels suivants choisir l' | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | === Manuellement === | ||
| + | |||
| + | Copie d'un disque avec une seule partition, on saute la table de partition lors de la copie. En agissant ainsi, on laisse intacts les 4 premiers Ko sur chaque disque (on ne veut pas dire à un lecteur qu'il est plus gros qu'il n'est en réalité en écrivant une table de partition depuis un lecteur plus gros vers un lecteur plus petit). | ||
| + | |||
| + | <code bash> | ||
| + | dd if=/dev/sdx skip=1 of=/dev/sdy seek=1 bs=4k status=progress | ||
| + | </ | ||
| + | |||
| + | ==== Copier un disque sur un disque plus grand ==== | ||
| + | |||
| + | Si vous copiez une partition plus petite vers une plus grande, la plus grande partition affichera sa taille correcte avec : | ||
| + | |||
| + | <code bash> | ||
| + | fdisk -l | ||
| + | </ | ||
| + | |||
| + | Mais pas avec : | ||
| + | |||
| + | <code bash> | ||
| + | df -h | ||
| + | </ | ||
| + | |||
| + | Cela parce que fdisk lit la table de partitions et df lit l'info de format. Pour palier ce problème après avoir copier le disque : | ||
| + | |||
| + | <code bash> | ||
| + | e2fsck -f /dev/sdxn | ||
| + | resize2fs /dev/sdxn | ||
| + | </ | ||
| + | |||
| + | ==== Sauvegarde d'une partition dans un fichier ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo dd if=/ | ||
| + | </ | ||
| + | |||
| + | ==== Créer une image iso à partir d'un CD/DVD ==== | ||
| + | |||
| + | <code bash> | ||
| + | dd if=/dev/dvd of=image.iso bs=2048 | ||
| + | </ | ||
| + | |||
| + | ==== Effacer un disque dur ==== | ||
| + | |||
| + | === Effacement simple === | ||
| + | |||
| + | <code bash> | ||
| + | dd if=/ | ||
| + | </ | ||
| + | |||
| + | === Effacement sécurisé === | ||
| + | |||
| + | <code bash> | ||
| + | for n in `seq 7`; do dd if=/ | ||
| + | </ | ||
| + | |||
| + | On réalise 7 passes d' | ||
| + | |||
| + | ==== Créer un fichier d'une taille donnée ==== | ||
| + | |||
| + | === Fichier de zéro === | ||
| + | |||
| + | Création d'un fichier de 100 Mo de 0 (100 000 blocs de 1 Ko) : | ||
| + | |||
| + | <code bash> | ||
| + | dd if=/ | ||
| + | </ | ||
| + | |||
| + | === Fichier au contenu aléatoire === | ||
| + | |||
| + | Création d'un fichier de 100 octets aléatoires : | ||
| + | |||
| + | <code bash> | ||
| + | dd if=/ | ||
| + | </ | ||
| + | |||
| + | Création d'un fichier de 10 Go aléatoires : | ||
| + | |||
| + | <code bash> | ||
| + | dd if=/ | ||
| + | </ | ||
| + | |||
| + | === Fichier vide === | ||
| + | |||
| + | Il s'agit d'un fichier dont la taille apparait bien avec la commande <color # | ||
| + | Fichier vide de 10 Mo : | ||
| + | |||
| + | <code bash> | ||
| + | dd if=/ | ||
| + | </ | ||
| + | |||
| + | Fichier vide de 100 Mo : | ||
| + | |||
| + | <code bash> | ||
| + | dd if=/ | ||
| + | </ | ||
| + | |||
| + | Fichier vide de 1 Go : | ||
| + | |||
| + | <code bash> | ||
| + | dd if=/ | ||
| + | </ | ||
| + | |||
| + | ==== Convertir un fichier en minuscule ==== | ||
| + | |||
| + | <code bash> | ||
| + | dd if=Fichier_Source of=Fichier_Cible conv=ucase | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
