Raspberry Pi – отличный универсальный комплект, способный реализовывать столь же разнообразные проекты, как управление медиацентром для использования в качестве радиовещания. Но у него есть один вопиющий недостаток: невозможность загрузиться с USB.
Ну, до сих пор это так .

Если вы используете Raspberry Pi 3, он теперь можно отказаться от загрузки с microSD и вместо этого загрузить компьютер с USB-устройства. Это может быть флэш-накопитель, твердотельный накопитель с USB-адаптером или даже полноразмерный жесткий диск USB. Это важное событие, поэтому давайте посмотрим, как настроить Raspberry Pi 3 для загрузки с USB.
Приступайте к работе: установите Raspbian и добавьте новые файлы
Лучше всего начать этот проект с новой копией Raspbian, поэтому загрузите последнюю версию (мы используем Raspbian Jessie) и установите ее обычным способом. Как только это будет сделано, безопасно извлеките карту из вашего ПК, вставьте ее в выключенный Raspberry Pi и загрузитесь, удаленно подключившись через SSH, как только он загрузится.
Войдите в систему (если вы не изменили свои учетные данные по умолчанию), затем выполните следующие команды, которые заменят стандартные
start.elf
и
bootcode.bin
файлы со свежезагруженными альтернативами:
sudo apt-get update
sudo BRANCH = next rpi-update
Это обновление доставляет два файла в каталог
/boot
. После загрузки файлов перейдите к включению режима загрузки USB с помощью:
echo program_usb_boot_mode = 1 | sudo tee -a/boot/config.txt
Эта команда добавляет
program_usb_boot_mode = 1
в конец файла
config.txt
.

Вам нужно будет перезагрузить Pi, как только он Выполнено.
Следующим шагом является проверка того, что OTP – одноразовая программируемая память – был изменен. Проверьте это с помощью:
vcgencmd otp_dump | grep 17:
Если результат представляет адрес
0x3020000a
(например,
17:3020000a
), то пока все хорошо. На этом этапе, если вы хотите удалить строку
program_usb_boot_mode=1
из
config.txt
файл, вы можете. Pi теперь поддерживает загрузку по USB, и вы можете использовать ту же карту microSD в другом Raspberry Pi 3 с тем же образом, поэтому удаление линии – хорошая идея.

Это легко сделать, отредактировав
config.txt
в nano:
sudo nano/boot/config.txt
Удалите или закомментируйте соответствующую строку (с предшествующим #).
Подготовьте загрузочное USB-устройство
Затем подключите отформатированный (или готовый к удалению) USB-накопитель в запасной порт на вашем Raspberry Pi 3. После того, как он будет вставлен, мы приступим к копированию ОС.
Начните с идентификации USB-накопителя с помощью команды
lsblk
.

В этом примере SD-карта
mmcblk0
, а USB-накопитель –
sda
(это форматированный раздел
sda1
). Если у вас есть другие подключенные USB-устройства хранения данных, USB-накопитель может быть sdb, sdc и т.д. Установив имя USB-накопителя, отключите диск и используйте инструмент parted для создания раздела 100 МБ (FAT32) и раздела Linux:
sudo umount/dev/sda
sudo parted/dev/sda
В приглашении (parted) введите:
mktable msdos
Вы можете быть проинформированы, что диск в противном случае задействован. В этом случае выберите Игнорировать , а затем обратите внимание на предупреждение о том, что данные на диске будут уничтожены. Как объяснялось ранее, это должен быть диск, который вы можете удалить или отформатировать, так что согласитесь с этим.
Если вы столкнетесь с какими-либо проблемами здесь, вам может потребоваться переключиться на рабочий стол (вручную или через VNC) и подтвердить, что диск отключен, прежде чем вводить команду mktable msdos в оконной команде. линия.
Продолжите со следующим:
mkpart primary fat32 0% 100M
mkpart primary ext4 100M 100%
print
Это выведет некоторую информацию о диске и новых разделах. Для выхода из parted с помощью Ctrl + C, перед созданием загрузочной файловой системы и корневой файловой системы:
sudo mkfs.vfat -n BOOT -F 32/dev/sda1
sudo mkfs.ext4/dev/sda2
Затем вам нужно смонтировать целевые файловые системы , перед копированием текущей ОС Raspbian на USB-устройство.
sudo mkdir/mnt/target
sudo mount/dev/sda2/mnt/target/
sudo mkdir/mnt/target/boot
sudo mount/dev/sda1/mnt/target/boot/
sudo apt-get update; sudo apt-get install rsync
sudo rsync -ax --progress//boot/mnt/target
Эта последняя команда, которая копирует все заново, и это займет некоторое время. Пора варить кофе!

Затем вам нужно обновить ключи хоста SSH, для поддержания соединения с перенастроенным Raspberry Pi после неизбежной перезагрузки:
cd/mnt/target
sudo mount --bind/dev dev
sudo mount --bind/sys sys
sudo mount --bind/proc proc
sudo chroot/mnt/target
rm/etc/ssh/ssh_host *
dpkg-reconfigure openssh-server
exit
sudo umount dev
sudo umount sys
sudo umount proc

Обратите внимание, что после sudo chroot (пятая команда выше) вы переключаетесь на root, поэтому пользователь будет переходить с pi @ raspberrypi на root @ raspberrypi , пока вы не введете выйти в строке 8.
Подготовьтесь к перезагрузке с USB!
Еще несколько замечаний t до того, как Raspberry Pi будет готов к загрузке с USB. Нам нужно снова отредактировать
cmdline.txt
из командной строки с помощью:
sudo sed -i "s, root =/dev/mmcblk0p2, root =/dev/sda2,"/mnt/target/boot/cmdline.txt
Точно так же необходимо внести следующие изменения в fstab:
sudo sed -i "s,/dev/mmcblk0p,/dev/sda,"/mnt/target/etc /fstab
После этого вы готовы размонтировать файловые системы перед выключением Pi:
cd ~
sudo umount/mnt/target/boot
sudo umount/mnt/target
sudo poweroff
Обратите внимание, что здесь используется новый
poweroff
команда в качестве альтернативы
shutdown
.
Когда Pi выключится, отключите питание перед извлечением SD-карты. Затем снова подключите источник питания – теперь ваш Raspberry Pi должен загружаться с USB-устройства! А для получения дополнительной помощи с вашим Pi, узнайте, как настроить Wi-Fi и Bluetooth на Raspberry Pi 3.
Готовы попробовать Raspberry Pi 4? Ознакомьтесь с его функциями и характеристиками.