Category Archives: Geek

Récupérer la table des partitions après une fausse manip sous Linux…

Cet article fait suite à la mésaventure arrivée à un client. Lors d’une manipulation dangereuse (sfdisk…), il a totalement écrasé la table des partitions de son disque système. Fort heureusement il a laissé son système en marche, il ne l’a surtout pas redémarré.

 

Attention, cet article s’adresse à des utilisateurs confirmés. Si vous n’avez pas l’habitude de fdisk, ou que vous avez déjà redémarré votre machine, cet article n’est pas pour vous. Si vous perdez vos données, vous en êtes responsable. Ce n’est pas parce que ça a marché dans mon cas, que ça marchera dans le votre. Les commandes données ne sont pas complètes, il ne s’agit pas d’un tutoriel. L’explication sera parlante aux personnes capables de réaliser les commandes. Bref, tout ceci pour vous dire que je ne suis pas responsable en cas de soucis sur vos données.

 

Pourquoi c’est une bonne idée de ne pas l’avoir redémarré après l’erreur ?

Lors de son démarrage, le noyau a mémorisé la table des partitions de son disque de démarrage. C’est d’ailleurs pour ça qu’on doit redémarrer la machine, ou lancer l’outil partprobe après avoir modifié la table des partitions du disque de démarrage. Sinon, la table des partitions du disque est différente de la table des partitions mémorisée par le noyau…

Heureusement qu’il n’a pas lancé partprobe /dev/sda !

En fait, il a lancé la commande. Et c’est ce qui lui a mis la puce à l’oreille. Partprobe lui a répondu par pleins d’erreurs, qui pourraient être traduites par je ne peux pas changer la table des partitions dans le noyau, car les partitions utilisées ont été modifiées. En effet, sa partition / est forcément montée, et dans la nouvelle table des partitions, elle n’existe plus. Le noyau continue donc d’utiliser l’ancienne table, puisqu’il s’appuie sur cette ancienne table pour fonctionner.

La méthode.

L’idée repose sur le fait que justement, le noyau a gardé en mémoire l’ancienne table des partitions. On va donc regarder ce qu’il a en mémoire, et remettre la même chose sur le disque. La machine ne doit en aucun cas être arrêtée ou redémarrée tant que l’opération n’est pas complète. On pourra voir ce qu’il a en mémoire à l’aide des informations accessibles dans /sys.

[root@localhost ~]# cat /sys/block/hda/hda1/start
63
[root@localhost ~]# cat /sys/block/hda/hda1/size
208782

L’opération est à refaire pour chaque partition.

[root@localhost ~]# cat /sys/block/hda/hda2/start
208845
[root@localhost ~]# cat /sys/block/hda/hda2/size
16563015

Dans mon exemple, j’ai deux partitions:

  • hda1 commençant au secteur 63 de taille 208782 secteurs.
  • hda2 commençant au secteur 208845 de taille 16563015 secteurs.
