Если обновление было прервано, а ядро находилось в процессе обновления, у вас, вероятно, все еще есть initramfs старого ядра в /boot
при установленном новом ядре, что может помешать загрузке. Это также может произойти в только что установленной системе, если вы забыли правильно смонтировать раздел /boot
.
Самый простой способ исправить это — загрузиться с установочного носителя archlinux, выполнить chroot
и переустановить ядро, используяpacman
# mount /dev/yourrootdisk /mnt
# mount /dev/yourbootdisk /mnt/boot # if needed
# mount /dev/yourefipartition /mnt/boot/EFI # if you use EFI (optionnal)
# arch-chroot /mnt
# pacman -S linux
Файлы, которые следует изменить, это /boot/initramfs-linux.img
и /boot/initramfs-linux-fallback.img
, поэтому вам, вероятно, не нужно монтировать раздел EFI
Если по какой-то причине вы не можете использовать pacman
, вы также можете запустить mkinitcpio
вручную, чтобы перегенерировать initramfs для использования нового ядра
Я ошибся в формате файла. Я запустил эту команду # fsck -N /dev/mmcblk0p1
, чтобы проверить формат, и она вывела это:
[/run/current-system/sw/bin/fsck.ext2 (1) -- /dev/mmcblk0p1] fsck.ext2 /dev/mmcblk0p1
Позже я узнал, что это неправда, и что фактическая файловая система была vfat, как и предположил Германн. Установка с помощью этой команды устранила проблему:
# mount -t vfat /dev/mmcblk0p1 /path/to/mnt -o shortname=mixed -o utf8
The “shortname=mixed” keeps the case preserved, as otherwise vfat will convert any filename that’s 8 characters or less to lower case (default behavior is “shortname=lowercase”) and cause problems for rsync. UTF8 is what Windows uses when mounting filesystems, so we specify that to ensure that we’re mounting it the same way (default is to mount iso-8859-1, even though the underlying vfat filesystem will store filenames in UTF8 format).
Я нашел команду на этом сайте :https://www.clug.org/rsync-to-fat32-drives/