Сегодня я попытался обновить мой Arch Linux на Raspberry, но я получил ошибку:

error: could not prepare transaction
error: failed to commit transaction (conflicting files)
package: /bin exists in filesystem
package: /sbin exists in filesystem
package: /usr/bin exists in filesystem
Errors occurred, no packages were upgraded.

Итак, я следовал инструкциям, приведенным здесь.

После обновления некоторых пакетов с помощью pacman -S --force (включая тень пакета) я не могу войти ни с одной учетной записью и получить сообщение « Access denied .

Неужели я что-то не так? Пароли аккаунтов были сброшены?

2 ответа2

2

После обновления в последний раз я также получил довольно скучную установку (только потому, что я не читал инструкцию заранее)! Что я сделал, так это авторизовался с помощью archlinux CD (загрузочная флешка USB тоже бы это сделала) и привязался к моему «оригинальному» linux и обновил все оттуда. Я должен бежать прямо сейчас, но если вы хотите получить дополнительную информацию, я рад дать еще немного ...

2

Возможно, вы перезаписали /etc/shadow и /etc/passwd когда сделали pacman -S --force shadow . Попытка войти в систему через виртуальную консоль (например, tty для клавиатуры и монитора HDMI) или через последовательный порт (UART, подключенный к некоторым контактам GPIO) больше не будет успешной.

Извлеките SD-карту из Raspberry Pi, вставьте ее в другой компьютер под управлением Linux и с тенью (так что, скорее всего, в любом относительно современном дистрибутиве), а также:

  • Отредактируйте /etc/shadow и /etc/passwd на SD-карте вручную.
  • Исправьте /etc/shadow и /etc/passwd используя набор теней:

    1. Если пользователь не находится в /etc/shadow или /etc/passwd , создайте его заново.

      sudo useradd -M -R /path/to/sd/card/mount/point whatever_your_rpi_username_is
      
    2. Сбросить пароль пользователя.

      sudo passwd -R /path/to/sd/card/mount/point whatever_your_rpi_username_is
      

Синхронизируйте и размонтируйте SD-карту, затем вставьте ее обратно в Pi и попробуйте загрузиться с нее.

Другие пользователи Raspberry Pi могут быть обмануты или полностью пропали.

Вход через SSH не должен ничего менять по сравнению с входом в консоль, если вы перезаписали /etc/passwd или /etc/shadow .

Следите за важными новостями Arch Linux. Самые последние спасли бы вас от горя. Все двоичные файлы в /bin , /sbin и /usr/sbin были перемещены в /usr/bin и у вас все еще есть что-то в этом роде, поэтому pacman жалуется. Следуйте инструкциям в этой статье, но используйте свое суждение. Если они не решают проблему полностью (в конце концов, вы находитесь в нечистом состоянии), вы можете избежать ручного перемещения всего в /bin , /sbin и /usr/sbin в /usr/bin и попробовать снова.

Не используйте --force если вы не знаете, что делаете, или явно не сказали об этом разработчикам Arch.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .