Tag: Systèmes de fichiers

Cet été, j’étais en vacances. et en vacances, on ne réfléchit pas trop.

Bref, à un moment, une personne de ma famille m’a amené son portable en me demandant de supprimer Ubuntu de son disque dur afin de redonner de l’espace à Windows. J’aurais préféré faire le contraire, mais là n’est pas le propos.

Ayant toujours un live cd de Ubuntu sur moi, j’ai démarré l’ordinateur sur le cd, et à l’aide du gestionnaire de partitions, j’ai supprimé les partitions / et swap, et redonné l’espace à la partition Windows.

Au redémarrage, je me suis retrouvé avec une belle erreur de grub (qui est placé sur le master boot record) me disant qu’il ne trouve plus la partition racine (normale, puisque je l’avait effacée). Impossible donc de démarrer l’ordinateur avec ce MBR défectueux.

Voulant réparer le MBR, j’ai redémarré sur le livecd, et j’ai cherché un moyen de refaire le MBR. Ma deuxième erreur a été de lire trop vite le manuel de fdisk. En effet, j’ai lu le paragraphe suivant :

The  bottom  line is that if you use cfdisk or fdisk to change the size
of a DOS partition table entry, then you must also use dd to  zero  the
first 512 bytes of that partition before using DOS FORMAT to format the
partition.  For example, if you were using cfdisk to make a DOS  parti‐
tion table entry for /dev/hda1, then (after exiting fdisk or cfdisk and
rebooting Linux so that the partition table information is  valid)  you
would  use the command "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" to
zero the first 512 bytes of the partition.

par contre, j’ai complètement ignoré le paragraphe suivant :

BE EXTREMELY CAREFUL if you use the dd command, since a small typo  can
make all of the data on your disk useless.

J’ai donc lancé un :

dd if=/dev/zero of=/dev/hda1 bs=512 count=1

qui ne m’a pas du tout réparé le MBR, mais qui a flingué les 512 premiers bits de ma partition Windows.

Après avoir réfléchi un peu à la situation, je me suis dit : MAIS QUEL CRÉTIN CE GARS !!!

Après avoir chercher un peu dans la mallette du portable, j’ai trouvé un beau CD de Windows XP, qui m’a donné la solution à mon premier problème :

Restauration du Master boot Record Windows

Afin de restaurer le MBR pour Windows, il suffit de lancer l’installation de Windows, puis de passer en mode réparation (R). Il s’ouvre alors une console, où il suffit de taper :

fixmbr c:

Une fois le PC redémarré, cela fonctionne correctement, lorsqu’on a pas flingué les partitions.

J’ai donc ensuite cherché comment réparer une partition NTFS cassée, et là, j’ai retrouvé mon couteau suisse : l’outil testdisk (évoqué dans la restauration de données dans un article précédent).

Restauration d’une partition NTFS abimée

lancer testdisk en tant que root.

Au démarrage, le programme propose trois choix :

[ Create ]  Create a new log file
[ Append ]  Append information to log file
[ No Log ]  Don't record anything

c’est juste pour les logs, donc, on choisit ce qu’on veux.

Puis choisir son disque, puis l’entrée [ Intel ]  Intel/PC partition.

Ensuite il faut aller dans [ Advanced ]  Filesystem Utils.

On se retrouve alors devant la liste des partitions du disque.

Il suffit alors de choisir la partition NTFS cassée, et de lancer le menu [Repair MFT]. TestDisk va alors récupérer la sauvegarde de la table principale des fichiers (Master File Table Mirror), et écrase ensuite la MFT avec.

Une fois fini, j’ai quand même été obligé de reprendre le cd d’installation de XP et de repasser en mode réparation, puis de taper la commande fixboot c:

Voilà pour mes aventures de l’été…

moralité, toujours réfléchir à deux fois avant de faire une connerie.

Et du coup, je me pose la question : Est-ce qu’un utilisateur lambda est vraiment libre de sortir du monde libre ? Ca n’est pas si facile que ça de supprimer Linux… Moins facile que d’y entrer… Moralité :  Il faut pas en sortir !

Tags: , , , , , ,

Afin de surveiller ou de debugger l’activité d’un système, Linux dispose d’un certain nombre d’outils en ligne de commande permettant d’analyser les différentes interfaces d’entrée/sortie de l’ordinateur, ainsi que l’activité du processeur.

Le réseau

Netstat

Netstat est installé par défaut sur le système.
C’est un peu comme un couteau suisse. Il permet d’afficher un certain nombre de valeurs utiles pour analyser son système. Je vais ici détailler un certain nombre de ses fonctionnalités.

  • netstat -r : affiche la table de routage

$ netstat -r
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic   MSS Fenêtre irtt Iface
192.168.0.0     *               255.255.255.0   U         0 0          0 eth0
link-local      *               255.255.0.0     U         0 0          0 eth0
default         intranet.matao. 0.0.0.0         UG        0 0          0 eth0

  • netstat – i : étudier les interfaces réseaux

