Outils pour utilisateurs

Outils du site


technique:linux:disques

Disques

Information sur les partitions

# dumpe2fs /dev/sdb1

Taille des inodes : # dumpe2fs /dev/sdb1 | grep -i “inode size” dumpe2fs 1.40.2 (12-Jul-2007) Inode size: 128

Disque plein

C'est souvent le cas du disque contenant la racine / Peut provenir d'une poubelle pleine. Elle se trouve dans ~/.local/share/Trash Peut provenir des fichiers de log dans /var

Plusieurs solutions

1 - Visualiser les répertoires les plus gros du -h –max-depth=1 / Puis visualiser de proche en proche les répertoires les plus pleins

2 -Lister les fichiers par ordre de taille croissante : du -k | sort -nr | less # trier par taille (en KO) décroissante du -B 1048576 | sort -nr | less # (en GO)

3 - Pour détecter les gros fichiers, taper par exemple (faire varier la taille) : find / -mount -size +500000k -print (ici dans le répertoire /) Puis supprimer les fichiers/répertoires inutiles par la commande : rm -rf /dossier/à/supprimer/* NB : r=récursif f=force, efface sans avoir à valider chaque nom de fichier

4 - filelignt → affichage graphique de l'utilisation des disques

Lister les fichiers supprimés qui sont encore ouverts par des processus en cours : ls -ld /proc/*/fd/* 2>&1 | fgrep '(deleted)'

Pour voir si c'est un problème de manque d'inodes : df -i

fragmentation / défragmentation

# filefrag

Récupération sur disque/machine en mauvais état

  • unrm : récupération de fichiers
  • fsck : contrôle de l'état logique du disque

Interaction MS-Windows

Explore2fs http://www.chrysocome.net/explore2fs Ext2 Installable File System www.fs-driver.org

Dénomination des périphériques

D'après http://www.debian-fr.org/article.php?page=viewarticle&article=5

Convention (idem linux et grub ): hd → périphériques IDE sd → périphériques SCSI et assimilés (SATA, etc.)

Numérotation linux IDE :

			disque maître		esclave

contrôleur primaire hda hdb contrôleur secondaire hdc hdd

Numérotation linux SCSI sda, sdb … a, b … dans l'ordre des N° de la chaîne SCSI

Numérotation grub Numérote les disques 0, 1, 2 etc. dans l'ordre de leur découverte par le BIOS. Le BIOS fait sa recherche dans l'ordre contrôleur primaire maître/esclave, contrôleur secondaire maître/esclave. Exemple : hd(0,2) : 0, n° du disque, 2 numéro de partition

Equivalence :

grub		linux
hd(1,1)		hdb2

Créer/changer une partition swap

swap : à placer de préférence en fin de disque : l'accès y serait plus rapide

Pour créer une partion swap : fdisk, cfdisk ou diskdrake La formater sous diskdrake ou par la commande # mkswap /dev/… Lister les disques et partitions # fdisk -l Lister les partitions swap actives # swapon -s Désactiver une partition swap # swapoff /dev/… Activer une (autre) partition swap # swapon /dev/… Vérifier dans /etc/fstab que la nouvelle partition swap sera montée au démarrage

Redimensionner des partitions

Gparted (le CD live)

Partitionnement et clonage de disque

A voir : GParted-Clonezilla Live-CD bootable contenant GParted et Clonezilla.

Copie/clonage de disques et de partitions

Avec 2 disques identiques la commande dd permet d'obtenir une réplique exacte du disque source : sauf erreur la commande doit être :

      # dd if=/dev/hda of=/dev/hdc

Dans le cas où l'on veut remplacer un petit disque par un plus gros, avec éventuellement un changement de la taille et/ou du nombre de partitions, dd ne convient pas.

Aprés plusieurs essais (rsync, mirrordir, tar, cp), une solution toute simple au problème de “clonage” de disques : en très bref les 3 étapes pour copier le disque d'origine (hd0) sur le nouveau disque :

1 - copie des partitions et répertoires de hd0 vers hd1 à l'aide de la commande :

      cp -a

2 - modification du fichier de configuration /etc/fstab 3 - modification du boot (grub ou lilo)

Ce qui donne avec un peu plus de détails :

1 - copie des partitions et répertoires de hd0 vers hd1 à l'aide de la commande cp -a


- Connecter le nouveau disque (hd1) - Lancer Linux (MDK) - Avec diskdrake ou au moyen des outils en ligne de commande (fdisk ou cfdisk, mkfs) créer sur hd1 les partitions désirées et les formater - Redémarrer l'ordinateur avec UN LINUX SUR DISQUETTE OU CD : j'utilise tomsrtbt (http://www.toms.net/rb/), mais tout autre Linux sur disquette ou CD doit convenir, par exemple Knoppix (http://knoppixfr.tuxfamily.org/), ou encore le CD n°1 d'installation de MDK : il suffit qu'il contienne la commande cp - Avec la commande cp -a, copier les partitions et répertoires de hd0 vers leur emplacement prévu sur hd1

Questions : * Pourquoi utiliser un Linux sur disquette ou CD ? C'est pour obtenir une copie de ce qui est réellement sur disque et non pas de ce que Linux y met ou veut bien laisser copier lorsqu'il fonctionne. Par exemple /proc contient une série de fichiers qui n'existent qu'en RAM ; il n'y a rien sur le disque : /proc n'est qu'un point de montage pour l'accés à une partie de la RAM. * Pourquoi utiliser cp plutôt que mirrordir ou rsync plus pratiques ? C'est parce que cp se trouve dans toutes distributions Linux ce qui n'est pas le cas des autres commandes (pas de rsync, mirrordir … dans tomsrtbt).

2 - modification du fichier de configuration /etc/fstab


- Rebooter sous MDK (ce n'est pas indispensable, mais l'interface est plus conviviale que celle d'un Linux sur disquette) - Mettre à jour le fichier /etc/fstab sur hd1

3 - modification du boot (grub ou lilo)


- Mettre à jour le fichier de configuration du programme de boot sur hd0 (et/ou sur hd1 si par la suite on veut démarrer directement à partir de hd1) Dans le cas de GRUB, le fichier � modifier est /boot/grub/menu.lst. Dans le cas de LILO (à vérifier : non testé) modifier /etc/lilo.conf et exécuter la commande “/sbin/lilo” avec les options -b bootdev et -C config-file pour indiquer d'une part le disque sur lequel installer le boot et d'autre part le fichier de configuration que l'on vient de modifier.

C'est tout. Au redémarrage le menu de grub ou de lilo apparaît et permet de booter le système copié sur hd1.

Avec tous les détails, une réalisation concrète qui a parfaitement fonctionné :

J'ai un PC qui tourne sur MDK9.1. J'utilise l'environnement graphique KDE. Le disque dur d'origine (hd0) a 3 partitions : - hda1 / - hda2 swap - hda3 home Il devient trop petit (3 Go). J'ai récupéré un disque de 20 Go. Après montage dans le PC, ce 2° disque est vu comme hdc. Je désire partitionner le 2° disque dur (hd1) en : - hdc1 / - hdc2 swap - hdc3 usr - hdc5 var - hdc6 home

1 - Avec diskdrake, partitionner le nouveau disque (hd1) et formater les partitions 2 - Redémarrer Linux à partir d'une disquette tomsrtbt. Se “loger” en “root” avec le mot de passe par défaut “xxxx” 3 - Créer les points de montage pour pouvoir monter le disque source et le disque destination

      # cd /mnt
      # mkdir source
      # mkdir dest
      # cd /

4 - Monter les disques source (hda) et destination (hdc) et copier le répertoire racine

      # mount /dev/hda1 /mnt/source
      # mount /dev/hdc1 /mnt/dest
      # cp -a /mnt/source/* /mnt/dest
      # umount /mnt/dest

5 - La même chose pour /usr

      # mount /dev/hdc3 /mnt/dest
      # cp -a /mnt/source/usr/* /mnt/dest
      # umount /mnt/dest

6 - La même chose pour /var

      # mount /dev/hdc5 /mnt/dest
      # cp -a /mnt/source/var/* /mnt/dest
      # umount /mnt/dest

7 - La même chose pour /home

      # umount /mnt/source
      # mount /dev/hda3 /mnt/source
      # mount /dev/hdc6 /mnt/dest
      # cp -a /mnt/source/* /mnt/dest
      # umount /mnt/dest
      # umount /mnt/source
      # reboot

Sortir la disquette tomsrtbt

7 - Redémarrer sous MDK

8 - Supprimer de hdc1 non pas les répertoires /usr, /var et /home mais leur CONTENU qui est maintenant sur les partitions respectivement hdc3, hdc5 et hdc6

      # mount /dev/hdc1 /mnt/dest

puis sous konqueror supprimer le CONTENU de /usr, /var et /home (NB : la commande

# rm -rf nom_repertoire/*

efface bien le contenu du répertoire nom_repertoire, mais pas les fichiers cachés !)

9 - Mettre à jour le fichier /etc/fstab du nouveau disque Remplacer :

      /dev/hda1 / ext3 defaults 1 1
      /dev/hda2 swap swap defaults 0 0
      /dev/hda3 /home ext3 defaults 1 2

par :

      /dev/hdc1 / ext3 defaults 1 1
      /dev/hdc2 swap swap defaults 0 0
      /dev/hdc3 /usr ext3 defaults 1 2
      /dev/hdc5 /var ext3 defaults 1 2
      /dev/hdc6 /home ext3 defaults 1 2

10 - Mettre à jour le menu de boot de grub (/boot/grub/menu.lst) pour faire apparaître l'option de boot du système Linux installé, maintenant hd1

NB : pour le moment hd0 est toujours en place. On peut donc utiliser son “boot device” ; il suffit d'ouvrir le fichier menu.lst qui se trouve sur hda1 :

      # mount /dev/hda1 /mnt/source
      # kwrite /mnt/source/boot/grub/menu.lst

et de le modifier : j'ai rajouté, juste en dessous de “default 0” (pour que le PC démarre par défaut sur MDK qui est sur hd1) :

      title linux dd 20 Go
      kernel (hd1,0)/boot/vmlinuz root=/dev/hdc1 quiet devfs=mount acpi=off vga=791
      initrd (hd1,0)/boot/initrd.img

Noter vga=791 : ce n'est pas indispensable, mais ça permet de bien mieux voir les messages (d'erreurs éventuelles) au démarrage du système. Pour la signification de ce n°, voir plus loin à “Amélioration de l'affichage des infos au démarrage de MDK”

11 - Rebooter, c'est fini et la nouvelle copie de MDK fonctionne comme l'original

NB : les commandes rsync et mirrordir (au contraire de cp) ont une option “exclude-from” pratique pour éviter de copier les répertoires inutiles avec la commande cp (ça prend du temps et il faut ensuite les effacer, voir points 4 et 8 ci-dessus). Les utiliser si elles sont dispoonibles sur la disquette ou le CD utilisé.

MBR

MBR écrasé -> partitions disque perdues : comment les récupérer

Le mbr contient plusieurs informations essentielles pour le fontionnement de l'ordinateur : Extrait du “Linux System Administrator's Guide” The MBR, boot sectors and partition table

The information about how a hard disk has been partitioned is stored in its first sector (that is, the first sector of the first track on the first disk surface). The first sector is the master boot record (MBR) of the disk; this is the sector that the BIOS reads in and starts when the machine is first booted. The master boot record contains a small program that reads the partition table, checks which partition is active (that is, marked bootable), and reads the first sector of that partition, the partition's boot sector (the MBR is also a boot sector, but it has a special status and therefore a special name). This boot sector contains another small program that reads the first part of the operating system stored on that partition (assuming it is bootable), and then starts it.

Outils de récupération de la table de partition :


gpart http://www.stud.uni-hannover.de/user/76201/gpart/ fixdisktable http://bmrc.berkeley.edu/people/chaffee/fat32.html testdisk http://www.cgsecurity.org/ Testdisk semble le meilleur

Liens intéressants : http://www.ntfs.com/mbr-damaged.htm http://plug.linux.org.au/~steve/mbr.html#mbr

Récupération de fichiers accidentellement effacés

En plus de testdisk, tester : TestDisk (urpmi testdisk) ddrescue (http://www.gnu.org/software/ddrescue/ddrescue.html) PhotoRec (http://www.cgsecurity.org/wiki/PhotoRec) Cf. http://www.cgsecurity.org/wiki/PhotoRec

MBR écrasé : affectation lettre <-> partition perdue sous W2000

Dans les OS Microsoft les partitions sont désignées par une lettre. Sous Windows 2000 (et NT4 ?) l'affectation lettre ↔ partition dépend d'une information stockée dans le mbr. Si l'on écrase le mbr (sous DOS par fdisk /mbr, par exemple) cette information est perdue, d'où parfois impossibilité d'accéder à une session. Pour y remédier, consulter les articles suivants de la knowledge base Microsoft

Unable to Log on if the Boot Partition Drive Letter Has Changed (article 249321) HOW TO: Change the System/Boot Drive Letter in Windows (article 223188)

Clonage de partitions

Assemblages de disques

Software raid array

FreeNAS (the free NAS Server), à base de FreeBSD http://www.freenas.org/ Openfiler www.openfiler.com

technique/linux/disques.txt · Dernière modification : 2020/04/06 15:38 de 127.0.0.1