💡 Полезные Советы

Raspberry Pi 5 8GB с AliExpress превращается в кирпич после обновления: как исправить ошибку SDRAM и восстановить плату

24.02.26
217

Сегодня разберем очень коварную проблему, с которой сталкиваются энтузиасты при покупке Raspberry Pi 5 на китайских маркетплейсах. Вы заказываете версию на 8 ГБ для своего нового домашнего сервера, радостно запускаете её, система обновляется, и после первой же перезагрузки плата превращается в безжизненный кусок текстолита.

Спойлер: дело чаще всего не в браке, а в хитрых аппаратных модификациях. И чтобы докопаться до истины, нам потребуется старый добрый UART.

Откуда берутся дешевые 8 ГБ?

На AliExpress массово продаются Raspberry Pi 5, которые изначально сошли с конвейера с 2 ГБ оперативной памяти. Умелые мастера выпаивают дешевый чип памяти и ставят на его место банку на 8 ГБ (например, от Samsung).

Проблема кроется в том, что объем памяти на Raspberry Pi аппаратно задается крошечными конфигурационными SMD-резисторами на плате. Перепаивать эту мелочь под микроскопом слишком долго, поэтому китайские продавцы этого просто не делают. В итоге получается плата-мутант: аппаратно она заявляет загрузчику, что она версия на 2 ГБ, но физически несет на борту 8 ГБ.

Ловушка обновления загрузчика (EEPROM)

До середины 2024 года встроенная прошивка Raspberry Pi (EEPROM) закрывала глаза на такие расхождения. Система просто загружалась и позволяла Linux работать со всеми доступными 8 ГБ.

Но в новых версиях прошивок (начиная с конца 2024 года) разработчики внедрили строгую проверку соответствия железа. Теперь загрузчик сравнивает аппаратный ID платы с физически обнаруженным чипом. Если есть расхождение - загрузка намертво блокируется ради безопасности.

Именно поэтому свежекупленная плата может отлично работать в первый день, но стоит Raspberry Pi OS в фоновом режиме обновить EEPROM - и вы получаете нерабочее устройство.

UART - ваш главный помощник в отладке

Когда плата не грузится, на мониторе через HDMI вы видите просто черный экран. Вентилятор может крутиться на 100%, но что именно пошло не так - загадка. Здесь на помощь приходит аппаратная отладка.

UART (Universal Asynchronous Receiver-Transmitter) - это низкоуровневый интерфейс, который выводит текстовые логи работы процессора и загрузчика еще до того, как инициализируется видеовыход.

У Raspberry Pi 5 есть огромное преимущество перед прошлыми поколениями - выделенный 3-контактный порт отладки (JST-SH), расположенный между разъемами micro-HDMI.

После подключения USB-адаптера к компьютеру, вам нужно открыть терминал с правильными параметрами.

Параметры соединения:

  • Baud rate (скорость): 115200

  • Data bits: 8

  • Parity: None (Нет)

  • Stop bits: 1

  • Flow control: None (Нет)

Для Windows:

  1. Зайдите в Диспетчер устройств -> Порты (COM и LPT) и найдите номер вашего адаптера (например, COM3).

  2. Скачайте и откройте программу PuTTY.

  3. Выберите тип соединения (Connection type): Serial.

  4. В поле Serial line впишите ваш порт (например, COM3), а в поле Speed - 115200.

  5. Нажмите Open.

Запуск процесса отладки

  1. Нажмите кнопку Open внизу окна PuTTY. Откроется черное пустое окно терминала.

  2. Только после этого подайте питание на вашу Raspberry Pi 5 (подключите блок питания).

  3. В черном окне сразу же должен побежать белый текст - это логи загрузчика (EEPROM) и старта системы.

В окне терминала побегут логи. Если у вас модифицированная плата с новой прошивкой, вы увидите, как загрузка разбивается о критическую ошибку: BOOT ERROR: code 9 - 'SDRAM mismatch' (Процессор ожидает конфигурацию 16 Gbit (2 ГБ), а видит актуальную конфигурацию 64 Gbit (8 ГБ)).

Инструкция по "оживлению" платы

