Завантаження з жорсткого диска USB?


44

Чи є спосіб завантаження із зовнішнього жорсткого диска, підключеного до пристрою через USB-порт (на відміну від завантаження з SD-карти)?


1
Це лише посилання на власне посібник, тому я залишаю це як коментар: blog.krastanov.org/2014/01/30/booting-pi-reliably-from-usb
Крастанов

Відповіді:


8

Тепер, майже через п’ять років після того, як автор спочатку задав це питання,
Raspberry Pi офіційно підтримує завантаження з USB-накопичувача .

Однак це підтримується лише для Raspberry Pi 3 . Ось чому:

Чи можна буде завантажувати Pi 1 або Pi 2 за допомогою MSD?

На жаль ні. Код завантаження зберігається лише на пристрої BCM2837, тому для Pi 1, Pi 2 і Pi Zero потрібні SD-карти.


28

Неможливо завантажувати RPi з USB безпосередньо в справжньому сенсі цього слова. Однак ніщо не заважає комусь зробити міні-дистрибутив, який містив би / завантажував і якийсь менеджер завантаження. Потім це може реалізувати завантаження з USB або навіть середовища стилю PXE. Це може поміститися на крихітній SD-картці - тепер картки 64 Мб доступні за копійки. Я сподіваюся, що хтось запустить розповсюдження для цього - але до цього часу не знайшов.

Тим часом ви можете перемістити власний корінний розділ на жорсткий диск, щоб швидше завантажуватися, але це дещо задіяно, оскільки вам потрібно буде отримати ядро, яке підтримує USB-накопичувач. Хороші вказівки щодо цього можна знайти на веб- сайті: http://mitchtech.net/raspberry-pi-root-fs-on-usb-drive/


3
Це гарна ідея.
Відхилення

Оновлення: зараз існує експериментальна підтримка завантаження безпосередньо на USB; після початкового налаштування не потрібна sdcard.
Hydraxan14

21

З питань малинових питань Питання :

Ви повинні завантажуватися з SD, але USB HD може "перебрати" після початкового завантаження. Ви не можете завантажуватися без SD-карти.


1
це означає, що після того, як він перейде на жорсткий диск, більше немає потреби в машині пам'яті?
Сухайб

5

Дійсно, якщо ви можете жити лише з розділом 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 ...


1

Я замість цього використовував Windows на 100% створення.

Я використовував (безкоштовний) "Менеджер розділів MiniTool" і просто переніс завантаження на свою найменшу SD-карту, яку можна автоматично розширити за допомогою менеджера розділів. Відкрийте cmdline.txtта змінити на root=/dev/sda5.

Цей же менеджер розділів дозволить мені скопіювати ext4 на мій портативний 1 ТБ (FYI спочатку видаліть усі розділи з накопичувачів, щоб у вас був нерозподілений простір перед передачею). Вала - завантажений. Я зауважую, що у стандартного жорсткого диска час доступу трохи не вистачає, хоча вони мають дуже високі швидкості R / W в порівнянні з більшістю SD-карт.

Єдине питання, який у мене зараз є, це розширення розділу ext4 (root) з оригінальної 32 Гб (моєї оригінальної SD-карти). Тож у мене зараз є лише 32 Гб 1 ТБ. Хм. Я лише новачок з терміналом та його командами, тому розділення в Linux є трохи розмитим, але це керівництво допомогло ДУЖЕ добре.


Вибачте, який посібник?
Бекс

Вибачте, цей форум.
Дейв
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.