Полная загрузка Linux на Raspberry Pi3 с USB-флэшки

Предлагаю наиболее точный вариант подготовки (клонирования) образа Linix Rasbian c SD-карты и его загрузки с USB-носителя. Оттачивать свое мастерство будем на Linyx Raspian. Нам понадобится чистая USB-флэшка, желательно такого же объема как и наша SD-карта. За основу материала был взят пост отсюда (спасибо автору за краткий материал). Но он у меня не заработал без косметических правок. Об этом более подробно и пошагово.

PS: производительность дисковой системы снизится в разы т.к. USB-флэшка не обладает таким быстродействием как SD-карта. Но USB-более живучая чем SD, так что будьте готовы что в любой момент SD-без видимых причин может не подавать признаки жизни. 🙂

Подготовка образа Linux с SD-карты на USB-флэшку

Втыкаем нашу USB флэшку в свободный порт на Raspberry Pi3. Определяем в Linux какое это /dev устройство в системе выполнив команду от имени root:

sudo fdisk -l

ищем, что-то подобное  в списке /dev/sd? и находим

Disk /dev/sda: 14.9 GiB, 16008609792 bytes, 31266816 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7e9ba571

Разделы на SD-карте с Raspbian имеют вот такие партиции:

Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 93813 85622 41.8M c W95 FAT32 (LBA)
/dev/mmcblk0p2 94208 15728639 15634432 7.5G 83 Linux

вот такие партиции мы и будем создавать  на USB-флэшке

Теперь создаем два раздела на нашей USB-флэшке необходимых для загрузки Linux. Если на диске есть какие-то оставшиеся разделы, то жмем d после запуска sudo parted /dev/sda и все стираем. Сразу, не выходя создаем разделы:

sudo parted /dev/sda
mktable msdos
mkpart primary fat32 0% 100M
mkpart primary ext4 100M 100%
quit

и перезагружаемся

sudo reboot

отформатируем эти два раздела созданные на нашей USB-флэшке

sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
sudo mkfs.ext4 /dev/sda2

Теперь необходимо нам эти разделы склонировать данные с SD-карты. Для этого, мы сначала смонтируем разделы USB-флэшки в какой-то каталог (например: /mnt/usbstick) и запустим утилиту копирования rsync 

sudo mkdir /mnt/usbstick/boot 
sudo mount /dev/sda1 /mnt/usbstick/boot/
sudo mkdir /mnt/usbstick
sudo mount /dev/sda2 /mnt/usbstick/

запуск копирования (клонирования Linux системы) на USB флэшку. Процесс весьма долгий.

sudo rsync -ax --progress / /boot /mnt/usbstick

Подготовка загрузочной записи

когда закончится процесс копирования, запускаем команду

sudo sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/usbstick/boot/cmdline.txt

Теперь самое главное. Здесь нужно быть внимательным и аккуратным. Каждая партиция в системе имеет свой PARTUUID (метка). Так вот нам необходимо в конфигурационных файлах (fstab и cmdline.txt) на USB-флэшке в ручную их поменять, которые остались со старой партиции SD-карты, иначе при загрузке с USB-флэшки будет искать неверный PARTUUID. Найдем, что это за метки такие и поменяем их, выполнив

sudo ls /dev/disk/by-partuuid 
или
sudo ls -l /dev/disk/by-partuuid

что-то подобное вы увидите в результате :

1с4cf327-01 1с4cf327-02 7e9ba571-01 7e9ba571-02 (из первой команды). Вторая команда ls с ключом -l, укажит вам какая партиция принадлежит логическому разделу диска.

 … – 01 это boot загрузчик…- 02 это корневой раздел

PS: вот еще полезная команда (она вам даст полную картину ху из ху)

/sbin/blkid

так вот 1с4cf327-01  1с4cf327-02 – принадлежит SD-карте, а 7e9ba571-01/7e9ba571-02-USB-флэшке. 

sudo vi /mnt/usbstick/boot/cmdline.txt

и заменяем в строке root=PARTUUID=1с4cf327-02 на 7e9ba571-02. Также это проделываем в файле fstab

sudo vi /mnt/usbstick/etc/fstab

и заменяем в строке 

PARTUUID=1с4cf327-01 на 7e9ba571-01 
PARTUUID=1с4cf327-02 на 7e9ba571-02 

Теперь последним шагом мы разрешаем загрузку с USB внутри SoC чипа выполнив

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

после всего выключаем Raspberry Pi3

sudo poweroff

вытаскиваем SD-карту из слота и включаем малинку. 🙂

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x