Чтобы плата стабильно работала, нужно откатить прошивку на ту, которая не проверяет память, и жестко запретить ей обновляться.

  1. Откат загрузчика:

    • Берем обычную USB-флешку или MicroSD, форматируем строго в FAT32.

    • Скачиваем с официального GitHub (raspberrypi/rpi-eeprom в разделе Releases) архив старой прошивки восстановления (ищите версии до сентября 2024 года). Можно скачать с нашего сайта.

    • Распаковываем все файлы из архива прямо в корень флешки (без подпапок).

    • Вставляем в выключенную Raspberry Pi, подаем питание. Ждем несколько секунд, пока зеленый диод на плате не начнет быстро и равномерно мигать (это означает успешную перепрошивку EEPROM).

  2. Блокировка обновлений (Критически важно!):

    • Вытаскиваем флешку восстановления, вставляем рабочий накопитель с Raspberry Pi OS и успешно загружаемся в систему.

    • Немедленно открываем терминал Linux и навсегда отключаем фоновую службу обновления EEPROM двумя командами:

      sudo systemctl disable rpi-eeprom-update
      sudo systemctl mask rpi-eeprom-update

Стоит ли игра свеч?

Покупка модифицированной Raspberry Pi на китайских маркетплейсах - это самая настоящая лотерея, в которой вы расплачиваетесь своим собственным временем. Ради сомнительной экономии вы рискуете получить нестабильного "франкенштейна" и потратить несколько вечеров кряду, пытаясь заставить его хотя бы загрузить операционную систему. Если вы собираете надежный домашний сервер, где важен стабильный аптайм и отсутствие сюрпризов, такой подход категорически не годится! Лучше переплатить за официальную плату и спать спокойно.

Но в этой ситуации есть один огромный, жирный плюс. Пытаясь оживить этот "кирпич", изучая логи через UART, откатывая версии загрузчика EEPROM и ковыряясь в консоли Linux через отладочный порт, вы прокачаете свои навыки траблшутинга на все сто. Вы потеряете кучу нервов и времени, но взамен получите тот самый хардкорный опыт работы с железом, который не даст ни один учебник. Не покупайте это, если вам нужно, чтобы всё работало "из коробки". Покупайте, если хотите научиться решать настоящие инженерные проблемы.

Бонус. Тот самый момент "окирпичивания" (Ошибка SDRAM)

Это ранняя стадия загрузки, где система проводит инвентаризацию "железа". Обратите внимание на ключевые строки:

  • 2.37 Expected configuration 16 Gbit: Загрузчик считывает конфигурационные резисторы на плате и ждет, что сейчас увидит 2 ГБ памяти (16 Гигабит).

  • 2.41 Actual configuration 32 Gbit byte-mode: Процессор физически стучится в чип памяти и понимает, что перед ним 4 ГБ (32 Гигабита). Примечание: на платах с 8 ГБ здесь будет значение 64 Gbit.

  • 2.48 BOOT ERROR: code 9 - 'SDRAM mismatch': Система уходит в жесткий отказ. Дальше этой строчки процесс не пойдет, пока мы не вмешаемся.

Чудесное исцеление (Успешная прошивка EEPROM)

Это лог успешного отката прошивки со спасательной флешки. Именно ради этих строк я и затевал всю возню с UART!

  • 6.82 Writing EEPROM: Начался процесс стирания злой прошивки и записи доброй (старой). Полоса из плюсиков и точек показывает прогресс.

  • 14.70 Verify BOOT EEPROM: Плата умная, она проверяет сама себя, чтобы убедиться, что новая прошивка легла ровно и без ошибок.

  • 19.08 BOOT-EEPROM: UPDATED: Победа. Загрузчик успешно обновлен. После этой строчки можно выключать питание, вставлять флешку с Raspberry Pi OS и наслаждаться работающим сервером или мини ПК. НО если у Вас OS RASBIAN не забудьте про:
     

    sudo systemctl disable rpi-eeprom-update
    sudo systemctl mask rpi-eeprom-update

Внимание: Система обновляется как вирус, даже без интернета!
ВАЖНО: даже если вы успешно откатили EEPROM через флешку восстановления, расслабляться рано. Официальная операционная система Raspberry Pi OS обновляет прошивку загрузчика без спроса, словно вирус.

Самое коварное здесь то, что ей для этого даже не нужен доступ к сети! Свежие файлы прошивки уже лежат внутри самого установочного образа операционной системы. Как только вы впервые загружаете свежую ОС, фоновая служба rpi-eeprom-update сверяет версии, находит в своих локальных папках более новую "злую" прошивку и молча подготавливает её к установке.

При следующей перезагрузке ваша плата снова превратится в кирпич, и вам в любом случае придется заново искать старые файлы и откатывать EEPROM, теряя кучу времени!

Именно поэтому порядок действий должен быть строго таким: откатили прошивку -> успешно загрузились в Linux -> немедленно отключили службу rpi-eeprom-update в терминале -> и только потом начали настраивать сеть и сервер.

 

Что такое MTProto FakeTLS и как настроить свой прокси для Telegram?

19.02.26
666

В этой статье подробно разберем, как работает технология MTProto FakeTLS, почему она так эффективна для Telegram, и пошагово настроим собственный неуязвимый прокси-сервер.

Что такое MTProto?

MTProto - это специализированный криптографический протокол, разработанный командой Telegram для безопасной передачи данных. Благодаря ему все ваши переписки надежно зашифрованы (как в прочном сейфе), и никто не может прочитать их содержимое. Однако обычный MTProto-прокси легко обнаруживается провайдерами: они не могут прочитать трафик, но видят его специфическую структуру и просто блокируют соединение.

Что такое FakeTLS?

Чтобы обмануть DPI, была придумана надстройка FakeTLS. Её задача - маскировка.
FakeTLS берет зашифрованный трафик Telegram и оборачивает его так, чтобы внешне он выглядел как абсолютно стандартное, безопасное HTTPS-соединение с популярным сайтом (например, с серверами Google, Microsoft или Apple).

Представьте, что вы отправляете секретный документ (ваше сообщение). Обычный прокси - это прозрачный конверт: почтальон (провайдер) не может прочесть текст, но видит, что письмо адресовано в Telegram, и выбрасывает его.
С FakeTLS вы кладете документ в стандартную коробку из-под популярного интернет-магазина. Почтальон видит обычную посылку, ничего не подозревает и свободно пропускает её.

Ограничения: почему не работают звонки?

Важно понимать, что MTProto идеально подходит для передачи текста, фото, видео и кружочков (используется надежный протокол TCP).
Однако голосовые и видеозвонки в Telegram требуют максимальной скорости без задержек, поэтому для них используется протокол UDP. MTProto-прокси не умеет маршрутизировать UDP-трафик. При попытке позвонить приложение попытается установить прямое соединение в обход прокси, и провайдер его заблокирует. (Для звонков лучше использовать полноценные VPN-решения, такие как Outline или WireGuard).

Пошаговая настройка сервера VPS/VDS

Для настройки нам понадобится виртуальный сервер (VPS/VDS) с установленной ОС Linux (рекомендуется Ubuntu) и доступом по SSH. Мы будем использовать современный и легковесный сервер mtg версии 2, работающий через Docker.

1. Подготовка сервера и установка Docker
Подключитесь к вашему серверу по SSH. Для маскировки под HTTPS-трафик нам обязательно нужен свободный порт 443. Проверим, не занят ли он:

ss -tulnp | grep :443

Если вывод пустой - порт свободен.

Установим Docker одной командой (если он еще не установлен):

curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh

2. Генерация криптографического ключа (FakeTLS)

Нам нужно создать специальный секрет, который заставит наш прокси притворяться сервером Google (dl.google.com). Выполните команду:

docker run --rm nineseconds/mtg:2 generate-secret --hex dl.google.com

В терминале появится длинная строка, начинающаяся с букв ee (например: ee123456789...dl.google.com). Скопируйте и сохраните её! Это ваш секретный ключ.

3. Создание файла конфигурации

Современная версия mtg требует отдельного файла настроек. Создадим его. Скопируйте приведенный ниже блок целиком, заменив ВАШ_СЕКРЕТ_ИЗ_ШАГА_2 на скопированный ранее длинный ключ (кавычки вокруг ключа нужно оставить!):

cat <<EOF > config.toml
secret = "ВАШ_СЕКРЕТ_ИЗ_ШАГА_2"
bind-to = "0.0.0.0:3128"
EOF

Нажмите Enter. Файл config.toml успешно создан в вашей текущей директории.

4. Запуск прокси-сервера

Теперь запустим сам сервер в фоновом режиме. Команда пробросит нужные порты и применит наш файл настроек:

docker run -d --name mtproto-proxy \
  -p 443:3128 \
  -v $(pwd)/config.toml:/config.toml \
  --restart unless-stopped \
  nineseconds/mtg:2 run /config.toml

Чтобы убедиться, что всё запустилось без ошибок, проверьте логи:

docker logs mtproto-proxy

Если вы не видите сообщений об ошибках, значит сервер успешно работает!

5. Настройка Firewall (UFW)
Обязательно нужно разрешить входящий трафик на наш порт маскировки.
Внимание: Если вы используете UFW, сначала обязательно разрешите порт SSH (22), чтобы не потерять доступ к серверу!

sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw enable

(Нажмите y, если система предупредит о возможном разрыве SSH-соединения).

Подключение в Telegram

Ваш сервер готов! Осталось только сформировать ссылку для себя и своих друзей/клиентов.

Шаблон ссылки выглядит так:
tg://proxy?server=IP_АДРЕС_СЕРВЕРА&port=443&secret=ВАШ_СЕКРЕТ

  1. Замените IP_АДРЕС_СЕРВЕРА на реальный IP вашего сервера.
  2. Вместо ВАШ_СЕКРЕТ вставьте ту самую длинную строку, начинающуюся на ee.
  3. Отправьте эту ссылку себе в "Избранное" в Telegram.
  4. Нажмите на нее и выберите "Подключить прокси".

В верхней части экрана Telegram появится значок щита с галочкой. Поздравляем, теперь ваш трафик надежно замаскирован, а блокировки остались в прошлом!

P.S: Не забудьте обезопасить сервер и другими полезными вещами, например fail2ban, доступ по ssh ключам и т.д.

Не работает Eshop белый экран, как починить? (Актуально с 2026 г.) Настройка прокси для Nintendo Switch через Every Proxy и VPN.

19.02.26
5515

Многие владельцы Nintendo Switch столкнулись с неприятной проблемой: eShop перестал открываться даже при смене региона аккаунта, выдавая глухую ошибку подключения. Причина кроется не только в прошлых ограничениях самой Nintendo, но и в недавних массовых блокировках инфраструктуры Cloudflare со стороны Роскомнадзора. Пытаясь заблокировать технологию шифрования ECH (Encrypted Client Hello) и другие сервисы, под блокировку попали целые подсети IP-адресов, на которых работают серверы цифрового магазина Nintendo.

Nintendo Switch не поддерживает установку VPN‑клиентов. На консоль нельзя поставить приложение, которое бы шифровало трафик или меняло IP‑адрес. Поэтому единственный рабочий способ - дать консоли доступ к интернету, который уже проходит через VPN.
И здесь появляется Android‑смартфон: он умеет подключаться к VPN, а с помощью приложения Every Proxy может "раздавать" этот VPN‑трафик другим устройствам в локальной сети.

Почему чужие прокси небезопасны, а локальный прокси через телефон - безопасен.

Публичный прокси - это как попросить незнакомца из подворотни(гетто) отправить вашу почту.
Локальный прокси - это как передать письмо самому себе в соседнюю комнату.

Когда люди слышат слово "прокси", они часто представляют себе сомнительные публичные сервера, где непонятно кто сидит по ту сторону. И это справедливо: чужие прокси действительно могут быть опасны! Но локальный прокси, который работает на вашем собственном телефоне, - это совершенно другая история.

Почему публичные или "чужие" прокси небезопасны.
Когда вы подключаетесь к прокси, который принадлежит неизвестному человеку или компании, вы фактически отдаёте им весь свой интернет‑трафик. Это значит, что владелец прокси может:
•     перехватывать незашифрованные данные (логины, пароли, токены, куки);
•     подменять ответы сайтов (фишинг, реклама, вредоносные скрипты);
•     собирать историю посещений;
•     встраивать трекинг;
•     вмешиваться в трафик игр и сервисов.
Публичные прокси - это чёрный ящик. Вы не знаете, кто их контролирует, что они логируют и какие цели преследуют.

Почему локальный прокси на Android безопасен

1. Вы контролируете устройство - прокси работает на вашем телефоне.
Никто, кроме вас, не имеет к нему доступа.

2. Трафик не выходит наружу - Switch -> ваш телефон -> VPN -> интернет. Никаких сторонних серверов между вами и VPN нет.

3. Прокси не шифрует и не расшифровывает данные - он просто пересылает трафик дальше. HTTPS‑сайты шифруются TLS, VPN шифрует весь трафик телефона, прокси не может "подглядывать" внутрь пакетов.
4. Прокси работает только в вашей Wi‑Fi сети.

5. Every Proxy не имеет доступа к вашему трафику

Подготовка

  1. У Вас должен быть телефон OS Android (владельцы Iphone идут лесом), у Вас должен быть рабочий VPN
  2. Подключите оба устройства к одной сети. Ваш Android-смартфон и Nintendo Switch должны быть подключены к одной и той же Wi-Fi сети (к одному роутеру).
  3. Установите VPN на телефон. Скачайте и установите любой надежный VPN-сервис на ваш Android, если у вас его еще нет.
  4. Установите Every Proxy. Скачайте приложение Every Proxy из Google Play Market.

Настройка Android-устройства

  1. Откройте ваш VPN-клиент на телефоне.
  2. Выберите сервер в стране, где Nintendo eShop работает без ограничений (например, США, Великобритания, Польша и т.д.), и подключитесь к нему.
  3. Убедитесь, что VPN работает (обычно появляется значок ключика в верхней панели телефона).

Настройка приложения Every Proxy

  1. Откройте приложение Every Proxy на телефоне.
  2. В главном меню вы увидите переключатель HTTP/HTTPS. Переведите его во включенное положение.
  3. Ниже появятся данные вашего подключения:
  4. IP Address (IP-адрес): Обычно выглядит как 192.168.X.X (выбирайте тот, который соответствует вашей локальной Wi-Fi сети, а не внутренний IP типа 10.X.X.X).

  5. Port (Порт): По умолчанию обычно 8080.
  6. Запишите или запомните эти две цифры - они понадобятся для консоли.
  7. Нажмите на три точки (Настройки) в правом верхнем углу Every Proxy и убедитесь, что в разделе настроек не стоят ограничения, мешающие раздаче интернета. (По умолчанию стандартных настроек достаточно).

Настройка Nintendo Switch

  1. Включите Nintendo Switch и зайдите в Настройки системы (иконка шестеренки на главном экране).
  2. Перейдите в раздел Интернет -> Настройки интернета.
  3. Консоль начнет поиск сетей. Выберите вашу домашнюю Wi-Fi сеть (к которой уже подключен телефон).
  4. Нажмите Изменить настройки.
  5. Прокрутите вниз до пункта Прокси-сервер и измените его значение на Вкл.
  6. В появившихся полях введите данные из Every Proxy:
  7. В поле Сервер введите IP-адрес из приложения (например, 192.168.1.149).
  8. В поле Порт введите порт из приложения (например, 8080).
  9. Сохраните изменения и нажмите Подключиться к этой сети.
  10. Консоль проверит подключение. Если все сделано верно, тест пройдет успешно.

💡 Для особо одаренных.

  • Регион аккаунта: Чтобы зайти в зарубежный eShop, регион вашей учетной записи Nintendo (Nintendo Account) должен быть регионом, который не находиться под санкциями. Регион аккаунта меняется через браузер на официальном сайте Nintendo (в настройках профиля), а не на самой консоли!

  • Спящий режим: Когда вы переводите телефон в спящий режим, система Android может "убивать" фоновые процессы для экономии батареи, включая Every Proxy или VPN. Если интернет на Switch пропал, проверьте телефон - возможно, нужно отключить оптимизацию батареи для этих двух приложений.

  • Отключение: Когда вы закончите скачивать игры и захотите играть по обычной сети, не забудьте зайти в настройки интернета на Switch и выключить Прокси-сервер.

