systemx

Aller au contenu | Aller au menu | Aller à la recherche

mardi, octobre 23 2012

comment installer plusieurs linux sur un PC (2ème partie)


Après les explications sur le partitionnement et le boot loader sur cette page, on démarre avec l'installation via un Live CD.
Sur l'installation proprement dite, on verra uniquement le partitionnement et le boot loader qui sont à peu près identiques sur tout les distributions linux.
A noter que bien souvent grub est installé sans choix pour l'utilisateur, se reporter sur la partie post installation pour savoir comment retrouver sa configuration ou comment la customiser.
Les explications de post installation comprennent aussi des trucs pour pouvoir retrouver l’environnement utilisateur quel que soit l'OS sur lequel on boote.
Le partitionnement
On retrouve donc la partition nommée Suse (/dev/sda1) qui sera la cible de l'installation et la partition de swap devrait être détectée et utilisée automatiquement (à vérifier selon la distro).
suseinst3.png

On choisit la partition sda1, on la formate et lui assigne la partition / qui contient donc l'ensemble du système.
suseinst4.png
Cette partition sera référencée dans le boot loader et le fichier fstab sur le filesystem qui sera crée lors de l'installation.
Il n'y aura pas de confusion avec les autres partitions des autres systèmes car c'est le boot et les données sur la partition qui déterminent l'usage.
Au final on aura un partitionnement simple :
  1. /dev/sda1 => /
  2. /dev/sda6 => swap

Le boot loader
La deuxième partie est le boot loader qui va crée l'amorce de partitionnement qui pointera vers votre nouvel os.
Il faut installer grub (c'est parfois optionnel) sous peine de ne pas avoir de fichier de boot dans le repertoire /boot.
Je choisis dans l'exemple de l'installer sur la partition racine, cette étape va me faire perdre le boot loader qui est situé sur la partition /boot de Sabayon, je montrerai plus tard comment trouver ma configuration d'origine.
suseinst8-2.png
Ne pas oublier de créer un utilisateur générique à toute vos installations qui sera local (non partagé) appelé par exemple admin et qui possède les droits admin (sudo).
On termine l'installation et on reboote (à noter que Suse fait une installation en 2 étape, au reboot il faut la terminer).


Post Installation
Lorsque l'installation est terminée on a grub qui pointe vers notre nouvelle distribution. On reboot sur celle ci pour :
  1. Récuperer l'ancienne config GRUB
  2. Configurer le système pour accéder aux données et home dir
  3. Faire un mini tuning de l'install


Grub :
Examinons attentivement le grub.cfg (/boot/grub/grub.cfg) généré par Suse, il serait certainement identique quelque soit la distribution car il est généré par des commandes grub.
On peut d'ailleurs voir que sont présentes toutes les partitions bootables du disque (windows inclus) dans le fichier de config.
L'entrée opensuse est la suivante :
menuentry 'openSUSE 12.2' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-10d4ccec-af7f-41e1-818a-a557634f038e' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
         ......
        echo    'Loading Linux 3.4.6-2.10-desktop ...'
        linux   /boot/vmlinuz-3.4.6-2.10-desktop root=UUID=10d4ccec-af7f-41e1-818a-a557634f038e   resume=/dev/disk/by-id/ata-ST9500325AS_5VE922ZR-part6 splash=silent quiet showopts
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd-3.4.6-2.10-desktop
}
On y voit le texte du menu qui apparaît lors du boot, des chargements de modules, un peu de blahblah puis enfin les lignes intéressantes linux et initrd qui sont le boot en 2 étapes de linux.
  1. initrd
  2. Initrd est en fait un mini disk RAM (initramfs) qui permet de charger certains drivers (liés au disque, driver IDE/SCSI/RAID..) pour permettre ensuite d’accéder au filesystem ROOT (/) où est installé le système. Ce disque est en général lié au kernel mais on peut booter sur un initramfs d'une distro A pour lancer le boot d'une distro B.
  3. linux
  4. C'est là le noyau qui va nous permettre de booter le système réel avec un paramètre extrêmement important root= qui donne la partition / à utiliser et donc pour booter. Il est à noté que il n'est pas écrit /dev/sda1 mais UUID=10d4cc.... C'est un système d'identification des devices différent que certains apprécient, je le change systématiquement ensuite par /dev/sda (voir plus bas).
    On y voit aussi resume= c'est utilisé lors de l'hibernation pour copier les données RAM -> disque.
    Ensuite des options pour principalement faire joli avec un splash et cacher les messages.

Les autres entrée sont du même format (sauf windows), par exemple pour Sabayon j'ai :
linux   /boot/kernel-genkernel-x86_64-3.5.0-sabayon ro root=/dev/sda9 pcie_aspm=force i915.i915_enable_rc6=1 resume=/dev/sda6
initrd  /boot/initramfs-genkernel-x86_64-3.5.0-sabayon

Ces options sont en fait crée suivant les entrées du fichier /etc/default/grub et c'est la que nous allons faire un peu de tunning.
  1. Utiliser les nom de device /dev au lieu des UUID
  2. Décommenter la ligne GRUB_DISABLE_LINUX_UUID=true
  3. Ajout d'autres paramètres
  4. Si l'installeur ne le fait pas ajouter resume=/dev/... pour permettre le retour de mode d’hibernation ou d'autre parametres type quiet ou le splash screen de boot. Utiliser GRUB_CMDLINE_LINUX= ou si non présent GRUB_CMDLINE_LINUX_DEFAULT=
Ensuite pour regénérer le fichier grub.cfg, il faut utiliser la commande grub-mkconfig (ou grub2-mkconfig) -o /boot/grub/grub.cfg.
On peut aussi ensuite fixer la partition cible de boot, pour ce faire le mieux est de booter sur la distribution de référence pour grub puis de lancer la commande :
grub-install /dev/sda
On utilisera la partition /dev/sda sans chiffre pour désigner le disque et donc le secteur de boot.
Recupération ancienne configuration grub
Donc si on veut reprendre la configuration grub d'avant notre installation il faut rebooter sur la distrib voulue puis tout simplement lancer :
  1. grub-mkconfig -o /boot/grub/grub.cfg
  2. Pour mettre à jour la liste des OS, faire une vérification car grub2 a tendance à oublier des distribs.
  3. grub-install /dev/sda
  4. Va updater le boot loader afin de booter sur la parition de boot courante. /dev/sda est a adapter en fonction de votre machine.

Partager les données et home dir
Les fichiers de données sont dans une partition dédiée (appelée ici /data de la partition /dev/sda4) , l'idée est de mettre sur cette même partition les homes dir des utilisateurs que l'on voudra partager entre les distribs.
Pour ce faire il suffit d'utiliser des liens et de synchroniser les UID/GID.
Il faut dont établir une petite stratégie.
On choisit un groupe pour les utilisateurs locaux par exemple local et on donne un numéro ni trop grand ni trop petit exemple 10000.
De la même manière pour les utilisateurs, on part de 10000 pour pierre, le suivant sera 10001 pour paul ...
On créé ou modifie le user dans la distribution de référence et on change la home directory vers de pierre et paul vers /data/home/pierre et /data/home/paul.
mkdir /data/home
cd /home 
mv pierre /data/home/
mv paul /data/home/ 
ln -s /data/home/pierre
ln -s /data/home/paul
On ne déplace pas /home en entier pour pouvoir garder des utilisateurs locaux comme admin dont j'ai parlé lors de l'installation.
Après l'installation des distributions suivantes il suffit de recréer les utilisateurs/groupes à l'identique, monter la partition /data dans la fstab et faire les liens nécessaires pour retrouver son environnement et ses données.
Pour chaque nouvelle installation, il faut donc monter la partition dans la fstab et refaire les étapes précédentes.
sabayon ~ # grep /data /etc/fstab 
/dev/sda4               /data           ext4    defaults        0 2
Pour l’environnement de root j'ajoute ceci en fin du /root/.bashrc des nouvelles installations :
if [ -f /data/system/bashrc ] ;
then
        . /data/system/bashrc
fi
Pour les utilisateurs de KDE, notez que certaines distributions mettent la home KDE dans .kde (debian like) et d'autres dans .kde4 (gentoo, arch, suse), c'est assez pratique car les versions de kde debian/ubuntu sont moins recentes.
Un exemple de script de synchro est disponible ici.

comment installer plusieurs linux sur un PC (1ère partie)

Ce tuto présente l'installation de plusieurs OS linux sur un même PC, orienté débutant/intermédiares.
Le but est d'avoir plusieurs distributions linux installées et le menu de boot qui permet de choisir où booter.
Je conseille d'avoir toujours 2 distro au moins d'installées pour les bidouilleurs et autre "rolling release bleeding edge users" au cas où une update se passe mal..
Ca prends peu de place et c'est toujours utile, ça permet de plus de temps en temps de changer d'OS juste pour le plaisir.
Avec un partitionnement bien fait on peut retrouver toute ses données quelque soit le linux installé, c'est sur ce partitionnement que se concentre cette première partie

Introduction :
  1. Les bases
  2. Pour installer plusieurs OS sur une même machine il est important de penser à 2 choses.
    Le partitionnement du disque et le boot loader (le programme qui permet de demarrer un OS).
    Dans ce tuto je vais expliquer ces parties en détails avec quelques trucs pour les problèmes courants.
  3. Les partitions
  4. Un disque PC est portionnable en seulement 4 partitions (appelées partitions primaires), pour contourner cette limitation on peut créer des partitions logiques. Pour ce faire on doit alors créer une partition étendue qui contiendra ces partitions logiques. On pourra alors faire par exemple 3 partitions primaires et une partition étendue contenant N partitions.
    Par exemple :
    2 partitions squattées pour Windows.
    1 partition de données
    1 partitions étendue avec N partitions contenant les installs linux.
    Linux est souple et une partition étendue permet de gérer autant de linux que l'on veut (ou presque). A noter que je prends en général 20Gb pour une partition / avec tout sauf les données.
  5. Le boot loader
  6. Le boot loader permet de définir comment booter à partir de ce que l'on appelle le MBR.
    Le gestionnaire de boot utilisé est grub et devra etre installé sur ce MBR puis configuré.
  7. Les partitions et les données
  8. Afin de trouver les données utilisateur entre chaque OS, on créera une partition que j'appellerai data et qui contiendra tout ce qui n'est pas lié à l'OS.
    Celui ci sera installé sur une partition (appelée / partition racine) et partagera la partition de swap avec les autres OS (pour ne pas les multiplier). Les partitions linux peuvent etre primaire ou logiques.
    Il faudra ensuite faire les liens et montages judicieux pour travailler indifféremment sur une des distro installées.
