Linux Install Party



Une Linux Install Party est planifiée en septembre à Polytech'Grenoble.

Elle est réservée aux élèves de Polytech'Grenoble.

Apportez vos portables (et si possible des clés USB ≥ 4 Go)

Elle sera encadrée par les élèves de INFO4 et INFO5.

Présentation et questionnaire

 * [[File:LIP.odp]]
 * [[File:LIP-form.pdf]]
 * Formulaire à remplir avant l'installation (Gardez aussi les infos demandées localement, sur papier par exemple)

Avant de venir

 * Libérer au moins 30 GB d’espace disque
 * Sauvegarder vos données/systèmes
 * Préparer votre matériel
 * Télécharger les logiciels
 * Accéder au BIOS

Sauvegarde des données personnelles
Il est conseillé de sauver toutes vos données personnelles sur un support externe chez vous pour deux raisons :
 * c'est une bonne habitude à prendre : les disques durs ont une durée de vie limitée ;
 * certaines manipulations vont toucher au cœur de l'installation de votre système actuel. Une erreur ou un problème à ce stade pourrait corrompre vos données (d'où l'intérêt d'arriver bien à l'heure pour les explications)

Précaution :

Il faut trier ses données personnelles et les ranger dans un répertoire bien identifiable par exemple : son nom suivi de data (ex: Torvalds-data/). Puis sauvegarder sur un support externe.

Sauvegarde du système d'exploitation (ou OS pour Operating System)
Les ordinateurs récents sont souvent vendus avec Windows pré-installé mais sans disque de réinstallation. Si on écrase ce système par erreur, on risque de le perdre.


 * Solution :
 * Dans la plupart des OS il y a des outils dans les media d'installation
 * qui permette de faire des sauvegardes sur CD ou DVD.

Cette solution a l'avantage de ne nécessiter aucun travail maintenant. Mais la réinstallation ne sera pas à l'identique si elle doit être faite plus tard (pas de réinstallation des éventuels logiciels constructeur par exemple).

Les ordinateurs récents ont maintenant parfois leur clé de licence incluse directement dans le matériel. Dans ce cas, en réinstallant Windows avec le DVD disponible sur le site de Microsoft, Windows se réactive automatiquement, cf Activer Windows

Matériel à apporter (si disponible - pas d'achat spécifique)
Marquez à votre nom tout le matériel que vous apportez.

Une taille de 3Go est un minimum.
 * Si vous pouvez apporter une clé USB vide, ça pourra nous aider dans certains cas (si la clé est utilisée pour l'installation de Linux, son contenu éventuel sera complètement écrasé).


 * Si vous avez des câbles RJ45 et/ou des multiprises, vous pouvez en apporter (un certain nombre seront disponibles sur place)


 * Adaptateur Ethernet pour le PC si nécessaire

Apportez votre portable si vous voulez installer Linux dessus.

Apportez de quoi prendre des notes si vous voulez apprendre à installer Linux chez vous.

Logiciels à télécharger

 * Télécharger la distribution Linux à installer (fichier ISO)
 * Par défaut Ubuntu 22.04.1 LTS (desktop) https://ubuntu.com/download/desktop
 * Alternative de votre choix pour les connaisseurs
 * Télécharger les deux logiciels suivants (sans installation) pour votre système actuel
 * VirtualBox: https://www.virtualbox.org/wiki/Downloads
 * Etcher Balena: https://www.balena.io/etcher/

Accéder au BIOS

 * Trouvez (et téléchargez) la doc constructeur du BIOS de votre ordinateur. Au minimum, trouvez la (séquence de) touche(s) permettant d'accéder au BIOS/UEFI.
 * https://doc.ubuntu-fr.org/tutoriel/modifier_ordre_amorcage_du_bios
 * Touche "MAJ" enfoncée pendant la demande de redémarrage sous Windows

Modalités 2021
Formulaire à remplir avant l'installation (Gardez aussi les infos demandées localement, sur papier par exemple)


 * INFO3: Salles Amphi 101 (présentation) + ENSIMAG D200 (installation)
 * IESE3: Salles Amphi 001 (présentation) + ENSIMAG D200 (installation)

Déroulement de la journée
Vous aurez en début de journée une courte présentation de ce qu'est Linux, les différentes distributions, les partitions (quelles tailles ?), le dual boot, le live-CD ou live-USB, les packages, l'organisation du système de fichier, ...

Cette présentation devra vous permettre de prendre une décision importante :

Sous quelle forme installer Linux ?
Linux peut être installé :
 * 1) en multi/dual-boot : on choisit au démarrage de la machine quel système on veut utiliser ;
 * 2) en mono-boot : on ne met que Linux sur la machine
 * 3) dans une machine virtuelle : Linux tourne dans une fenêtre du système d'exploitation initial de la machine