Часто используемые команды Linux: быстрый справочник

11.02.26
128

📂 File and Directory Management (Управление файлами и папками)

Эти команды используются для навигации по файловой системе и работы с файлами.

  • ls (List): Выводит список файлов и папок в текущей директории.

  • pwd (Print Working Directory): Показывает полный путь к папке, в которой вы сейчас находитесь.

  • cd (Change Directory): Используется для перехода в другую папку.

  • mkdir (Make Directory): Создает новую папку.

  • rmdir (Remove Directory): Удаляет пустую папку.

  • touch: Создает пустой файл или обновляет время последнего изменения существующего файла.

  • cp (Copy): Копирует файлы или папки.

  • mv (Move): Перемещает файлы или папки (также используется для переименования).

  • rm (Remove): Удаляет файлы (или папки с ключом -r).

📝 File Viewing and Editing (Просмотр и редактирование файлов)

Инструменты для чтения содержимого файлов и внесения изменений.

  • cat (Concatenate): Выводит содержимое файла на экран полностью.

  • less: Позволяет просматривать длинные файлы постранично (можно листать вверх и вниз).

  • more: Старая версия less, позволяет листать только вниз (в большинстве случаев).

  • nano: Простой и понятный консольный текстовый редактор для новичков.

  • vim: Мощный и сложный консольный редактор для продвинутых пользователей.

  • gedit: Стандартный графический текстовый редактор (как Блокнот) для среды GNOME.

⚙️ Process Management (Управление процессами)

Команды для контроля запущенных программ и служб.

  • ps (Process Status): Показывает моментальный снимок текущих запущенных процессов.

  • top: Показывает список процессов в реальном времени (нагрузка на CPU, память).

  • kill: Завершает процесс по его идентификатору (PID).

  • killall: Завершает все процессы с указанным именем.

  • pstree: Показывает процессы в виде иерархического дерева (кто кого запустил).

  • htop: Более удобная, цветная и интерактивная версия top.

ℹ️ System Information (Информация о системе)

Диагностика ресурсов и параметров компьютера.

  • uname: Выводит информацию о системе (ядро, архитектура). Часто используют uname -a.

  • df (Disk Free): Показывает количество свободного и занятого места на дисках.

  • du (Disk Usage): Показывает размер папок и файлов.

  • free: Показывает использование оперативной памяти (RAM) и файла подкачки (Swap).

  • lscpu: Детальная информация о процессоре.

  • lshw (List Hardware): Подробная информация обо всем оборудовании.

  • lsblk (List Block Devices): Список всех подключенных накопителей и их разделов.

👤 User and Group Management (Управление пользователями и правами)

Администрирование учетных записей.

  • passwd: Смена пароля пользователя.

  • useradd: Создание нового пользователя.

  • userdel: Удаление пользователя.

  • usermod: Изменение параметров пользователя (например, добавление в группу).

  • groupadd: Создание новой группы пользователей.

  • groupdel: Удаление группы.

  • groups: Показывает, в каких группах состоит пользователь.

  • id: Выводит цифровые идентификаторы пользователя (UID) и групп (GID).

🌐 Network Configuration and Monitoring (Сеть)

Настройка сети и диагностика подключений.

  • ifconfig: Старая команда для просмотра и настройки сетевых интерфейсов (IP, маска).

  • ip: Современная и более мощная замена ifconfig.

  • ping: Проверка доступности удаленного узла (сервера/сайта).

  • netstat: Статистика сетевых подключений, портов и таблиц маршрутизации.

  • ss: Современная и быстрая замена netstat для просмотра сокетов.

  • traceroute: Показывает маршрут (узлы), который проходит пакет до цели.

  • ssh (Secure Shell): Безопасное подключение к удаленному компьютеру.

  • nc (Netcat): "Швейцарский нож" для сети — умеет читать и писать данные в сетевые соединения (тестирование портов, передача файлов).

📦 Package Management (Управление пакетами)

