Як завантажити Raspberry Pi 3 з USB-накопичувача
Оценка пользователей: / 10
ПлохоОтлично 
There are no translations available.

Raspberry Pi 3 with USB DriveРозглянемо, як завантажити ваш Raspberry Pi 3 з таких USB-накопичувачів, як флеш-накопичувач або жорсткий диск USB.
Майте на увазі, що ця функція експериментальна і може працювати не з усіма USB-пристроями зберігання даних.
Програма режиму завантаження з USB
Перед тим, як RPi буде завантажуватися з мережі, він повинен бути завантажений за допомогою параметру конфігурації, щоб включити режим завантаження з USB. Для включення цього параметру конфігурації потрібні спеціальні файли start.elf і bootcode.bin. Вони можуть бути встановлені за допомогою "наступної" гілки оновлення RPi.
Перейдіть на сторінку завантаження та встановіть Raspbian на SD-карту за допомогою Win32DiskImager, якщо ви на Windows, або з dd, якщо перебуваєте на Linux/Mac. Завантажте RPi.
По-перше, підготуйте каталог /boot з експериментальними файлами завантаження:
# If on raspbian lite you need to install rpi-update before you can use it:
$ sudo apt-get update; sudo apt-get install rpi-update
$ sudo BRANCH=next rpi-update
Потім увімкніть режим завантаження з USB:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
Це додає program_usb_boot_mode=1 до кінця /boot/config.txt. Перезавантажте RPi з sudo reboot, а потім перевірте, що OTP була запрограмована:
$ vcgencmd otp_dump | grep 17:
17:3020000a
Переконайтеся, що вихідне значення 0x3020000a правильне.
Якщо хочете, то можете видалити рядок program_usb_boot_mode з config.txt (переконайтеся, що немає порожнього рядка в кінці), тоді, якщо ви помістите SD-карту в інший RPi, це не буде програма режиму завантаження з USB. Ви можете зробити це, наприклад, за допомогою sudo nano /boot/config.txt.
Підготовка USB-накопичувача
Тепер, коли ваш Pi 3 з підтримкою завантаження з USB, ми можемо підготувати USB-накопичувач для завантаження. Почніть, вставивши USB-накопичувач (який буде повністю стертий) в RPi. Замість того, щоб знову завантажити образ Raspbian, ми будемо копіювати його з SD-карти на RPi. Пристроєм-джерелом (SD-карта) буде /dev/mmcblk0, а пристроєм призначення (USB-диск) повинен бути /dev/sda за умови, що у вас немає інших підключених пристроїв USB.
Ми почнемо з використання команди parted, щоб створити розділ fat32 на 100MB, за яким слідує розділ Linux ext4, який буде займати іншу частину диска.
sudo parted /dev/sda

(parted) mktable msdos
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
(parted) mkpart primary fat32 0% 100M
(parted) mkpart primary ext4 100M 100%
(parted) print
Model: SanDisk Ultra (scsi)
Disk /dev/sda: 30.8GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  99.6MB  98.6MB  primary  fat32        lba
 2      99.6MB  30.8GB  30.7GB  primary  ext4         lba
Ваше виведення parted print повинне бути схоже на наведене вище.
Створення завантажувальної і кореневої файлових систем:
sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
sudo mkfs.ext4 /dev/sda2
Встановіть цільові файлові системи і скопіюйте працюючу систему raspbian на них:
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 ключі хоста:
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
Редагуємо /boot/cmdline.txt так, щоб він використовував USB-накопичувач як кореневу файлову систему замість SD-карти:
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
Нарешті, розмонтуйте цільові файлові системи і відключіть живлення RPi:
cd ~
sudo umount /mnt/target/boot
sudo umount /mnt/target
sudo poweroff
Відключіть живлення від RPi, видаліть SD-карту і знову підключіть джерело живлення. Якщо все пройшло добре RPi повинен через кілька секунд почати завантажуватися.
(Джерело EN: github.com)
 
>
КнигаНовости Практика поискаПартнерыО нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting