Messages étiquettés live-cd

Réparer Ubuntu après un plantage lors d’une mise à niveau

Juste un petit tuto dérivé de la procédure de restauration de Grub présenté ici pour indiquer comment réparer son système Ubuntu via un live-cd après un plantage lors d’une mise à niveau (panne de courant, erreur lors de la mise à niveau, système corrompu, …). Ce tuto est une réponse au commentaire de Craco, cette procédure lui a permis de remettre son système en état et à jour.

  • Récupérer un live-cd (ou live-usb) d’Ubuntu dans la version dont vous avez lancé la mise à niveau (pour une parfaite compatibilité)
    • Ex: Mise à niveau d’Ubuntu 10.04 à 10.10, utiliser le live-cd de la version 10.10.
  • Démarrer votre PC sur le live-cd (choisir « Essayer Ubuntu sans rien installer »)

Une fois sur le bureau, ouvrir un terminal puis saisir les commandes ci-dessous:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#! /bin/bash
 
#Passer en root:
sudo -s
 
#Monter la partition système contenant Linux sur votre disque dur: (sudo fdisk -l donne la liste des partitions, remplacer sda1 par le nom de la partition contenant Ubuntu (si nécessaire)):
mount /dev/sda1 /mnt
 
#Monter /dev, /proc et copier les points de montages dans ce point de montage:
mount -o bind /dev /mnt/dev
mount -o bind /proc /mnt/proc
cp /proc/mounts /mnt/etc/mtab
 
#Se chrooter dans ce système:
chroot /mnt

A partir d’ici nous ne travaillons plus sur le live-cd mais sur votre propre installation d’Ubuntu, bien que si vous utilisez cette procédure c’est que votre système est déjà endommagé, veuillez être prudents dans les manipulations suivantes.

Nous allons maintenant lancer plusieurs commandes afin de réparer le système:

1
sudo dpkg --configure -a && sudo apt-get clean && sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get -f install

Cette commande (5 en 1, « && » permet de lancer plusieurs commandes à la suite les unes des autres) permet (dans l’ordre) de réparer la configuration du système, purger la liste des paquets en cache, mettre à jour la liste des paquets, relancer la mise à niveau vers 10.10 (ou supérieur) et réparer les paquets brisés (dépendances manquantes pour certaines applications).

Une fois cette série de commande exécutée avec succès, vous pouvez redémarrer votre poste, votre Ubuntu devrait à nouveau être opérationnel.

Étiquettes: , , ,

Personnaliser un Live-cd (Ubuntu 9.10)

Je vous ai fait part, dans l’un de mes précédents articles, de mon intention de créer une distribution Live Ubuntu personnalisée orientée vers la récupération de données et le réseau. Voici donc la première étape, la personnalisation d’un Live-cd à partir de la version 9.10 d’Ubuntu, Karmic Koala.

Pour ceux qui ont l’habitude de ce genre de manipulations, je ne vais pas vous cacher que je me suis essentiellement servi de la documentation Ubuntu qui est d’ailleurs relativement complète à ce sujet. Vous retrouverez toutes les ressources utilisées en fin d’article. Ce tutoriel étant adapté à la personnalisation d’Ubuntu 9.10, certains éléments présentés ici ne sont pas encore dans la documentation officielle.

Récupération de l’image originale et création de la structure nécessaire:

mkdir /livecd

cd /livecd

mkdir iso squashfs

wget http://cdimage.ubuntu.com/releases/karmic/alpha-6/karmic-desktop-i386.iso

Montage et copie du contenu de l’iso:

mount -o loop karmic-desktop-i386.iso /cdrom

cp -av /cdrom/. iso

umount /cdrom

Suppression des éléments inutiles (présents pour Windows):

cd iso

rm Autorun.inf wubi.exe

rm -r pics

cd ..

Montage et copie du squashfs

infoC’est ici qu’intervient un premier problème, n’ayant pas installé Karmic Koala sur mon poste, je pensais tout de même pouvoir personnaliser le Live-cd en utilisant comme système hôte, Ubuntu 9.04. Or le squashfs présent sur Karmic Koala est en version 4, celui-ci est intégré au noyau Linux 2.6.31 et n’est pas rétrocompatible avec la version 3.3 présente dans les noyaux Linux plus anciens. Il est donc nécessaire d’utiliser un système hôte utilisant un noyau Linux >= 2.6.31. Ce qui m’a amené à effectuer toute la manipulation sur une machine virtuelle utilisant comme système le live-cd d’Ubuntu 9.10 lui-même.