Установка и удаление программ. Команды зависят от вашего дистрибутива Linux.

  • apt-get / apt: Используются в Debian, Ubuntu, Mint. apt — более современная и удобная версия.

  • yum / dnf: Используются в RHEL, CentOS, Fedora. dnf — современная замена yum.

  • rpm: Низкоуровневый менеджер пакетов для Red Hat систем (установка .rpm файлов).

  • dpkg: Низкоуровневый менеджер пакетов для Debian систем (установка .deb файлов).

  • snap: Универсальный менеджер пакетов от Canonical (работает на большинстве дистрибутивов).

  • zypper: Менеджер пакетов для openSUSE.

Как сбросить пароль Raspberry Pi оффлайн (через редактирование shadow)

09.02.26
142

С моей Raspberry Pi 5 всё не так, при добавлении init=/bin/sh в cmdline.txt на Raspberry Pi появляется чёрный экран и кулер работает на максимуме, явный симптом зависания и проблема глубже на уровне железа. Поэтому я заказал UART провод, скоро подключимся по COM порту с помощью PuTTy и посмотрим, какие проблемы при старте системы. 

Раз init=/bin/sh ведёт себя нестабильно, можно сбросить пароль оффлайн, изменив shadow на карте памяти. Если у вас Windows, используйте виртуальную машину (VirtualBox/VMware) с любым Live-образом Linux (Ubuntu/Debian).

Шаг 1: Подготовка VirtualBox (если у вас Windows).
Проброс USB-картридера в виртуальную машину часто вызывает трудности, так как Windows "захватывает" устройство первой.

  1. Установите VirtualBox Extension Pack (обязательно для работы USB 2.0/3.0).
  2. Вставьте картридер с флешкой в ПК.
  3. В настройках машины: USB -> Поставьте галочку Включить контроллер USB -> Нажмите иконку с плюсом ("Добавить фильтр") -> Выберите ваш картридер (например, Generic Mass Storage).
  4. Важно: Теперь извлеките картридер из ПК. Запустите виртуальную машину.
  5. Когда Linux загрузится, вставьте картридер обратно в порт. Благодаря фильтру он сразу "пробросится" внутрь виртуальной машины.

Шаг 2: Монтирование файловой системы (выполняйте только если карта не смонтировалась автоматически - см. Бонус внизу)

  1. Узнайте имя вашего диска:
    1. lsblk
    2. Обычно карта памяти видна как sdb или mmcblk0. На ней будет два раздела:
      1. маленький bootfs (FAT32)
      2. большой rootfs (EXT4) - он нам и нужен.
  2. Смонтируйте раздел с системой (замените sdb2 на ваш раздел):

    sudo mkdir -p /mnt/rpi
    sudo mount /dev/sdb2 /mnt/rpi
    

Шаг 3: Удаление пароля

Нам нужно отредактировать файл /etc/shadow, где хранятся хеши паролей.

  1. Сделайте резервную копию на всякий случай:

    sudo cp /mnt/rpi/etc/shadow /mnt/rpi/etc/shadow.bak
  2. Откройте файл в редакторе:

    sudo nano /mnt/rpi/etc/shadow
    
  3. Найдите строку с вашим пользователем (обычно pi, root или ваш логин). Она выглядит примерно так:

    user:$6$kH...поток_символов...:19000:0:99999:7:::
  4. Что делать: Удалите всё, что находится между первым и вторым двоеточием.
    1. Было: user:$6$aBcDeF...:12345:...
    2. Стало: user::12345:...
    3. Примечание: Двоеточия должны остаться, между ними должно быть пусто. Это означает "пароль не задан".
  5. Сохраните файл: Ctrl+O -> Enter -> Ctrl+X.

Шаг 4: Завершение

  1. Размонтируйте диск перед извлечением, чтобы не повредить файловую систему:

    sudo umount /mnt/rpi
  2. Вставьте карту обратно в Raspberry Pi и включите его.
  3. Система пустит вас без пароля (или попросит логин - введите имя пользователя и нажмите Enter).
  4. Сразу же задайте новый пароль:
  5. passwd

Бонус: если раздел уже смонтирован (пример с /run/media/...) [Как у меня]

Во многих десктоп‑дистрибутивах (KDE, GNOME, XFCE) флешки и SD‑карты автоматически монтируются файловым менеджером в /run/media/ИМЯ_ПОЛЬЗОВАТЕЛЯ/МЕТКА_НОСИТЕЛЯ.

Это значит, что вам может не понадобиться вручную монтировать раздел в /mnt - достаточно сразу отредактировать файл по уже существующему пути.


Например, если система смонтировала root‑раздел Raspberry Pi как /run/media/merion/rootfs, достаточно выполнить:

sudo nano /run/media/merion(ваше имя пользователя)/rootfs/etc/shadow

Дальнейшие действия те же: найти нужного пользователя и очистить поле с хешем пароля между первым и вторым двоеточием, сохранить файл и корректно размонтировать устройство.

Чем отличается /mnt от /run/media ?

/mnt - исторически "универсальная" точка для ручного временного монтирования, куда админ сам монтирует нужный раздел командой mount.

/media и /run/media - стандартные места для автоматического монтирования съёмных носителей (флешки, SD‑карты и т.п.) через udisks/desktop‑окружение, обычно подподкаталог /run/media/ПОЛЬЗОВАТЕЛЬ/….

Как проверить состояние SD карты Raspberry Pi 5 и расшифровать логи?

07.02.26
117

Читатели моего сайта знают: 20 раз перезаписывал свою SD карту и давайте посмотрим жива ли она? В этом руководстве я расскажу как проверить SD карту Rastberry Pi 5. (Всё началось из-за проблем прошивки, но мне удалось отключить обновление).

P.S: Мне пришлось решать проблему с Rastbian, потому что на Ubuntu часто отваливался RDP (Удаленный рабочий стол), а у Raspberry Pi есть своя фишка, о которой я расскажу в следующих "Полезных советах".

Если у вас загружен графический интерфейс (Raspberry Pi OS Desktop), вы можете использовать официальную утилиту для тестов. Она не просто проверяет скорость, но и говорит, подходит ли карта для работы ОС.
 

Как запустить:

  1. Откройте меню Raspberry Pi (малинка в левом верхнем углу).
  2. Перейдите в раздел Accessories (Стандартные).
  3. Выберите Raspberry Pi Diagnostics.

(Если утилиты нет, установите её командой: sudo apt install agnostics)

Как пользоваться.

В открывшемся окне нажмите кнопку Run Tests. Утилита проведёт серию тестов записи и чтения файлов. Это займёт 1-2 минуты. Не запускайте в это время тяжелых программ.

Расшифровка результатов (Log).

После теста вы увидите либо PASS (Тест пройден), либо FAIL (Провал). Нажмите Show Log, чтобы увидеть детали. Вот на что смотреть:

ПараметрНорма (Target)За что отвечает
Sequential Write> 10,000 KB/secСкорость записи больших файлов. Если ниже 10 МБ/с - карта старая или низкого класса.
Random Write> 500 IOPSСамый важный параметр. Скорость записи мелких файлов (логов, кэша). Если тут FAIL - система будет "тормозить" и зависать.
Random Read> 1500 IOPSСкорость чтения мелких файлов. Влияет на скорость запуска программ и загрузки ОС.

Бонус, расшифровка логов со скриншота:

Тесты SD-карты у которой уже облезла краска, оказались не просто нормальными, они отличные! Карта памяти показывает производительность значительно выше минимальных требований Raspberry Pi. Несмотря на 20 циклов перезаписи, контроллер карты пока справляется с нагрузкой великолепно.

ТестВаш результатНорма (Target)Вердикт
Последовательная запись80 734 KB/sec10 000 KB/secВ 8 раз быстрее нормы. Это отличный показатель, запись больших файлов (видео, образы) будет очень быстрой.
Случайная запись (4k)1028 IOPS500 IOPSВ 2 раза выше нормы. Это критически важный параметр. Ваша система не будет «подтормаживать» при работе с логами и базами данных.
Случайное чтение (4k)2430 IOPS1500 IOPSВ 1.6 раза выше нормы. Запуск программ и загрузка ОС будут происходить быстро.