L'installation la plus simple est la seconde (uniquement Linux sur la machine). C'est aussi celle qui donne le maximum de performance et de place à Linux. Il est alors possible d'installer un autre système d'exploitation dans une machine virtuelle si nécessaire par la suite.

L'installation dans une machine virtuelle est moins risquée que celle en dual-boot sur une machine qui a déjà un système. Elle permet aussi d'avoir les deux systèmes fonctionnant ensemble. L'inconvénient, c'est que les ressources sont alors partagées entre les deux systèmes : partage du disque mais aussi partage de la mémoire vive. Un minimum de 4Go est vivement conseillé pour cette solution.

Si vous voulez un dual-boot et que vous savez créer une partition vide sur votre système actuel, vous pouvez le faire pour gagner un peu de temps. N'essayez pas de le faire si vous doutez ou si vous ne vous sentez pas à l'aise.

Quelle distribution ?
Debian et Ubuntu sont proposées.
 * Ubuntu est réputée plus simple à installer ;
 * Debian peut permettre plus de flexibilité pour ceux qui veulent ;
 * Une autre de votre choix (mais sans notre support).
 * https://distrowatch.com/

Concernant l'installation
Vous pourrez installer la distribution choisie par le réseau local (paquets sur un serveur local donc téléchargement très rapide) et/ou par le wifi de l'école (beaucoup plus lent, surtout avec la contention de toutes les connexions qu'il y aura). Pour démarrer, vous pourrez utiliser une clé USB (ou image ISO pour les machines virtuelles) ou alors vous pourrez utiliser le démarrage par le réseau avec le serveur disponible sur place (connexion réseau filaire alors requise)

Est-ce risqué ?
Il y a un risque lors de l'installation, lié à une erreur de manipulation ou une incompatibilité, c'est de perdre les données et l'OS (MS Windows) actuellement présent sur la machine. Mais comme vous avez fait des sauvegardes avant (surtout que, même sans installation de Linux, un disque dur peut mourir subitement à tout instant), tout va bien.

Le partitionnement
L'une des étapes les plus risquées de l'installation, c'est le partitionnement. C'est-à-dire le choix de(s) emplacement(s) sur le disque dur que Linux va utiliser.

Sous Windows
Gestion de l'ordinateur compmgmt.msc

Information partitionnement Linux
Afin d'être plus souple par la suite, nous conseillons vivement l'utilisation de LVM (cf explications lors de la présentation de la LIP, ou encore la page Ubuntu dédiée) pour Linux, même si cela peut ajouter quelques manipulations supplémentaires lors de l'installation initiale.

Le partitionnement est également la partie la plus différente suivant le type d'installation souhaité. On doit donc distinguer plusieurs cas.

Lors de cette étape, il est possible de choisir de chiffrer son disque.
 * https://doc.ubuntu-fr.org/tutoriel/chiffrer_son_disque

Single boot ou machine virtuelle
Dans ces deux cas, il n'y aura que Linux sur le disque physique (single boot) ou virtuel (machine virtuelle). La plupart des installeurs proposent un partitionnement automatique avec utilisation de LVM. C'est ce qu'il faut choisir pour commencer. Les outils de la section suivante peuvent être utilisés pour peaufiner les choix faits par la distribution.

Dual boot
Dans ce cas, il y a deux étapes. La première consiste à faire de la place depuis le système déjà présent. Les systèmes actuels proposent les outils nécessaires pour réduire une (des) partition(s) existante(s). Il est très fortement recommandé d'utiliser les outils d'un système pour manipuler les partitions de ce système (ie d'utiliser les outils Windows pour les partitions Windows, même si théoriquement certains outils fonctionnant sous Linux pourraient aussi fonctionner, idem pour MacOSX).

La seconde étape consiste à utiliser la place libre sur le disque pour installer Linux. Pour cela, il faut créer une (des) partition(s) quand on installe Linux. Si on utilise LVM, il suffit d'une seule partition (sauf si on veut aussi encrypter ses données, dans ce cas, il faut une seconde partition pour /boot non cryptée, de 500 Mo à 1Go)

Pour Debian et Ubuntu en mode expert, l'installeur prend en charge LVM, tout peut se faire depuis là. Pour Ubuntu depuis le LiveCD (le mode classique d'installation d'Ubuntu), l'installeur ne prend pas en charge la configuration de LVM. Il faut donc gérer cela séparément :
 * 1) Démarrer le LiveCD Ubuntu
 * 2) Créer les partitions (et gérer LVM) avant de lancer l'installation :
 * 3) Lancer un terminal pour taper les commandes suivantes
 * 4) Cliquer sur 'Activité'
 * 5) Taper 'term'
 * 6) Cliquer sur l'application 'Terminal' pour la lancer (une fenêtre doit s'ouvrir)
 * 7) installer l'outil graphique  (on peut aussi tout faire en ligne de commande si on le souhaite)
 * 8) ajouter les sources APT nécessaires :   (cela ajoute ' universe' à la fin des lignes commençant par 'deb http')
 * 9) les prendre en compte :
 * 10) installer le logiciel :   (valider quand cela est demandé)
 * 11) lancer   (en tapant son nom dans le terminal)
 * 12) créer la (les) partition(s) nécessaire(s) sur le disque physique (mettre 'lvm2 pv' comme système de fichier pour les partitions qui seront utilisées par LVM, mettre 'non formatée' pour les autres : l'installeur les formatera plus tard)
 * 13) créer le groupe de volumes (VG) (menu 'Outils') en choisissant un nom et en sélectionnant la (les) partitions PV
 * 14) sélectionner le VG à gauche (qui apparaît comme un disque) et créer les partitions logiques dedans (LV), à savoir
 * 15) 'root' (pour /) de 20 GB environ (pourra facilement être agrandie par la suite si nécessaire s'il reste de la place dans le VG)
 * 16) 'home' (pour /home) de 10 GB environ (idem)
 * 17) 'swap' (pour le swap) de la taille de la RAM environ
 * 18) lancer l'installation
 * 19) à l'étape de partitionnement
 * 20) choisir Autre
 * 21) sélectionner les partitions précédemment créées, demander de les formater (pour les nouvelles), et indiquer le bon point de montage
 * 22) la partition EFI ne doit pas être formatée (elle doit toutefois être indiquée si elle n'est pas automatiquement détectée)
 * 23) finir l'installation

Dual boot, SATA en IDE/AHCI/RAID et Intel Optane
Sur de nombreux BIOS, le contrôleur SATA est un contrôleur Intel pouvant fonctionner sous plusieurs modes :
 * IDE : mode de compatibilité, performances limités ;
 * AHCI : mode de fonctionnement optimal du contrôleur sans fonctionnalités logicielles (BIOS) supplémentaires ;
 * RAID (ou Intel RST) : RAID logiciel géré (partiellement) au niveau du BIOS.

Le mode IDE est à éviter (moins bonnes performances) sauf besoins très particuliers. Si vous voyez votre contrôleur dans ce mode, il est conseillé de le passer en mode AHCI.