Afin de compresser / décompresser le système squashfs, nous allons installer les outils nécessaires:

apt-get install squashfs-tools

Puis nous pouvons continuer la procédure:

mount -t squashfs -o loop iso/casper/filesystem.squashfs /cdrom

cp -av /cdrom/. squashfs

umount /cdrom

Préparation du chroot

mount –bind /proc squashfs/proc

mount –bind /dev squashfs/dev

mount –bind /sys squashfs/sys

cp /etc/resolv.conf squashfs/etc/resolv.conf

chroot squashfs

À partir de maintenant, nous allons effectuer des modifications directement sur le système en cours de personnalisation.

Mise à jour du système

Décommenter les lignes contenant universe dans /etc/apt/source.list afin d’activer les dépôts universe.

apt-get update

apt-get dist-upgrade

Une fois cette étape franchie, nous entrons dans le vif du sujet avec le choix des paquets à ajouter / supprimer. Les choix suivants correspondent à mes besoins, vous pouvez adapter les manipulations ci-dessous selon vos besoins.

Applications et ressources supprimées:

Suppression des langues, d’evolution et du paquet ubuntu-desktop(dépends d’evolution) afin d’alléger cette distribution.

apt-get remove –purge language* evolution pidgin ekiga

Le paquet ubuntu-desktop doit être réinstallé avant une mise à niveau vers une nouvelle distribution Ubuntu.

Applications et ressources ajoutées:

Ajout de la gestion du français et des outils sélectionnés:

apt-get install language-pack-fr language-pack-gnome-fr language-support-fr language-pack-kde-fr language-selector

apt-get install openssh-server x11vnc terminator localepurge

apt-get install foremost testdisk ntfsprogs gparted e2undel nfs-common

apt-get install thunderbird amsn iptux

Vérification des dépendances et nettoyage de la base des paquets disponibles et téléchargés:

apt-get -f install

apt-get autoremove

apt-get autoclean

apt-get clean

Sortie du chroot

rm /etc/resolv.conf

umount /sys

umount /dev

umount /proc

En cas d’erreur, ne pas en tenir compte, cela ne gênera pas la suite de la manipulation.

exit

De nombreuses autres modifications sont possibles sans rentrer dans le chroot, notamment tous ce qui concerne la modification de thèmes graphiques, les fichiers de configurations par défaut, …

Il est possible d’ajouter tout ce que l’on veut simplement en le copiant à l’endroit souhaité dans le répertoire squashfs.

Ainsi, afin de modifier plus facilement l’aspect graphique, le plus simple est de reconstruire l’iso puis de lancer celui-ci dans une machine virtuelle et d’effectuer les modifications souhaitées. Il suffira ensuite d’ajouter les fichiers modifiés au répertoire squashfs (au bon emplacement), par exemple dans squashfs/etc/skel pour que cela soit présent dans le home de tout utilisateur, puis reconstruire à nouveau l’iso.

Voici la manipulation permettant de reconstruire l’image iso:

Mettre le français en langue par défaut:

echo « fr » | sudo tee iso/isolinux/lang

Prise en compte de toutes les modifications:

chroot squashfs update-initramfs -k all -u

Reconstruire le système squashfs:

rm iso/casper/filesystem.squashfs

chmod a+w iso/casper/filesystem.manifest

chroot squashfs dpkg-query -W –showformat=’${Package} ${Version}\n’ > iso/casper/filesystem.manifest

chmod go-w iso/casper/filesystem.manifest

chmod a+w iso/casper/filesystem.manifest-desktop

chroot squashfs dpkg-query -W –showformat=’${Package} ${Version}\n’ > iso/casper/filesystem.manifest-desktop

chmod go-w iso/casper/filesystem.manifest-desktop

Compression du système squashfs:

cd squashfs

mksquashfs . ../iso/casper/filesystem.squashfs -info

cd ..

Et pour finir, la génération de l’iso:

cp squashfs/boot/vmlinuz-2.6* iso/casper/vmlinuz

cp squashfs/boot/initrd.img-2.6* iso/casper/initrd.gz

cd iso

bash -c « find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt »

cd ..

mkisofs -r -V « Libre-Astux Live CD » -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o libre-astux-live-cd-i386.iso iso

