Я установил последнюю версию ArchLinux (2014.06.01) на MacBook Pro 8,1 (15 ", если это имеет отношение к оборудованию) с двойной загрузкой с OSX, следуя инструкциям в официальном руководстве по установке . Однако при попытке перезагрузиться в недавно установленную систему, он бросает меня в оболочку восстановления:
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 /]#
(Я удалил UUID, потому что не хотел его печатать, но он такой же, как тот, который мне дал blkid
(с установочного диска) для раздела, на котором установлен ArchLinux)
Другие интернет - источники предполагают , что это связано с устаревшей pacman
, udev
, filesystem
или linux
пакет. Тем не менее, они описывают эту проблему только после обновления ядра из рабочей системы, а не новой установки. Я принудительно переустановил эти пакеты из arch-chroot
среды при загрузке на установочный диск, но это не изменило ситуацию.
Вместо этого, немного поэкспериментируя с моими grub.cfg
шоу, показывает, что все, на что жалуются, является root
параметром linux
команды, выбирающей, какой vmlinuz
файл использовать. Действительно, изменение root=UUID=<snip>
на root=LABEL=ArchLinux
или root=/dev/sda8
(оба описывают, где установлен ArchLinux, и я, безусловно, успешно использовал вторую версию ранее с другим дистрибутивом), дает Unable to find root device 'LABEL=ArchLinux'
и Unable to find root device '/dev/sda8'
соответственно. Кроме того, GRUB, кажется, может найти раздел по UUID, только ядро linux жалуется на то, что он не найден, так как начальный ramdisk правильно загружен (т.е. это не ошибка GRUB, как описано здесь, а ошибка linux) ,
В качестве примечания: оболочка восстановления строго ограничена, и стандартный вывод не работает должным образом. Тем не менее, ls
работает, и список файлов показывает базовую (временную) файловую систему, но все дисковые устройства, по-видимому, отсутствуют /dev
. Однако я не знаю, является ли это частью ошибки или нет.
Это похоже, но не то же самое, что Linux не находит корневую файловую систему при загрузке , так как раздел был ext4 с самого начала. Также не совсем то же самое, но, возможно, имеет значение: Невозможно загрузить ArchLinux на Macbook Pro 7.1 - падает в оболочку восстановления , однако там он падает ramfs
вместо rootfs
оболочки, а сообщения об ошибках различаются.
Я столкнулся с аналогичной проблемой, но с другой настройкой. Я использую ArchLinux на виртуальной машине, а мой загрузчик - syslinux. Я использовал ваш трюк при переключении порядка хуков ядра, но все равно оказался в оболочке rootfs.
То, что исправило проблему для меня, изменило
APPEND
строку в моемsyslinux.cfg
отв
Вы можете легко добавить
PARTUUID
кsyslinux.cfg
нему команду, например,blkid | grep sda1 | awk '{ print $7 }' >> /boot/syslinux/syslinux.cfg
если ваш корневой раздел/dev/sda1
После этого вы можете использовать ваш любимый текстовый редактор, чтобы переместить строку в соответствующее пространство.
РЕДАКТИРОВАТЬ: я только что понял, что номер столбца в маленьком скрипте awk может отличаться, поэтому лучше взглянуть на вывод, прежде чем пипетировать его в
syslinux.cfg
источник