Зменшення розміру образу для raspberry pi, клас робототехніки

Зменшення розміру образу для raspberry pi, клас робототехніки
Часто так трапляється, що при копіюванні образу однієї SD карти на іншу, з'являється помилка про брак місця. Начебто образ знятий з карти розміром 8Гб, і копіюємо на карту точно такого ж розміру, а місця все одно не вистачає. В чому справа?

Причина такої неприємності криється в тому, що розмір, зазначений на будь-якому електронному носії, є лише орієнтовним. Практично завжди носії різних виробників і навіть різних моделей однієї марки мають відрізняється розмір. Ці відмінності можуть не перевищувати декількох мегабайт, або навіть сотень кілобайт, але для копіювання образу це стає критичним.

Щоб вирішити проблему нам потрібно якось вкоротити вихідний образ. Як правило, карта рідко буває забита під зав'язку, так що відкусити зайві гігабайти образу буде цілком нешкідливим кроком. Цим ми і займемося.

1) Перше, що нам потрібно зробити - це створити свіжий образ SD-карти. Розмір образу буде ідентичний розміру карти, з якою його знято. Щоб цей образ кудись зберегти, нам буде потрібно носій більшого розміру. Наприклад, якщо образ буде мати розмір 8Гб, для створення можна використовувати звичайну USB флешку на 16Гб або 32Гб.

2) Встромляємо флешку в USB порт і з'ясовуємо ім'я, видане їй операційною системою. Робимо це за допомогою утиліти fdisk:

Зменшення розміру образу для raspberry pi, клас робототехніки

Судячи з побаченого, флешка отримала ім'я / dev / sda1 і на ній файлова система NTFS. Також ми бачимо, що основна SD карта розбита на два розділи: mmcblk0p1 і mmcblk0p2. Зробимо висновок, що сама карта називається / dev / mmcblk0. це нам стане в нагоді.

3) Тепер монтуємо флешку за допомогою команди mount, попередньо створивши для неї папку:

Після виконання цієї команди в папці / mnt / usbf з'явиться вміст нашої флешки.

4) Створюємо образ SD карти на флешці:

У цій команді bs - розмір блоку. Чим він менше, тим довше буде тривати процес створення. Зазвичай ставлять 4M, а якщо щось піде не так - можна спробувати bs = 1M. Для образу розміром 16Гб час процедури може скласти близько години.

5) Після того, як образ буде створений, приступимо до видалення з нього порожнього простору. Для цієї операції використовуємо bash-скрипт від sirlagz. трохи модифікований для урізання з образу тільки 90% порожнього простору.

Створюємо в домашній папці порожній файл і робимо його ісполянемим:

6) Щоб скрипт запрацював, нам знадобиться доустановити пакет bc:

Говоримо yes на всі питання, які задасть установник.

7) Ну все, тепер ми готові до процедури. Запускаємо скрипт, вказавши в якості параметра раніше створений образ:

Чекаємо закінчення його роботи.

От і все. Після виконання скрипта, розмір образу my_raspbian.img стане набагато менше вихідного, і тепер його можна буде записати на будь-яку карту відповідного розміру.

срасібо за опис ... але я не програміст ... поробовать по пунктам ... щось не вийшло ...
питання:
1. треба робити все під польщователем root?
2. Ви описуєте: (1) Перше, що нам потрібно зробити - це створити свіжий образ SD-карти) це треба закачати образ або ви описуєте, що просто потрібна флешка ... порожня?
3. Ви описуєте в останньому пункті: (Чекаємо закінчення його роботи.) Що після цього? образ з'являється на флешці ...

Щодо root. А в якому саме місці ламається дана процедура? Може бути проблема в чому іншому. Але можна спробувати і під root, гірше не буде.

В кінці процедури, образ, який був вказаний як параметра скрипта, стане менше розміром. Після цього його потрібно буде записати на SD-карту.

Слід додати, що якщо образ більше 4 ГБ, то флешка повинна бути відформатована у відповідній файлової системи (напр NTFS).
Оскільки Raspbian «з коробки» NTFS не підтримує, необхідно виконати:
sudo apt-get update
sudo apt-get install ntfs-3g
Після цього стає доступна запис на NTFS носій.