У меня есть две установки Archlinux в системе EFI, настроенной с помощью gummiboot. Один коренится в / dev / sda2, другой - в / dev / sdb1. Оба используют / dev / sda1, системный раздел EFI, в качестве своего / boot раздела, но размещают свои образы ядра в разных местах:
/boot/loader/entries/arch.conf:
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=/dev/sda2 rw
/boot/loader/entries/arch-here.conf:
title HERE Arch Linux
linux /here-img/vmlinuz-linux
initrd /here-img/intel-ucode.img
initrd /here-img/initramfs-linux.img
options cryptdevice=/dev/sdb1:cryptroot root=/dev/mapper/cryptroot rw
Это было нормально, пока я не обновил ядро с 4.8.13 до 4.9 sdb
. В следующий раз, когда я загрузился sda
, это не удалось с
Warning: /lib/modules/4.8.13-1-ARCH/modules.devname not found
...
ERROR: device '/dev/sda2 not found. Skipping fsck.
...
Я загрузился обратно sdb
, переустановил ядро 4.8.13 и обнаружил, что могу sda
снова загрузиться . Однако теперь я больше не мог загружаться sdb
, так как не удалось загрузить зашифрованный хук, необходимый для открытия / dev / sdb1.
Я решил эту проблему, выполнив chroot в / dev / sdb1 sda
и снова установив 4.9. Это позволило мне загрузиться, sdb
но нет sda
.
Теперь я застрял в цикле, где мне нужно перестраивать свой образ ядра каждый раз, когда я хочу переключаться между установками. Кажется, что два ядра как-то мешают.
Вот шаги, которые я выполняю в своей sda
установке каждый раз, когда я хочу загрузиться sdb
:
sudo cryptsetup open /dev/sdb1 cryptroot
sudo mount /dev/mapper/cryptroot /mnt/
sudo mount /dev/sda1 /mnt/boot/
chroot /mnt/
sudo pacman -U /var/cache/pacman/pkg/linux-4.8.13-1-x86_64.pkg.tar.xz /var/cache/pacman/pkg/nvidia-375.20-3-x86_64.pkg.tar.xz /var/cache/pacman/pkg/nvidia-utils-375.20-3-x86_64.pkg.tar.xz
Шаги, которые я выполняю, sdb
когда хочу перейти sda
, схожи, но не
/lib/modules/4.8.13-1-ARCH is not a valid kernel module directory
Я разрешаю это с помощью ссылки /lib/modules/4.9-1-ARCH на /lib/modules/4.8.13-1-ARCH.
Я уверен, что я делаю, по крайней мере, одну, если не так много вещей, здесь неправильно (эта символическая ссылка кажется ужасным хаком). Кажется, что мои ядра как-то мешают. Как я могу это исправить?