J'ai installé la dernière version d'ArchLinux (2014.06.01) sur un MacBook Pro 8,1 (15 ", si cela importe pour le matériel), double amorçage avec OSX en suivant les instructions du document officiel . guide d'installation . Toutefois, lorsque vous essayez de redémarrer le système nouvellement installé, il me renvoie à un shell de récupération:
ERROR: device 'UUID=<snip>' not found. Skipping fsck.
ERROR: Unable to find root device 'UUID=<snip>'.
You are being dropped to a recovery Shell
Type 'exit' to try and continue booting
sh: can't access tty: job control turned off
[rootfs /]#
(J'ai supprimé l'UUID car je ne voulais pas le taper, mais c'est le même que celui qui m'a été donné par blkid
(à partir du disque d'installation) pour la partition sur laquelle ArchLinux est installé)
Autresen lignesources suggère que cela est dû à un paquet pacman
, udev
, filesystem
ou linux
obsolète. Cependant, ils ne décrivent ce problème qu'après une mise à jour du noyau depuis un système en fonctionnement, pas une nouvelle installation. J'ai forcé à réinstaller ces paquets à partir de l'environnement Arch-chroot
au démarrage du disque d'installation, mais cela n'a pas changé la situation.
Au lieu de cela, un peu d'expérimentation avec mon grub.cfg
montre que quoi que l'on se plaint soit le paramètre root
de la commande linux
sélectionnant le fichier vmlinuz
à utiliser. En effet, changer root=UUID=<snip>
en root=LABEL=ArchLinux
ou root=/dev/sda8
(les deux décrivent l’emplacement où ArchLinux est installé et j’ai certainement utilisé la deuxième version avec succès auparavant avec une autre distribution) donne respectivement Unable to find root device 'LABEL=ArchLinux'
et Unable to find root device '/dev/sda8'
. En outre, GRUB semble être capable de trouver la partition par UUID, seul le noyau Linux se plaint de son absence, car le disque mémoire initial est correctement chargé (c'est-à-dire que ce n'est pas un GRUB erreur comme décrit ici mais plutôt une erreur linux).
Remarque secondaire: le shell de récupération est extrêmement limité et la sortie standard ne semble pas fonctionner correctement. Néanmoins, ls
fonctionne et la liste des fichiers montre un système de fichiers de base (temporaire), mais tous les périphériques de disque semblent être absents de /dev
. Cependant, je ne sais pas si cela fait partie de l'erreur ou non.
Ceci est similaire, mais pas identique à . Linux ne trouve pas le système de fichiers racine lors du démarrage , car la partition était ext4 Depuis le début. Ce n’est pas non plus exactement la même chose, mais peut-être est-il pertinent Impossible de démarrer ArchLinux sur Macbook Pro 7.1 - échec dans le shell de récupération ; ramfs
Shell au lieu d'un rootfs
Shell et les messages d'erreur diffèrent.
Au lieu de démarrer avec l'image normale, j'ai utilisé la version de secours et j'ai réussi à démarrer dans le système. En fin de compte, Linux n’a détecté aucun lecteur en raison du crochet block
mkinitcpio
(responsable des périphériques en mode bloc) dans l’image par défaut. Cela était dû au fait qu’il était placé après autodetect
dans /etc/mkinitcpio.conf
. Pour résoudre ce problème, la ligne HOOKS=...
de ce fichier doit être modifiée afin que block
vienne avant autodetect
Avant le correctif:
HOOKS="base udev autodetect block modconf filesystems keyboard fsck"
Après le correctif:
HOOKS="base udev block autodetect modconf filesystems keyboard fsck"
Exécuter mkinitcpio -p linux
pour régénérer la initramfs
then a résolu le problème de façon permanente.
J'ai rencontré un problème similaire mais avec une configuration différente. J'utilise ArchLinux sur une machine virtuelle et mon chargeur de démarrage est syslinux. J'ai utilisé votre astuce pour changer l'ordre des crochets du noyau mais je me suis quand même retrouvé dans un rootfs-Shell.
Ce qui a résolu le problème pour moi, c’était de changer la ligne APPEND
dans mon syslinux.cfg
de
APPEND root=UUID=<snip>
à
APPEND root=PARTUUID=<snip>
Vous pouvez facilement ajouter la PARTUUID
au syslinux.cfg
en utilisant une commande telle que blkid | grep sda1 | awk '{ print $7 }' >> /boot/syslinux/syslinux.cfg
en supposant que votre partition racine est /dev/sda1
.
Ensuite, vous pouvez utiliser votre éditeur de texte favori pour déplacer la ligne dans l'espace approprié.
EDIT: Je viens de reconnaître que le numéro de colonne dans le petit script awk peut varier, il est donc préférable d’examiner le résultat avant de le transférer dans syslinux.cfg