Есть ли способ загрузки с внешнего жесткого диска, подключенного к устройству через USB-порт (в отличие от загрузки с SD-карты)?
Есть ли способ загрузки с внешнего жесткого диска, подключенного к устройству через USB-порт (в отличие от загрузки с SD-карты)?
Ответы:
Теперь, спустя почти пять лет после того, как автор первоначально задал этот вопрос,
Raspberry Pi официально поддерживает загрузку с запоминающего устройства USB .
Однако это поддерживается только для Raspberry Pi 3 . Вот почему:
Будет ли возможно загрузить Pi 1 или Pi 2, используя MSD?
К сожалению нет. Загрузочный код хранится только на устройстве BCM2837, поэтому для Pi 1, Pi 2 и Pi Zero потребуются карты SD.
Невозможно загрузить RPi с USB напрямую в полном смысле этого слова. Однако ничто не мешает кому-то создать мини-дистрибутив, который будет содержать / boot и какой-то менеджер загрузки. Это может затем реализовать загрузку с USB или даже в стиле PXE. Это может уместиться на крошечной SD-карте - 64 МБ карты теперь доступны за копейки. Я ожидаю, что кто-то накатит дистрибутив для этого - но не нашел ни одного на сегодняшний день.
Тем временем вы можете переместить свой собственный корневой раздел на жесткий диск, чтобы ускорить загрузку, но это несколько усложняется, так как вам потребуется ядро с поддержкой USB-накопителя. Хорошие инструкции о том, как это сделать, можно найти по адресу: http://mitchtech.net/raspberry-pi-root-fs-on-usb-drive/
Из FAQ по Raspberry Pi :
Вы должны загрузиться с SD, но USB HD может «вступить во владение» после начальной загрузки. Вы не можете загрузиться без SD-карты.
Действительно, если вы можете жить только с разделом SD MS-DOS (/ boot), где находится ядро, вы можете иметь / root и все остальное на внешнем устройстве. Карта памяти USB или физический жесткий диск подходят как дополнительный диск. Хорошо то, что если вы не «дд» в неправильном месте, это неразрушающая процедура: одна правка и вы возвращаетесь к оригиналу,
Настроить эту конфигурацию довольно просто. Вы настраиваете свою установку как обычно и перемещаете / копируете раздел EXT4 на внешний диск.
Используя fdisk
раздел «» выбранного дополнительного диска, создайте раздел того же или большего размера, чем текущий mmcblk0p2 (или mmcblk0p5). Сохраните новую конфигурацию.
Найдите в этом примере имя раздела '/ dev / sda5', однако этот раздел будет зависеть от вашей конфигурации.
Скопируйте работающий раздел (примечание: не рекомендуется копировать работающий раздел, некоторые файлы находятся в нестабильном или открытом состоянии, однако работают нормально):
dd if=/dev/mmcblk0p2 of=/dev/sda5 bs=10M
Теперь отредактируйте следующую строку в файле /boot/cmdline.txt и измените местоположение «root»:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Для этой новой линии.
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/sda5 rootfstype=ext4 elevator=deadline rootwait
Обратите внимание, что загрузочный раздел - MS-DOS, поэтому, если вам нужно исправить, вы можете смонтировать SD в другом месте и отредактировать. Если загрузка не удалась, загрузчик покажет на экране (HDMI) доступные точки подключения.
Эта настройка зависит от порядка монтирования. Номер раздела может измениться, если устройство установлено в другом слоте; Вы можете сделать это место независимым следующим образом.
Найти устройство «UUID»
blkid /dev/sda5
/dev/sda5: UUID="13d368bf-6dbf-4751-8ba1-88bed06bef77" TYPE="ext4"
или создайте новый
tune2fs -U random /dev/sda5
и получить новое присвоенное имя
blkid /dev/sda5
/dev/sda5: UUID="25b6aa72-ddc4-485e-8044-900ac24d662b" TYPE="ext4"
затем отредактируйте ранее измененный cmdline.txt, изменив корневую папку на:
root=UUID=25b6aa72-ddc4-485e-8044-900ac24d662b
После загрузки новой конфигурации отредактируйте fstab, удалите старое примечание / mmcblk0p2: этот файл будет на «новом» / корневом устройстве.
Замените / dev / mmcblk0p% (% - это раздел linux)
nano /etc/fstab
UUID=25b6aa72-ddc4-485e-8044-900ac24d662b ...
В raspbian, просто изменить root
флаг , /boot/cmdline.txt
чтобы , root=/dev/sdaX
где X
это число соответствующего раздела.
Подробнее о том, как получить raspbian на вашем USB и т. Д., Вы можете проверить здесь http://blog.krastanov.org/2014/01/30/booting-pi-reliably-from-usb/
Я вместо этого использовал окна для 100% создания.
Я использовал (бесплатный) менеджер разделов MiniTool и просто перенес загрузку на мою маленькую SD-карту, которую можно автоматически расширить с помощью менеджера разделов. Откройте cmdline.txt
и измените на root=/dev/sda5
.
Тот же менеджер разделов позволил мне скопировать ext4 на мой переносимый 1 ТБ (к вашему сведению, сначала удалите все разделы с дисков, чтобы у вас было нераспределенное пространство перед переносом). Вала - загрузился. Я заметил, что со стандартным жестким диском времени доступа немного не хватает, хотя они имеют очень высокую скорость чтения / записи по сравнению с большинством SD-карт.
Единственная проблема, с которой я столкнулся сейчас, - это расширение раздела ext4 (root) с исходных 32 ГБ (моей исходной SD-карты). Таким образом, у меня есть только 32 ГБ из 1 ТБ в настоящее время. Хм. Я только новичок в терминале и его командах, поэтому разделение в linux немного волнует, но это руководство помогло ОЧЕНЬ хорошо.