C’est donc le moment de lancer fdisk, et de détruire toutes les mauvaises partitions qu’on a créé. Je ne détaillerai pas ces opérations. Une fois que notre table des partitions est vide, on peut mettre les valeurs qu’on a trouver:
Commande (m pour l'aide): p

Disque /dev/hda: 8589 Mo, 8589934592 octets
255 heads, 63 sectors/track, 1044 cylinders
Unités = cylindres de 16065 * 512 = 8225280 octets

Périphérique Amorce    Début         Fin      Blocs    Id  Système

Commande (m pour l'aide):

Les partitions sont affichées en cylindres, ce qui ne nous arrange pas. Passons les en secteurs avec la commande u

Commande (m pour l'aide): u
Modification des unités d'affichage/saisie à secteurs

Commande (m pour l'aide): p

Disque /dev/hda: 8589 Mo, 8589934592 octets
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 secteurs
Unités = secteurs de 1 * 512 = 512 octets

Périphérique Amorce    Début         Fin      Blocs    Id  Système

Commande (m pour l'aide):
Faisons notre partition 1, début 63 et taille de 208782. Attention, quand on précise la taille, on enlève 1 à la valeur trouvée dans /sys. Je dois avouer que je ne sais pas pourquoi, mais sinon, on ne tombe pas sur un nombre de cylindres entier… Si quelqu’un a une explication plus propre, je suis preneur ;) . Donc on fera +208781.
Commande (m pour l'aide): n
Action de commande
   e   étendue
   p   partition primaire (1-4)
p
Numéro de partition (1-4): 1
Premier secteur (63-16777215, par défaut 63):
Utilisation de la valeur par défaut 63
Dernier secteur ou +taille or +tailleM ou +tailleK (63-16777215,
par défaut 16777215): +208781

Commande (m pour l'aide): p

Disque /dev/hda: 8589 Mo, 8589934592 octets
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 secteurs
Unités = secteurs de 1 * 512 = 512 octets

Périphérique Amorce    Début         Fin      Blocs    Id  Système
/dev/hda1              63      208844      104391   83  Linux

Commande (m pour l'aide):
Ça a l’air d’être ce qu’on veut. Seconde partition maintenant, début 208845 de taille 16563015, donc +16563014 pour fdisk:
Commande (m pour l'aide): n
Action de commande
   e   étendue
   p   partition primaire (1-4)
p
Numéro de partition (1-4): 2
Premier secteur (208845-16777215, par défaut 208845): 208845
Dernier secteur ou +taille or +tailleM ou +tailleK (208845-16777215,
par défaut 16777215): +16563014        

Commande (m pour l'aide): p

Disque /dev/hda: 8589 Mo, 8589934592 octets
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 secteurs
Unités = secteurs de 1 * 512 = 512 octets

Périphérique Amorce    Début         Fin      Blocs    Id  Système
/dev/hda1              63      208844      104391   83  Linux
/dev/hda2          208845    16771859     8281507+  83  Linux

Et là, oh miracle, on a retrouvé notre table originale. Un reboot permet de vérifier ça (mais attention, si vous redémarrez et que vous n’avez pas passé les bonnes tailles, il faudra alors utiliser un outil de récupération de partitions, avec les risques d’erreurs que ça engendre…).

Accéder à un LVM depuis un disque de secours

Un problème courant, avec LVM, c’est de démarrer une machine installée avec LVM depuis un support externe, et de pester car le support externe ne « voit » pas le LVM. On a parfois ce soucis en utilisant le mode rescue de certains hébergeurs de serveurs dédiés. Alors comment faire ?

Le soucis est que le système possède sans doute les outils LVM, mais ne lance pas de recherche d’installation LVM existante. Il suffit donc de lancer cette recherche à la main. La première chose à faire est de lancer (en root) la commande lvscan. Celle-ci va rechercher des signatures de type LVM parmi tous les supports de stockages de la machine. Elle devrait donc détecter nos disques LVM. Par contre, une fois les volumes logiques détectés, ils ne sont pas pour autant utilisables !

lvscan

En effet, la seconde étape va être d’activer ces groupes de volumes, car par défaut, ils sont en mode « non disponibles ». C’est ce qu’on fait avec la commande vgchange. En lui passant l’option -a y, on met les groupes de volumes en mode « disponible » (l’option -a veut dire available et le y est pour yes). La sortie de la commande doit nous afficher qu’elle a bien activé les groupes de volumes.

vgchange -a y

On peut alors les utiliser, et les monter dans notre arborescence pour continuer notre dépannage, leur contenu est utilisable.

Virtual Box très lent sous OS X 64 bits (ou comment passer OS X en 32 bits)

Lors de son démarrage, les MBP équipés du processeur i7 (et sans doutes d’autres) démarrent avec un noyau 64 bits.

Malheureusement, avec un noyau en 64 bits, VirtualBox devient extrêmement lent (affichage du menu GRUB en plus d’une minute…). Moi qui utilise beaucoup les machines virtuelles pour mon activité, me voilà bien embêté. Un ticket est ouvert chez VirtualBox pour le moment, mais pas de correctif publié.

Une solution temporaire est de reconfigurer le Mac pour qu’il démarre en 32 bits (à priori, peu de contres indications au mode 32 bits, les programmes 64 bits continuent de fonctionner). Pour ça, on a le choix:

  • Au boot du Mac, il faut appuyer simultanément sur 3 et 2. Pratique pour le faire une fois de temps en temps, mais pas très pratique pour les têtes en l’air qui oublieraient !
  • Rendre le changement permanent à l’aide de la commande « sudo systemsetup -setkernelbootarchitecture i386″. La commande « sudo systemsetup -setkernelbootarchitecture x86_64″ permettant de revenir au boot par défaut en 64 bits. Attention, ça ne marche pas si on change de disque de démarrage bien sûr.

Voilà, maintenant mon VirtualBox fonctionne, je peux travailler normalement !

Wikileaks vs gouvernements ou le 1.0 vs 2.0

Tout le monde y va de sa plume à propos des fuites de Wikileaks et des réactions politiques. Comme lu dans de nombreux blogs (notamment les excellents articles de Stéphane Bortzmeyer, de Jean-Noël Lafargue, de J.M. Planche, ou encore d’Authueil) beaucoup de monde  a l’impression qu’une bascule est entrain de s’établir. Contrairement à ce que beaucoup pensent, ce n’est pas le contenu de Wikileaks qui est en jeu, mais plutôt l’avenir de la presse et de la liberté d’expression sur Internet. Rien de moins.

Beaucoup de personnes ont pris la défense de Wikileaks, non pas parce que les révélations du cablegate sont fracassantes, mais bel bien en raison de l’acharnement sur Wikileaks. Cet acharnement n’est pas sans conséquences:

  • Le contrôle d’Internet. En effet, malgré ce qu’on peut lire, les révélations de Wikileaks semblent bien n’avoir rien d’illégal, Wikileaks étant un organe de presse (enregistré en tant que tel en Islande). De plus, les précédents de divulgation d’informations secrètes du gouvernement américain, notamment du New York Times, vont dans le sens de la protection des sources et de la légalité de publication des informations. Alors où est le problème ? Les journaux révélant les télégrammes américains ne sont pas poursuivi avec autant d’acharnement… Wikileaks représente la nouvelle génération, cette chose moderne, vivant sur l’Internet incivilisé que beaucoup de politiciens ne comprennent pas. Et comme à chaque rupture, ce qu’on ne comprend pas fait peur. Et on doit arrêter ce qui fait peur. Coûte que coûte. Surtout que cette chose incontrôlable vit sur cet Internet incivilisé, lui aussi particulièrement mal compris, et qui fait peur également. Le prétexte est là, la gravité présentée des faits alimente les discours, il faut donc éviter que cette catastrophe arrive à nouveau. Faisons donc taire Wikileaks, sur ce réseau qu’on ne comprend pas. Et ça passe forcément par le contrôle de ce qui y circule, les prémices étaient là (projets de lois LOPSSI 2 pour chez nous par exemple).
  • L’image de la démocratie. Le peuple d’Internet (que je différencie pour l’instant du peuple tout court) est choqué par la tournure des événements. Et comme une bonne partie d’Internet fonctionne grâce à ce peuple d’Internet, il fait ce qu’il sait faire: il réagit. Chacun à sa manière: messages sur les blogs, sur twitter, sur facebook, etc… Ce peuple essaie de faire fonctionner la liberté d’expression comme il l’entend, loin des sirènes politico-marketing. Pour avoir au moins un semblant de démocratie et de lutter contre ce qui lui semble injuste.
  • La révolte des geeks. J’aurais pu l’appeler la révolte des informaticiens, mais je crois que c’est plus général que ça. Les geeks, tels que je les entends dans cet article, font partie du peuple d’Internet, mais ils en connaissent le fonctionnement. Et savent agir sur son fonctionnement. Depuis longtemps ils travaillent sur le réseau, quelquefois à contre coeur, en connaissant bien l’extraordinaire liberté qu’il offre. Mais à force de taper sur le geek, de le mettre à la mode (Fillon se voit comme un geek…!?), le geek se révolte. Alors, quel est le danger de l’adolescent boutonneux qui s’amuse derrière son ordinateur pendant que les parents dorment ? Assez faible, sauf que…. le geek n’est plus cet adolescent depuis longtemps. Le geek travaille sur Internet, le geek fait tourner Internet, héberge les sites gouvernementaux, fait tourner les usines, les infrastructures (électricité, télécom, transports, eau…). Si le geek met un grain de sable dans les rouages, tout ce qui tourne sur des ordinateurs s’arrête, le monde s’arrête. J’exagère un peu, mais le pouvoir que les geeks ont entre les mains est absolument gigantesque.

Alors, d’un coté on a des gouvernements, préoccupés par leurs problèmes, dans leur sphère qu’ils veulent impénétrable, à traiter de choses trop importantes pour que les gens de la base, le peuple, ne puisse le comprendre, à leur cacher ces choses là.

De l’autre coté on a un peuple maîtrisant le fonctionnement de l’Internet, las de voir se détruire les démocraties dans lesquelles ils ont grandi, las de voir disparaître les libertés qu’ils avaient.

Alors, la célèbre phrase attribuée par erreur à Voltaire, se trouve magnifiée, « Je ne suis pas d’accord avec ce que vous dites, mais je me battrai pour que vous puissiez le dire ». Au résultat, les défenseurs de la liberté d’expression, de la liberté de penser, font front pour permettre à Wikileaks d’exister, de continuer à exister et à vivre.

Quelles seront les conséquences. Sans consulter ma boule de cristal, je dirais qu’elles risquent d’être nombreuses. Que les états, les gouvernants vont vouloir prendre le contrôle à tout prix, de ce réseau incontrôlable. Que le peuple d’Internet va sans doute vouloir rappeler, violemment peut-être, que ces gouvernants ne sont là que pour servir le peuple, et que quand ils ne parlent plus en son nom, ils n’ont plus de légitimité. J’ai bien peur que la guerre des uns contre les autres ne soit pas si éloignée. Wikileaks n’ayant été, au final, que le catalyseur de la révolte du peuple d’Internet. Un conflit de générations en somme.

VPN et anonymat

Depuis la sortie de la loi HADOPI, on voit fleurir de plus en plus d’offres de VPN supposées nous rendre anonymes de tout téléchargement. La solution du VPN paraît donc la parade absolue, mais est-ce vraiment le cas ?

Tout d’abord, VPN, qu’est-ce que c’est ? VPN est l’acronyme de Virtual Private Network (Réseau privé virtuel). L’objectif est de créer une sorte de tuyau virtuel entre deux ordinateurs. Tout ce qui transite dans le tuyau est incompréhensible par une personne extérieure aux deux ordinateurs. Jusqu’ici, rien d’anonyme.

Mais alors, à quoi sert un VPN ? Prenons un exemple d’actualité. Une faille de confidentialité a été récemment mise en avant sur la méthode habituellement utilisée par un site web pour se souvenir de nous. En effet, une petite extension de Firefox permet de surveiller les gens qui se connectent en wifi autour de nous. Elle regarde les données échangées entre une personne et Internet. Et lorsqu’elle voit une personne connectée sur Facebook (par exemple), elle mémorise l’objet, échangé entre l’ordinateur et Internet, qui sert à Facebook de savoir sous quel utilisateur on s’est connecté. Elle peut ensuite l’envoyer depuis l’ordinateur qui surveille, et Facebook lui présentera la page qu’il présenterait à l’utilisateur surveillé. Ce n’est qu’un exemple, on pourrait le multiplier (on peut récupérer ce qui est dit entre deux personnes, par msn, voir un certain nombre de mails lus, les sites visités…). En gros, tout ce qu’on fait sur Internet quand on se connecte en Wifi sur un point d’accès ouvert est visible par tous les autres utilisateurs. Le VPN a pour objectif de rendre cette tâche plus complexe. Au lieu de laisser l’ordinateur de la victime envoyer des données au serveur de Facebook, ces données sont chiffrées et envoyées à un autre ordinateur, qui aura pour travail de les déchiffrer et de les envoyer à Facebook. Ainsi, tout ce qu’on fait sur Internet n’est pas directement envoyé sur Internet, mais chiffré et envoyé à un autre ordinateur qui nous sert de relai. Dans ce cas, plus personne ne peut voir ce qu’on fait sur Internet…

C’est parfait alors, je peux faire ce que je peux sur Internet, on ne le saura pas ! Justement, c’est là que le bât blesse. Revenons aux fondamentaux comme on dit. Qu’est-ce que l’anonymat ? C’est être quelqu’un dont on ignore l’identité et/ou le nom. Il est très difficile d’être anonyme sur Internet. Nos actions, nos visites de sites web trahissent qui nous sommes. Si un fournisseur d’accès ne peut savoir quelles sont les actions que l’on fait sur Internet si on utilise un VPN, celà ne nous rend pas invisible. Il ne faut pas mélanger la confidentialité et l’anonymat.

Je ne comprends pas bien, si je me connecte avec un VPN, et que je télécharge de la musique, comment on peut me retrouver ? Mon fournisseur de VPN me garantit qu’il n’enregistre rien me concernant ! Il y a plusieurs façons d’identifier quelqu’un sur Internet. Tout d’abord, si le fournisseur du VPN est en Europe, il a des contraintes légales. Il est sensé conserver les informations de connexion pendant une durée de 6 mois à 2 ans suivant la législation du pays. C’est une première étape. Ensuite, à moins de n’utiliser son accès Internet que pour télécharger, nos actions nous trahissent. Il n’est alors pas très difficile, dans le cas d’une plainte, de demander à Facebook, Myspace, Twitter, Live (et d’autres) s’ils ont eu une connexion provenant de l’adresse IP du VPN. À partir du moment où on s’est identifié quelque part il devient possible d’être « désanonymisé ». Même en faisant très attention, notre ordinateur le fait pour nous. On laisse beaucoup de traces sans le faire exprès.

Si je comprends bien le VPN ne me permet pas d’être anonyme, et je risque d’être identifié si je fais des actions prohibées ! Mais alors, à quoi sert le VPN ? Comme je le disais plus haut, le VPN permet de masquer nos actions entre notre ordinateur et le serveur du VPN. On ne peut plus espionner nos actions depuis ce point là. Il permet donc également, par effet de bord, de contourner les restrictions d’usage que peuvent nous imposer certains fournisseurs d’accès.

Je ne peux pas vraiment être anonyme sur Internet alors ! Si, c’est beaucoup plus complexe que de se connecter simplement à un VPN. Au lieu d’utiliser un VPN, on peut utiliser des réseaux d’anonymisation, comme Tor par exemple. Et pour éviter que notre ordinateur nous « désanonymise » par accident, on ne se connectera pas avec notre système habituel, mais en démarrant depuis une clé USB ou depuis une machine virtuelle dédié à ça. De plus, la vitesse à laquelle on se connecte sur ce genre de réseau rend quasiment impossible tout téléchargement.

Je comprends, si je veux être anonyme, je peux, mais c’est très lourd à faire. Par contre, je peux m’assurer que mon fournisseur d’accès ne peux pas voir ce que je fais à l’aide du VPN. La confidentialité, c’est ne pas montrer ce qu’on fait, l’anonymat c’est ne pas savoir qui le fait ! Tout à fait. Comme lorsqu’on se rend dans l’isoloir. On n’est pas anonyme, par contre notre choix est confidentiel !