$ netstat -i
Table d'interfaces noyau
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0   1500 0  11760731      0      0      0  8853487      0      0      0 BMRU
irda0  2048 0         0      0      0      0   136234      0      0      0 ORU
lo    16436 0        24      0      0      0       24      0      0      0 LRU

Il est a noter que si vous voulez exécuter cette commande en boucle, il suffira de taper : $ watch -n 0 "netstat -i"

  • netstat -4epn : étudier les connexions réseaux et leur état

$ netstat -4epn
(Tous les processus ne peuvent être identifiés, les infos sur les processus
non possédés ne seront pas affichées, vous devez être root pour les voir toutes.)
Connexions Internet actives (sans serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       Utilisatr  Inode      PID/Program name  
tcp        0      0 192.168.0.3:57858       209.85.136.210:5222     ESTABLISHED1000       82324      5730/pidgin        
tcp        0      0 192.168.0.3:52573       129.20.130.77:5222      ESTABLISHED1000       82302      5730/pidgin        
tcp        0      0 192.168.0.3:54030       192.168.0.10:1492       ESTABLISHED1000       243852     9261/ssh           
tcp        0      0 192.168.0.3:1011        192.168.0.2:2049        ESTABLISHED0          18905      -                  
tcp        0      0 192.168.0.3:37600       207.46.111.26:1863      ESTABLISHED1000       82370      5730/pidgin        
udp        0      0 192.168.0.3:32776       192.168.0.2:514         ESTABLISHED0          25878      -                  

En remplacant le 4 par un 6, on obtient la même chose pour les connexions IPV6.

  • netstat -tulp : étudier quel processus ouvre quel port sur la machine

$ sudo netstat -tulp
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       PID/Program name  
tcp        0      0 *:35855                 *:*                     LISTEN     4081/rpc.statd     
tcp        0      0 *:sunrpc                *:*                     LISTEN     4063/portmap       
tcp        0      0 *:ipp                   *:*                     LISTEN     4861/cupsd         
tcp        0      0 *:50973                 *:*                     LISTEN     -                  
tcp6       0      0 *:ssh                   *:*                     LISTEN     4807/sshd          
tcp6       0      0 *:ipp                   *:*                     LISTEN     4861/cupsd         
udp        0      0 *:32768                 *:*                                4081/rpc.statd     
udp        0      0 *:32769                 *:*                                5204/avahi-daemon: 
udp        0      0 *:bootpc                *:*                                5443/dhclient      
udp        0      0 *:865                   *:*                                4081/rpc.statd     
udp        0      0 *:mdns                  *:*                                5204/avahi-daemon: 
udp        0      0 *:sunrpc                *:*                                4063/portmap       
udp        0      0 *:ipp                   *:*                                4861/cupsd         

  • netstat –unix -p : étudier quel sockets sont ouverts par quel processus

$ netstat --unix -p
(Tous les processus ne peuvent être identifiés, les infos sur les processus
non possédés ne seront pas affichées, vous devez être root pour les voir toutes.)
Sockets du domaine UNIX actives (sans serveurs)
Proto RefCpt Indicatrs   Type       Etat          I-Node PID/Program name    Chemin
unix  2      [ ]         DGRAM                    8304     -                   @/com/ubuntu/upstart
unix  2      [ ]         DGRAM                    8477     -                   @/org/kernel/udev/udevd
unix  2      [ ]         DGRAM                    15377    -                   @/org/freedesktop/hal/udev_event
unix  3      [ ]         STREAM     CONNECTE      241387   -                  
unix  3      [ ]         STREAM     CONNECTE      241386   9238/gnome-terminal
unix  3      [ ]         STREAM     CONNECTE      241367   9238/gnome-terminal /tmp/orbit-matao/linc-2416-0-c52717c558a1
unix  3      [ ]         STREAM     CONNECTE      241365   5718/bonobo-activat
unix  3      [ ]         STREAM     CONNECTE      241364   5718/bonobo-activat /tmp/orbit-matao/linc-1656-0-495dbdbdb1759
unix  3      [ ]         STREAM     CONNECTE      241363   9238/gnome-terminal
unix  3      [ ]         STREAM     CONNECTE      241362   9238/gnome-terminal /tmp/orbit-matao/linc-2416-0-c52717c558a1
unix  3      [ ]         STREAM     CONNECTE      241361   5691/gconfd-2      
unix  3      [ ]         STREAM     CONNECTE      241358   5691/gconfd-2       /tmp/orbit-matao/linc-163b-0-2a789197b028
unix  3      [ ]         STREAM     CONNECTE      241357   9238/gnome-terminal
unix  3      [ ]         STREAM     CONNECTE      241355   5649/x-session-mana /tmp/.ICE-unix/5649

ifstat

ifstat est un paquet, qui doit être installé par :

sudo aptitude install ifstat

Ifstat permet de surveiller l’activité réseau :

$ ifstat -WatTzb
  Time           eth0                 lo                Total      
HH:MM:SS   Kbps in  Kbps out   Kbps in  Kbps out   Kbps in  Kbps out
01:19:07      2.80      3.32      0.00      0.00      2.80      3.32
01:19:08      0.52      1.39      0.00      0.00      0.52      1.39
01:19:09      0.52      1.39      0.00      0.00      0.52      1.39
01:19:10      0.52      1.39      0.00      0.00      0.52      1.39
01:19:11      0.52      1.39      0.00      0.00      0.52      1.39

en ajoutant l’option S, soit ifstat -WatTzbS, on obtient le résultat sur une seule ligne, mais du coup, on perd l’historique des valeurs.

iftop

sudo apt-get install iftop

petit utilitaire à la top, permettant de voir la consommation en bande passante de chaque connexion réseau de votre ordinateur.

L’activité des disques

iostat

Pour installer iostat :

sudo apt-get install sysstat

iostat permet de surveiller l’activité des disques en temps réel. pour cela, tapez :

$ iostat -tmdx 1

Heure: 01:29:17
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
fd0          0,00   0,00  0,00  0,00    0,00    0,00     0,00     0,00     2,00     0,00   64,00  64,00   0,00
hda          0,01   2,20  0,24  0,60    9,36   22,35     0,00     0,01    38,16     0,08   98,13   8,99   0,75
hdb          0,08   3,92  0,68  0,42   34,48   34,75     0,02     0,02    62,74     0,02   15,65   6,73   0,74

Heure: 01:29:18
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
fd0          0,00   0,00  0,00  0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00
hda          0,00   0,00  0,00  0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00
hdb          0,00   0,00  1,00  0,00  256,00    0,00     0,12     0,00   256,00     0,04   40,00  40,00   4,00

Heure: 01:29:19
Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
fd0          0,00   0,00  0,00  0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00
hda          0,00   0,99  0,00  2,97    0,00   31,68     0,00     0,02    10,67     0,05   16,00   8,00   2,38
hdb          0,00   0,99  1,98  1,98  506,93   23,76     0,25     0,01   134,00     0,10   24,00  24,00   9,50

Les processeurs

iostat

iostat permet également de surveiller l’activité du processeur :

$ iostat -tmcx 1

Heure: 01:31:33
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2,26    0,02    0,86    0,67    0,00   96,20

Heure: 01:31:34
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,99    0,00    0,00    0,00    0,00   99,01

Heure: 01:31:35
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,00    0,00    0,00    0,00    0,00  100,00

htop

s’installe par : sudo apt-get install htop

htop ressemble à top, mais il a trois gros avantages :

  • Il est en couleur
  • Il est utilisable à la souris
  • Les commandes sont intuitives

mpstat

Permet de surveiller l’activité des différents processeurs ou coeurs, cette application est également disponible dans le paquet sysstat.

$ mpstat 1

01:35:33     CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
01:35:34     all    0,00    0,00    1,00    0,00    0,00    0,00    0,00   99,00    430,00
01:35:35     all    0,00    0,00    0,00    0,00    0,00    0,00    0,00  100,00    412,87
01:35:36     all    0,00    0,00    0,00    0,00    0,00    0,00    0,00  100,00    272,00
01:35:37     all    0,00    0,00    0,00    0,00    0,00    0,00    0,00  100,00    269,31
01:35:38     all    0,00    0,00    0,00    0,00    0,00    0,00    0,00  100,00    276,00
01:35:39     all    0,00    0,00    0,00    1,98    0,00    0,00    0,00   98,02    340,59

Evidemment, cette commande s’avère surtout utile lorsqu’on a plusieurs processeurs ou coeurs.

Voilà pour ce petit inventaire, qui ne se veut pas exhaustif, mais qui donne quelques pistes pour mieux analyser son système en cas de problème.

Tags: , , , ,

L’autre jour, je récupère un serveur (un Dell PowerEdge 2400). avec 4 disques SCSI :

  • 1 disque de 10Go
  • 1 disque de 16Go
  • 2 disques de 30 Go

je me dis : “LVM, ça marche sous Solaris, sous AIX… ca va le faire sous Ubuntu !” Du coup, j’utilise le premier disque comme racine, et je suis ce tutoriel qui explique comment mettre en place LVM.
j’agrège donc les 3 autres disques (sdb,sdc et sdd) pour me faire une partition de données de 76Go (le gars qui fait un peu trop confiance à ses disques) et je met un filesystem ext3.
Mais voila, 15 jour plus tard, après avoir passé toutes mes données sur ce serveur, le premier disques des 3 meurt inopinément…
Et là… c’est le drame !

› Continue reading…

Tags: , , , ,