Si le mode est RAID (ou Intel RST), ou si votre ordinateur utilise la technologie Optane (cache du disque par de la mémoire statique rapide), ces technologies ne sont pas supportées par Linux. Il faut alors, au choix :
 * installer Linux sur un autre disque branché sur un contrôleur en mode AHCI (a priori impossible dans un portable : il n'y a qu'un seul contrôleur) ;
 * désactiver ces fonctionnalités. Ne pas le faire risque de conduire à une partition Windows corrompue, et donc à une nécessaire réinstallation complète de Windows.

Dual boot avec Windows et BitLocker
BitLocker est une technologie disponible nativement dans les Windows récents permettant d'augmenter la sécurité en encryptant les disques. Mais BitLocker s'assure également que seul du code signé par Microsoft s'est exécuté depuis le boot (avec le mécanisme de Secure Boot). Cela pose un problème avec un dual-boot car le bootloader de Windows ne permet pas de choisir et démarrer un autre système. Et le bootloader généralement utilisé n'est pas du code signé par Microsoft, donc un Windows avec BitLocker se bloquera très vite au démarrage s'il est lancé par.

Deux contournements sont possibles :
 * désactiver BitLocker. Windows perd alors le surplus de sécurité qui était apporté.
 * ou démarrer Linux depuis un autre disque (généralement une clé USB) pour que le bootloader de Windows reste inchangé.

Installation avec LVM
LVM est un outil très utile surtout en installation dual-boot (un peu moins pour une installation dans une VM).

Sauf bonnes raisons acceptées par l'enseignant, il est requis d'utiliser LVM pour une installation en dual-boot.

L'installateur graphique d'Ubuntu ne permet pas de configurer LVM (sauf à utiliser le disque entier en supprimant tout le reste). Aussi, pour configurer LVM, il faut absolument démarrer en mode live (et pas en mode installation) depuis le BIOS. La session Live permet de lancer l'installateur, mais aussi de lancer un terminal (outil du même nom) dans lequel les commandes ci-dessous peuvent être utilisées.

/!\ En cas de questions ou difficultés, dialoguer avec vos enseignants. Le partitionnement est généralement l'étape la plus sensible d'une installation Linux.

Méthode 1 : Gparted + Terminal
vgcreate vgUbuntu /dev/XXXN lvcreate vgUbuntu -n system -L 30G # Minimum 10 Go lvcreate vgUbuntu -n home -L 30G lvcreate vgUbuntu -n swap -L 8G # Taille de la RAM
 * Lancer GParted et formater la partition  Linux en LVM2 PV
 * Ouvrir un terminal pour créer le groupe virtuel (VG) ainsi que les volumes logiques (LV) souhaités.
 * Retourner dans l'installateur

Méthode 2 : Partitionmanager
sudo sed -e '/deb http/s/restricted$/restricted universe/' -i /etc/apt/sources.list sudo env http_proxy=http://www-cache.u-ga.fr:3128 apt update sudo env http_proxy=http://www-cache.u-ga.fr:3128 apt install partitionmanager -y partitionmanager La partie  est inutile si vous n'êtes pas sur un réseau universitaire.
 * Installer et lancer
 * Utiliser `partitionmanager` pour préparer les partitions et configurer LVM :
 * 1) Créer une partition de type "lvm2 pv" [PV]
 * 2) Appliquer les changements
 * 3) Créer un "volume group [VG]" (menu "Tools")
 * 4) Appliquer les changements
 * 5) Créer des volumes logiques [LV] dans le VG (au moins root (minimum 20 GiB, type ext4) et swap)
 * 6) Appliquer les changements
 * Retourner dans l'installateur

Concernant la garantie
Certains revendeurs de PC affirment qu'installer Linux dessus annulerait la garantie.

Mais ils ont dû payer plus que le prix de l'ordinateur quand des acheteurs motivés ont attaqués cette règle d'annulation et sont allés au bout de procédures judiciaires. Maintenant, les entreprises/vendeurs se couchent assez rapidement quand on insiste un minimum pour maintenir la garantie matériel lorsqu'on installe Linux.

Certains constructeurs/intégrateurs/vendeurs proposent désormais des PC livrés sans OS ou sous Linux:
 * https://bons-constructeurs-ordinateurs.info/#bons-optionnalite
 * https://bons-vendeurs-ordinateurs.info/
 * https://www.dell.com/fr-fr/shop/ordinateurs-portables-dell/sr/laptops/ubuntu
 * https://www8.hp.com/us/en/campaigns/ubuntu/index.html
 * https://puri.sm/products/
 * https://system76.com/
 * Vos bons plans à partager...

Mac OS X

 * Bootloader: Refind
 * Mode "Repair": Cmd + R au boot
 * Mode "Boot option" : Alt au boot


 * Ubuntu without Grub -- For reference. Should be obsolete

Install without bootloader
ubiquity --no-bootloader

LVM
Il est possible d'utiliser LVM pour contenir les partitions / et /home ainsi que la swap. Il faut par contre mettre en place une partition native /boot en ext4 afin d'héberger les noyaux et grub. L'installation se fait alors avec bootloader.

La séquence de démarrage est alors Refind -> Grub -> Linux.

Mac M1
Les Mac M1 ont une compatibilité encore très limitée avec Linux : Apple ne documente rien et bloque de nombreuses choses. Récemment, quelques avancées ont été observées.

Installation en natif
Seule une partie du matériel sera supporté (pour le moment) :
 * Article de blog expliquant les problèmes avec un tutorial pour l'installation native : https://www.corellium.com/blog/linux-m1
 * Installation de Debian sur un Mac M1 : https://git.zerfleddert.de/cgi-bin/gitweb.cgi/m1-debian/

Installation en machine virtuelle
Plusieurs solutions de virtualisation commencent à être disponibles pour les Mac M1

1. Virtualisation avec UTM (Apple)
Apple fournit UTM, une solution de virtualisation utilisable sur les M1 (basée alors sur qemu) : https://mac.getutm.app/

Préférer une machine virtuelle avec l'architecture arm64 pour avoir de bonnes perfs (x86 est aussi possible, mais le processeur est alors émulé et plus virtualisé).

L'application (APP) semble être payante, mais elle peut être installée gratuitement par d'autres moyens dont  : brew install utm

2. Virtualisation avec multipass (Canonical)
Canonical (éditeur d'Ubuntu) a développé  pour créer et lancer des VM Ubuntu sur Mac (dont les Mac M1) : https://multipass.run/docs/installing-on-macos

3. Virtualisation avec Fusion (VMWare)
Pour l'instant, seule la version en preview (beta) de VMWare semble capable de fonctionner sur les Mac M1 :
 * https://communities.vmware.com/t5/VMware-Fusion-Documents/Running-Fusion-on-an-Intel-Mac-and-upgrading-to-an-M1-M2-Mac/ta-p/2888565
 * https://communities.vmware.com/t5/Fusion-Tech-Preview-22H2/ct-p/3022

Erreur de manipulation ou problème d'installation
Suivre le guide LIP recovery

Retour à un mode de démarrage classique

 * Pensez à désactiver (ou, au moins, à ne pas mettre en priorité) le boot par réseau (machine virtuelle ou installation native).
 * Vous pouvez éventuellement tester si le "Secure Boot" peut rester actif
 * Vous pouvez réactiver le "Fast boot"

Proxy web
Suivant votre méthode d'installation, un proxy a pu être configuré sur votre système.

Un proxy est une machine qui est utilisée comme intermédiaire pour toutes les requêtes web (i.e. la machine locale ne dialogue jamais directement avec les serveurs web, elle dialogue systématiquement avec le proxy qui sert d'intermédiaire).

Sur le réseau UGA, l'utilisation d'un proxy est obligatoire (à cause des règles de filtrage mises en place). Chez vous, ce proxy sera inaccessible, il ne faudra donc pas l'utiliser.

En cas de problème d'accès réseau avec, vérifier le fichier   (voire les fichiers  ). Un proxy est configuré avec la ligne suivante :

Acquire::http::Proxy "http://user:password@IP_du_Proxy:Port_du_Proxy";

Si vous trouvez :
 * , c'est le proxy pour la LIP. Il ne sera plus utile, il doit être enlevé/commenté
 * , c'est le proxy de l'UGA, utile sur les réseaux de l'UGA

Dell
Note: adaptez le nom de la distribution ci-dessous (i.e. remplacez  par votre distribution)

Dans /etc/apt/source.list.d/dell.list deb http://dell.archive.canonical.com/updates/ focal-dell public
 * 1) deb-src http://dell.archive.canonical.com/updates/ focal-dell public

Dans /etc/apt/source.list.d/dell-oem.list deb http://dell.archive.canonical.com/updates/ focal-oem public
 * 1) deb-src http://dell.archive.canonical.com/updates/ focal-oem public

Dans /etc/apt/source.list.d/dell-service.list deb http://dell.archive.canonical.com/updates/ focal-dell-service public
 * 1) deb-src http://dell.archive.canonical.com/updates/ focal-dell-service public

Gestion de l'heure
Régler Windows comme Linux (RTC en UTC).

Lancer 'cmd', puis exécuter la commande suivante:

C:> Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1

Ou en 32bit

C:> Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1


 * source : https://superuser.com/questions/975717/does-windows-10-support-utc-as-bios-time

À défaut, régler Linux comme Windows (RTC en TZ)

$ timedatectl set-local-rtc true

(mais à chaque changement d'heure, les deux systèmes vont chacun décaler l'heure d'une heure...)

En cas de souci
Mettre dans RealTimeIsUniversal.reg le texte suivant:

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=hex(b):01,00,00,00,00,00,00,00

puis lancer le fichier RealTimeIsUniversal.reg

Reconfiguration du réseau pour les machines virtuelles
Pour les installations dans une machine virtuelle, vous pouvez préférez remettre la carte réseau virtuelle en mode NAT plutôt que Bridge (ça permet à la machine virtuelle d'utiliser le wifi sans problème)

Extensions pour les machines virtuelles (sous Virtual Box)
Prérequis: Deux solutions :
 * 1) sudo apt install build-essential


 * 1) Installer le package virtualbox-guest-dkms
 * 2) * Synaptic
 * 3) * dselect
 * 4) * apt-get install  
 * 5) Installer avec le support VirtualBox
 * 6) * Installer les outils de compilation: sudo apt install build-essential
 * 7) * Dans le menu "Périphériques"/"Devices", "Insérer le CD invité".
 * 8) * Lancer ./VBoxLinuxInstall dans le répertoire du CD-ROM.
 * 9) * NB: L'opération est à refaire à chaque changement de version de VirtualBox ou du noyau !

Installation de paquets pour les matières enseignées
Une page spécifique est crée pour cela.

Contact: Michael Perin, X.Y@imag.fr X=Prenom & Y=Nom

Maintenir le système à jour
sudo apt-get update sudo apt-get dist-upgrade

Faire une mise à niveau (changement de version de la distribution)
sudo do-release-upgrade sudo apt-get dist-upgrade
 * Faire une sauvegarde
 * Commencer par une mise à jour si nécessaire
 * Sur Ubuntu (semestriel ou support à long terme)
 * Sur Debian
 * Changer les sources de package dans /etc/apt/sources.list pour pointer sur stable ou testing au choix
 * Lancer la mise à niveau

Agrandir une partition avec LVM formatée en ext{2,3,4}
# vgdisplay
 * Pour des informations avant d'agrandir

# lvresize -L +10GiB /dev// # resize2fs /dev//
 * Pour redimensionner la partition, puis le système de fichier

ou en une seule commande:

# lvresize -r -L +10GiB /dev//

Avertissement sur PV header
Lors d'une mise à jour, l'entête du volume physique (PV) peut devenir obsolète. Pour vérifier: $ sudo vgck

Pour mettre à jour: $ sudo vgck --updatemetadata 


 * https://askubuntu.com/questions/1299499/warning-pv-dev-sda3-in-vg-ubuntu-vg-is-using-an-old-pv-header-modify-the-vg-t