Vous voici à présent avec un Live-cd Ubuntu personnalisé. Je suis passé ici un petit peu vite sur la personnalisation de la distribution au niveau graphique car je ne m’y suis pas vraiment attardé. Je préciserai certainement ce point à la suite de billet lorsque j’y aurai regardé de plus près.

Ceux qui connaîtraient d’autres outils interressant concernant la récupération de données ou le test du matériel, n’hésitez pas à laisser ceux-ci en commentaire.


Ressources utilisées:

La documentation Ubuntu sur la personnalisation de live-cd

Documentation sur une personnalisation plus poussée (thèmes, grub, …)

Étiquettes: , , , , , , , ,

Projet – LiveCD Ubuntu personnalisé accessible par boot PXE

Bonjour à tous,

Je m’intéresse actuellement à la personnalisation d’un système d’exploitation Linux et notamment au cas des LiveCD.

Je viens de commencer un projet visant à simplifier le dépannage et la récupération de données au sein de mon réseau local.

Je vais donc rédiger au fur à mesure de l’avancement de celui-ci, une série d’articles sur la méthode utilisée et la technique mise en œuvre.

ubuntukk

Objectif:

Pouvoir démarrer tout ordinateur disposant du « boot » réseau sur une distribution Linux live personnalisée et disposant de tous les outils nécessaires afin de vérifier l’intégrité du disque dur et de la mémoire vive, de récupérer les données facilement via un partage NFS directement accessible et éventuellement afin de montrer le bon fonctionnement de Linux sur ces PC ou portables sans nécessiter de lecteurs optiques.

Le choix de la distribution:

Mon choix se porte sur Ubuntu 9.10, Karmic Koala, ce qui permettra également la mise à jour de la documentation dans ce domaine.

Les étapes:

  • Personnalisation de la distribution.
  • Tests et améliorations sur une machine virtuelle.
  • Mise en place des outils nécessaires sur le serveur (dhcp, tftp, …)
  • Création des partages NFS dédiés.
  • Déploiement de la solution.
  • Vérification du fonctionnement.

Bien évidemment, ceci ne se fera pas en 24 heures, vous pourrez suivre l’avancement de ce projet via le flux RSS de Libre Astux,

http://feeds.libre-astux.info

En attendant, de nombreux sujets intéressants sont d’ores et déjà disponible sur Libre-Astux, bonne visite à tous.

Première partie: La personnalisation d’un live-cd Ubuntu 9.10

Étiquettes: , , , , , ,

Mot de passe root oublié

Petite manipulation pour modifier le mot de passe root lorsqu’on l’as oublié et que l’on ne peut lancer le système sans lui:

Au lancement du système, que ce soit sur LiLo ou Grub, il est possible d’éditer la ligne de démarrage.

Il faut ici y ajouter

init=/bin/sh

Une fois le système lancé avec cette option, nous nous retrouvons connectés en root sans mot de passe sur un système en lecture seule.

Il nous faut donc remonter le système en lecture / écriture:

mount -rw -o remount /

Nous pouvons maintenant changer le mot de passe root:

passwd root

Il est également possible d’aller modifier directement via un éditeur, les fichiers /etc/passwd et /etc/shadow.

Le démarrage ne s’étant pas effectué entièrement, il est nécessaire de resynchroniser le système afin de s’assurer de la prise en compte des modifications.

sync

Au démarrage suivant une vérification du disque est possible.

Si cette méthode ne fonctionne pas car Grub ou LiLo empêche l’édition des lignes de démarrage, d’autres méthodes existent.

Notamment dans le cas où il est possible de démarrer via un live-cd.

Il suffit alors de quelques commandes pour arriver au même résultat.

Se connecter en root sur le live-cd:

sudo su -

Monter la partition système:

mount /dev/sdX /mnt

Copier les périphériques sur cette partition:

cp -R /dev/ /mnt/dev

Se chrooter dans la partition:

chroot /mnt

À partir de ce moment, toutes les actions effectuées ne le sont plus sur le système du live-cd mais sur votre système installé sur le disque dur. Toute mauvaise manipulation peut s’avérer désastreuse pour votre système.

Il suffit maintenant de changer le mot de passe:

passwd root

Il suffit maintenant de redémarrer le système sans le live-cd.

Étiquettes: , , , , , ,

Page optimized by WP Minify WordPress Plugin