Les outils
Avant de commencer il faut un OS linux installé ou un média de boot (type liveCD avec gparted) qui sera probablement la source d'installation.
J'utiliserai une Suse linux en OS à installer (qui est bien car l'installeur est très précis) et ferais les préparations sur un linux déjà installé.
Sur des distributions avancées type gentoo ou arch linux on peut installer directement à partir d'un OS sans iso ni distro, ce sera exactement les même concepts, mais c'est une autre histoire.

Le Partitionnement :
Voici le partitionnement actuel de mon PC : gparted1.png
On y voit une parition non alloué puis sda2 qui sont les partitions windows (quel gâchis, 2 parititions primaires pour un OS).
Ensuite sda3 est une partition étendue qui contient des partitions logiques qui sont les partitions utilisées pour linux, les labels sont informatifs et gérés par la commande e2label manuellement.
Les partitions avec des clés sont les partitions utilisées :
  • Sabayon qui est le / de la distro utilisée
  • La swap qui est partagée entre les distros (attention aux veilles/hibernations)
  • data qui est monté sur /data et qui contient les données hors OS dont les homes, musiques, films, VM ....
Après sda10 on a 9.77 Gb de libre puis se termine la partition étendue.
On a une partition primaire libre de 45.27Gb qui malheureusement ne peut pas être utilisé pour étendre la partition étendue sda3 sans détruire/recréer, elle pourrait cependant être utilisée pour installé le nouvel OS, elle ne peut non plus être utilisée en partition étendue car on ne peut en créer qu'une.
Ensuite on a une autre partition primaire sda4 de données dont j'ai parlé plus haut.
Je vais donc utiliser cette dernière pour l'installation de la nouvelle distro, je prépare le travail en la formatant et surtout en la nommant pour ne pas me tromper ultérieurement.
Je clique bouton droit sur la partition :
gpartedsusepart.png
Je créé donc une partition ext4 (type de filesystem), primaire et appelée Suse, comprenant tout l'espace, ne pas oublier de lancer l'opération en cliquant sur le bouton ou menu Edition > Appliquer les opérations.
La parition créée est nommée automatiquement par le système dans mon cas /dev/sda1.
Le partitionnement cible est donc :
  • /dev/sda1 : /
  • /dev/sda6 : swap
Si je suis sur un live CD ou que j'installe à partir d'un OS déjà installé, je peux lancer l'installeur, sinon on reboot sur le media d'installation.


En resumé
On a créé une nouvelle partition /dev/sda1 qui recevra l'installation de la nouvelle distribution, on a nommé cette partition afin de ne pas se tromper lors de l'installation de l'OS.
Sur cette partition l'OS sera complètement installé (20Gb conseillé) avec uniquement une autre partition de swap partagée entre toute les distro Linux afin de ne pas perdre d'espace, il faut cependant faire attention car cette partition est utilisée pour les modes de veilles et d'hibernation.
Une partition data /dev/sda4 sera réservée pour toute les données dont les home directory, on pourra ainsi changer d'OS et garder les même environnement sous peu que l'on fasse les configurations adéquates dans chaque OS installé.
Lors du boot, le boot loader sera chargé de pointer vers la bonne partition et chaque / sera donc local à chaque partition.
L'installation est vue dans la deuxième partie.

samedi, septembre 11 2010

booter sur clé USB via Virtualbox ou qemu

Le but est de tester les distro sur clé usb pour ensuite les utiliser pour installer sur une vraie machine.
Tiré de ce post
  1. On créé un disque dur qui utilise /dev/sdb qui est le device de ma clé usb
  2. VBoxManage internalcommands createrawvmdk -filename /data/virtualbox/HD/testusb.vdi -rawdisk /dev/sdb  -relative -register
  3. On créé la box et regle les parametres
  4. VBoxManage createvm --name  testusb  --register

    VBoxManage modifyvm testusb --acpi on --nic1 nat --ioapic on

    VBoxManage modifyvm testusb --memory 512 --vram 128
  5. On associe le disk virtuel et le driver ide
  6. VBoxManage storagectl  testusb --name "IDE Controller" --add ide

    VBoxManage modifyvm testusb --hda /data/virtualbox/HD/testusb.vdi
  7. Démarrage de la vm
  8. VBoxManage startvm testusb --type gui&
Ou plus simple avec qemu (pour installer equo install app-emulation/qemu-kvm-0.12.5-r1 / verifier version avec equo search qemu).
puis :
qemu-system-x86_64 -m 1024 -usb /dev/sdb