SysFailure

Imprimer

Démarrer un MacBook Pro Retina sous Linux

.

Introduction

Lorsqu'il faut analyser le contenu d'un ordinateur, si l'on souhaite minimiser les risques d'altération du ou des supports de stockage, la liste des possibilités est réduite : démonter le support de stockage, le copier en utilisant un bloqueur d'écriture, et travailler sur la copie (sans oublier de remonter le support dans l'ordinateur). Pour des disques ou des supports SSD utilisant des connecteurs usuels (IDE, Sata, SCSI, mSata), il n'y a guère de difficultés à procéder au démontage, même s'il convient d'être prudent.

Il peut cependant arriver, et les ordinateurs portables Apple sont notoirement connus pour cela, que le support SSD n'utilise pas un connecteur standard. Le matériel idoine se trouve parfois sur Internet, avec des délais de livraison allant de la quinzaine de jours à deux bons mois. Ce n'est donc pas toujours envisageable.

Dans une telle situation, ou lorsque le démontage est trop périlleux, une seconde possibilité est de démarrer la machine sur un LiveCD (Deft, Caine, voire simplement la distribution de votre choix), et de faire la copie à partir du système d'exploitation ainsi chargé. Le plus souvent, cela fonctionne très bien.

Et il y a des cas pathologiques, pour lesquels les solutions habituelles ne fonctionnent pas. Ainsi, un Macbook Pro Retina fabriqué après 2013, ne démarrera jamais sur un LiveCD Linux classique. Il faut donc aller un peu plus loin. La solution à laquelle nous sommes arrivés est de configurer une clé USB avec SystemRescueCD et rEFInd.


SystemRescue sur clé USB

SystemRescueCD (http://www.sysresccd.org) est un environnement dont l'objectif est de pouvoir utiliser un système Linux afin de procéder à diverses tâches d'administration. Pour la copie d'un support, les seuls points qui nous importent sont :

  • pas de montage automatique des disques identifiés,
  • disponibilité de dd, ddrescue et dcfldd ainsi que de sha1sum et consorts,
  • disponibilité de gparted, et
  • disponibilité de netcat.

Comme dans ce contexte nous ne pouvons utiliser un bloqueur d'écriture, l'absence de montage automatique des disques permet d'éviter la modification du ou des supports à copier. Les outils dd, ddrescue et dcfldd permettent de réaliser les copies, selon les circonstances. GParted permet de formatter (au besoin) le disque qui va recevoir la copie, et netcat permet de réaliser la copie au travers du réseau.

Il faut récupérer SystemRescueCD (choisir l'image ISO, comme pour graver un CD) et l'installer sur la clé USB qui nous servira par la suite. L'installation sur une clé USB se fait facilement. Les opérations doivent être réalisées par root :

  1. Monter l'image sur un répertoire (/mnt/cdrom ici) du système de travail :
    mount -o ro,exec,loop systemrescuecd-x86-x.y.z.iso /mnt/cdrom
  2. Se déplacer dans l'image et y exécuter usb_inst.sh :
    cd /mnt/cdrom
    ./usb_inst.sh
  3. L'outil affiche la liste des périphériques utilisables. Vérifiez bien que vous avez sélectionné la bonne cible, puis faites OK
  4. L'outil prépare la clé, cela prend quelques minutes.
  5. Sortir de l'image et la déconnecter du système de fichiers
    cd ; umount /mnt/cdrom

C'est terminé pour l'installation de SystemRescueCD.


 rEFInd sur clé USB

rEFInd (http://www.rodsbooks.com/refind/) est un gestionnaire d'amorçage spécifiquement prévu pour des situations de multi-amorçage sous EFI. Il faut de nouveau télécharger la version CD,  nommée refind-cd-x.y.z.zip.

  1. Extraire l'image ISO contenue dans le fichier ZIP et la monter sur un répertoire du système
    unzip refind-cd-x.y.z.zip
    mount -o ro,exec,loop refind-cd-x.y.z.iso /mnt/cdrom
  2. Se déplacer dans l'image et y exécuter la commande install.sh. ATTENTION : par défaut (sans autre argument), install.sh placera rEFInd sur le disque d'amorçage du système. Il faut préciser, à l'aide de --usedefault, sur quel support l'installation doit se faire (sdb1 ici). Cette partition ne doit pas être montée.
    cd /mnt/cdrom
    ./install.sh --usedefault /dev/sdb1
  3. Si l'installation s'est bien faite, quitter l'image et la déconnecter du système
    cd ; umount /mnt/cdrom

Il faut enfin configurer rEFInd


Configuration de rEFInd

Pour configurer rEFInd, il faut monter la clé USB et y modifier le fichier efi/boot/refind.conf

  1. mount /dev/sdb1 /mnt/usb
  2. cd /mnt/usb/efi/boot

Le fichier contient une ligne (commentée) avec la directive scanfor. Modifier cette ligne, et retirer le commentaire. La ligne doit devenir

scanfor manual,external,hdbios,biosexternal

Ajouter, à la fin du fichier, le bloc de configuration ci-dessous :

menuentry "System Rescue CD x64" {
   icon /efi/boot/icons/os_linux.png
   loader /syslinux/altker64
   initrd /syslinux/initram.igz
   options "scandelay=5"
submenuentry "Clavier FR, cache" { add_options "setkmap=fr docache" }
submenuentry "Clavier FR, cache, noapic <MAC>" { add_options "setkmap=fr docache noapic add_efi_memmap irqpoll acpi=force" }
submenuentry "Clavier FR, nocache" { add_options "setkmap=fr" }
submenuentry "Clavier FR, nocache, noapic <MAC>" { add_options "setkmap=fr noapic add_efi_memmap irqpoll acpi=force" }
submenuentry "Sans EFI" { add_options "noefi" }
submenuentry "VGA" { add_options "vga=791" }
}

Les deux sous-menus libellés <MAC> contiennent, en plus d'autres options, add_efi_memmap et noapic. Ces deux options permettent le démarrage du MacbookPro sous Linux/SystemRescueCD.

 Il reste à brancher la clé USB sur le Macbook Pro, à démarrer dessus, et la copie n'est plus qu'affaire d'identifier les bons supports.