Raspberry Pi — это великолепный универсальный комплект, способный выполнять такие разнообразные проекты, как управление медиацентром для использования в качестве радиовещательного радио. Но у него есть один явный недостаток: невозможность загрузки с USB.
Ну, до сих пор это так.
Если вы используете Raspberry Pi 3 , теперь можно отказаться от загрузки с microSD и вместо этого загрузить компьютер с USB-устройства. Это может быть флешка, SSD с 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. После этого мы продолжим копирование ОС.
Начните с идентификации вашей флешки с lsblk
команды lsblk
.
В этом примере SD-карта — mmcblk0
а USB-накопитель — sda
(отформатированный раздел — sda1
). Если у вас подключены другие USB-устройства хранения данных, USB-накопитель может быть sdb, sdc и т. Д. Установив имя USB-накопителя, размонтируйте диск и используйте разделенный инструмент для создания раздела размером 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 до тех пор, пока вы не введете exit в строке 8.
Подготовьтесь к перезагрузке с USB!
Еще несколько вещей, чтобы разобраться, прежде чем ваш 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 ? Проверьте его особенности и характеристики.