LIP recovery

Guide de récupération pour la Linux Install Party

= Partitionnement =

Réduction d'une partition Windows
Deux outils sont disponibles pour gérer le partitionnement sous Windows : diskmgmt.msc diskpart.exe
 * Graphique
 * Console

Quand la réduction proposées par Windows est trop petite (alors que le disque a de l'espace vide), les solutions suivantes sont possibles.

Enlever (au moins temporairement) les fichiers bloquants
Comme il est difficile de savoir desquels il s'agit, plusieurs pistes sont proposées ici. En général, il faut faire l'opération inverse une fois la partition réduite pour remettre le système dans son état initial "normal".

Désactiver l'hibernation
Dans une fenêtre de commande administrateur, taper  (et refaire avec 'on' quand tout est ok)

Désactiver la protection du système

 * Tapez Panneau de configuration dans le champ de recherche Windows et appuyez sur Entrée
 * Dans le coin supérieur droit de la fenêtre, vous devriez voir l'option Afficher par : Catégorie
 * Cliquez sur Catégorie et sélectionnez Petites icônes
 * Sélectionnez Système
 * Dans la nouvelle fenêtre, faites défiler vers le bas jusqu'à ce que vous voyiez Protection du système – cliquez dessus

Si la protection est déjà désactivée mais que de la place disque est utilisée, il faut l'activer puis la désactiver

Désactiver le Fichier d’échange

 * Tapez  dans le champ de recherche Windows et appuyez sur Entrée
 * Allez à l'onglet Avancé
 * Sous Performances, cliquez sur Paramètres
 * Allez dans l'onglet Avancé et cliquez sur Modifier sous Mémoire virtuelle
 * Décochez la case Gestion automatique du fichier d'échange pour les lecteurs
 * Sélectionnez votre lecteur principal
 * Cochez l'option Aucun fichier d'échange et cliquez sur Définir.

Nettoyer l'espace disque
Utilisez l'outil de nettoyage du disque

Faire la réduction depuis une console de récupération
A priori, ça fonctionnera mais cela nécessite de taper des commandes (attention aux numéros X, Y, etc.)

Dépannage Options avancées Invite de commandes diskpart.exe list disk rem Remplacer X par l'identifiant du disque qui contient la partition à réduire. select disk X list partition list volume rem Remplacer Y par l'identifiant de la partition à réduire select volume Y shrink querymax rem La taille est en Mo shrink desired=50000
 * Lancer une console de récupération en cliquant sur "Redémarrage" pendant que la touche MAJ est enfoncée, ou dans le menu "Mise à jour et sécurité -> Récupération".
 * Après un redémarrage et une authentification, Windows propose une console d'administration
 * Lancer l'outil de partitionnement

Faire la réduction depuis Linux
Comme Linux n'utilise pas les fichiers de la partition Windows, il peut facilement les déplacer et donc réduite la partition. Par contre, cela présuppose que Bitlocker n'est pas utilisé. Si c'est le cas, il est possible de le désactiver sous Windows, attendre que tout soit décrypté, réduire la partition depuis Linux, et réactiver Bitlocker si souhaité.

Il est impératif que Windows ait été arrêté correctement (pas de mise en veille) sinon les données risquent d'être totalement corrompue. Si besoin, utilisez la commande citée au-dessus pour désactiver l'hibernation.

= BIOS & EFI =

Il y a de très nombreux BIOS avec des comportements non standard ou farfelu mais aussi quelques règles non négociable.

Boot en "Legacy"
Si Windows démarre en mode legacy, vous ne pouvez pas changer. Installer Linux de la même manière.

Boot en EFI normal
Si Windows démarre en mode EFI, vous ne pouvez pas changer. Installer Linux de la même manière.

Boot en EFI avec Compatibility Mode (CM) activé
Si Windows démarre en mode EFI, vous ne pouvez pas changer. Désactiver le mode de compatibilité puis tester le démarrage de Windows. S'il n'y a pas de différence, rester en mode EFI normal puis installer Linux de la même manière en EFI.

Grub ne reste pas l'entrée principale
Il arrive que le BIOS préserve Windows comme système de démarrage par défaut après l'installation de Linux et de grub.


 * Modifier l'ordre de démarrage directement dans le BIOS
 * Selon le BIOS, il faut parfois activé le secure boot pour changer l'ordre ! Le secure boot peut ensuite être enlevé.

PC ACER

 * Bénir le fichier shimx64 depuis le BIOS ("trusted").

HP

 * Mise à jour du firmware possible ?!
 * Essayer le bootloader refind au lieu de grub

MAC OS

 * Définir refind par défaut : https://www.rodsbooks.com/refind/bootcoup.html#refind-mkdefault
 * Enlever/Figer grub : https://www.rodsbooks.com/refind/bootcoup.html#disabling_grub
 * Configurer Refind avec l'option root= : https://www.rodsbooks.com/refind/configfile.html

La clé SecureBoot n'est pas enregistré / Le mot de passe ne fonctionne pas
Réenregistrement de la clé pour le Secure Boot.

sudo update-secureboot-policy --enroll-key

Interface bas-niveau:

sudo mokutil --import /boot/efi/EFI/MOK/MOK.der

Redémarrage sur la configuration de l'UEFI

 * Commande pour redémarrer sur le bios depuis linux :

systemctl reboot --firmware-setup


 * Depuis grub (package grub-efi) :

fwsetup

Prérequis

 * Une clé d'installation Windows de *VOTRE* version de Windows
 * même numéro: XP, Vista, 7, 8, 10?
 * même saveur: MUI, Single language, N
 * même révision: creator, anniversary ...
 * Une clé d'installation Linux ou un boot réseau

BCDedit Bootrec /fixmbr Bootrec /fixboot Bootrec /rebuildbcd
 * Formater la partition EFI en FAT32 avec les drapeaux ESP et boot
 * Démarrer sur la clé Windows puis choisir "Réparer le système" après avoir choisi la langue
 * Troubleshoot, Advanced Options, Command prompt
 * Dans le terminal:

Note

 * /fixboot va remettre les répertoires Boot et Microsoft dans la partition, permettant ainsi au boot Windows de démarrer
 * /rebuildbcd va (re)créer la base de registre binaire qui permet au système de démarrage de savoir où est la partition Windows

Procédure
mount /dev/sdWX /target mount /dev/sdYZ /target/boot/efi chroot /target /bin/bash grub-install -v dpkg-reconfigure grub-efi-amd64 update-grub
 * Redémarrer sur le système Linux: Mode rescue avec debian ou Ubuntu
 * Monter la partition Linux racine dans /target et EFI dans /target/boot/efi
 * Rendre la cible comme le système courant
 * Réinstaller grub
 * Puis le reconfigurer et/ou mettre à jour
 * Redémarrer le système

Préparer une clé Windows
Prérequis : Image ISO
 * Pour Windows 10: https://www.microsoft.com/fr-fr/software-download/windows10ISO


 * Mac: Bootcamp
 * Windows: Rufus ou l'outil Windows
 * Linux: Rufus

Disque PCIe M2 non visible

 * https://www.dell.com/support/article/fr-fr/sln299303/chargement-d-ubuntu-sur-les-syst%C3%A8mes-%C3%A9quip%C3%A9s-de-disques-pcie-m2?lang=fr

Cas simple : disque entier dans un "mauvais" mode
Sauf exception motivée, il faut préférer le mode AHCI plutôt que SATA/IDE (même si les deux sont supportés).

Si c'est un mode propriétaire qui est sélectionné dans le BIOS (RST Intel, RAID, ...), il est possible que linux ne voit pas du tout le disque. Il faut alors le changer.

Si vous changez ce mode dans le BIOS, il faut prévenir windows (sinon, ce dernier perdra l'accès au disque...) :


 * 1) Booter sous windows
 * 2) Lancer une fenêtre d'invite de commandes en tant qu'administrateur
 * 3) Taper
 * 4) Rebooter, aller dans le BIOS, changer le réglage
 * 5) Rebooter, démarrer windows (qui sera en mode sans échec)
 * 6) Lancer une fenêtre d'invite de commandes en tant qu'administrateur
 * 7) Taper

Sources :
 * https://www.seeyar.fr/activer-mode-ahci-apres-linstallation-de-windows10-mode-ide/
 * http://triplescomputers.com/blog/uncategorized/solution-switch-windows-10-from-raidide-to-ahci-operation/

Cas complexe : disque utilisant des fonctionnalités étendues non supportées par Linux
C'est le cas de la nouvelle technologie Intel Optane où de la mémoire statique est utilisée pour accélérer un disque (y compris SSD) avec le disque configuré en mode "Intel RST" dans le BIOS.

Cette technologie n'est pas supportée par Linux : FAQ Intel. Comme elle fonctionne au niveau du disque (et pas d'une partition), il est nécessaire de la désactiver pour que Linux accède correctement au disque sans le corrompre.

Méthode expérimentée une fois :
 * 1) Sauvegarder toutes les données importantes du disque (risque de nécessité de réinstallation totale)
 * 2) Booter sous Windows
 * 3) Trouver l'une des deux applications "Intel® Rapid Storage Technology (Intel® RST)" ou "mémoire Intel® Optane™" (seule l'une des deux peut être installée sur un ordinateur Windows) et désactiver cette technologie
 * 4) Cela génère un reboot
 * 5) Appliquer la méthode précédente :
 * 6) Booter sous windows
 * 7) Lancer une fenêtre d'invite de commandes en tant qu'administrateur
 * 8) Taper
 * 9) Rebooter, aller dans le BIOS, changer le réglage : il peut y avoir un avertissement disant que toutes les données seront perdues. Ça n'a pas été le cas sur le (seul) ordi testé.
 * 10) Rebooter, démarrer windows (qui sera en mode sans échec)
 * 11) Lancer une fenêtre d'invite de commandes en tant qu'administrateur
 * 12) Taper
 * 13) Booter sous Linux
 * 14) Lancer   sur le disque :   par exemple
 * 15) Taper la commande "print"
 * 16) Répondre "y" si on vous demande de corriger (la fin n'est pas à la bonne place) la partition GPT : la fin du disque était auparavant utilisée par les données Intel RST. ATTENTION : si Optane n'a pas été préalablement désactivé, le système de fichier Windows risque d'être complètement illisible (réinstallation complète de Windows alors nécessaire)
 * 17) Vérifier que Windows et Linux fonctionnent (grub devrait alors pouvoir s'installer correctement)

= Pilotes de périphériques =


 * Identifier les besoins avec 'lspci' et 'lsusb'


 * Secure boot bloque le chargement d'un module DKMS même avec un noyau signé.

Pilote carte graphique
Open /etc/default/grub and find GRUB_CMDLINE_LINUX_DEFAULT line. Change it to GRUB_CMDLINE_LINUX_DEFAULT="nomodeset" Run sudo update-grub Reboot
 * Écran qui scintille, couleurs pâles/blanchâtres

Pilote clavier
Open /etc/default/grub and find GRUB_CMDLINE_LINUX_DEFAULT line. Change it to GRUB_CMDLINE_LINUX_DEFAULT="i8042.direct i8042.dumbkbd" Run sudo update-grub Reboot
 * Lenovo Yoga: https://askubuntu.com/questions/1352604/ubuntu-20-04-keyboard-not-working-on-lenovo-yoga-slim-7i-pro

Pilote WiFi
Dans le cas de module en DKMS ou non-free, voir le point précédent.

lspci -nnkd ::0280


 * RTL8821CE
 * https://forum.ubuntu-fr.org/viewtopic.php?id=2067500&p=2
 * https://debian-facile.org/viewtopic.php?id=24292
 * https://github.com/lwfinger/rtw88
 * https://github.com/tomaspinho/rtl8821ce (Ancien code)
 * Cannon Point-LP CNVi [Wireless-AC], https://debian-facile.org/viewtopic.php?id=25129
 * https://www.linux-hardware.org/index.php?id=pci:8086-9df0-8086-0034
 * https://forum.ubuntu-fr.org/viewtopic.php?id=2010578


 * Sous Debian, https://debian-facile.org/doc:materiel:wifi:detecter#etape-1identifier-la-carte-reseau
 * Installation des firmwares: contrib et non-free
 * https://debian-facile.org/doc:systeme:apt:sources.list:sources.list-non-free
 * https://debian-facile.org/doc:materiel:wifi:wifi

= Windows =

Menu de boot avec options avancées (permettant le boot sur Ubuntu)
bcdedit /set {bootmgr} displaybootmenu yes bcdedit /set {default} bootmenupolicy legacy

Pour restaurer, l'ancienne configuration: bcdedit /set {default} bootmenupolicy standard

Restauration

 * https://support.microsoft.com/fr-fr/help/12415/windows-10-recovery-options
 * ISO de restauration : https://www.microsoft.com/fr-fr/software-download/windows10ISO

Déplacer une partition de récupération/restauration

 * http://ikewdu.free.fr/gerer-et-deplacer-la-partition-de-recuperation-de-450-mio-sous-w10/

BCDBoot
Faire le dual-boot avec Windows Boot Manager


 * https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/bcdboot-command-line-options-techref-di

BCDEdit

 * https://docs.microsoft.com/fr-fr/windows-server/administration/windows-commands/bcdedit
 * https://docs.microsoft.com/en-us/previous-versions/windows/hardware/design/dn653986(v=vs.85)


 * https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/bcdedit-command-line-options
 * https://superuser.com/questions/511582/how-to-use-bcdedit-to-dual-boot-windows-installations
 * http://ikewdu.free.fr/reparer-le-demarrage-de-w10-sans-la-commande-bcdboot/
 * https://www.malekal.com/dual-boot-windows-10-windows-7/#Modifier_le_demarrage_du_Dual-Boot_Windows_7_Windows_10
 * https://www.malekal.com/bcd-boot-configuration-data-windows

Legacy / non-UEFI

 * https://www.iceflatline.com/2009/09/how-to-dual-boot-windows-7-and-linux-using-bcdedit/

EasyBCD
NB: Fonctionne uniquement pour un multi-boot sans EFI !


 * https://neosmart.net/EasyBCD/
 * https://www.groovypost.com/howto/dual-boot-windows-10-linux/
 * https://lecrabeinfo.net/installer-ubuntu-18-04-lts-dual-boot-windows-10.html#etape-5-configurer-luefi-pour-demarrer-sur-ubuntu
 * https://www.sevenforums.com/general-discussion/326809-how-use-bcdedit-create-new-entry-linux.html

= Mac =


 * Utiliser Refind
 * Fonctionnalité de récupération de macOS
 * Création d’un programme d’installation amorçable pour macOS


 * Create recovery partition
 * https://apple.stackexchange.com/questions/446575/refind-bootloader-doesnt-launch-on-start
 * https://apple.stackexchange.com/questions/402289/refind-installation-wont-boot-due-to-t2-security-despite-t2-security-being-dis

Mac Book Pro
(2019) Sur certaine version récente des Mac Book Pro, il n'y a pas de support du clavier et du touchpad durant l'installation d'Ubuntu 18.04 ou 19.04. Il est nécessaire d'utiliser un ensemble clavier/souris en USB. Puis d'installer les pilotes spécifiques ensuite:


 * Prérequis: apt install git build-essential dkms libinput-tools
 * Installer les pilotes applespi/0.1
 * https://gist.github.com/roadrunner2/1289542a748d9a104e7baec6a92f9cd7