notes/Образ_SD_dd.md

83 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

### Образ SD-карты с помощью dd
_Чтобы размер образа занимал как можно меньше места и, соответственно быстрее создавался, необходимо на SD-карте уменьшить размер раздела (отрезать всё свободное место), т.к. в создаваемый образ оно тоже попадает_
_Уменьшить размер раздела можно с помощью стандартной утилиты **Диски** (Linux Mint), **Gparted**, **parted**_
1. Расчет размера разделов
```bash
sudo fdisk -l /dev/sdb
```
вывод будет примерно такой:
Диск /dev/sdb: 29,29 GiB, 31439454208 байт, 61405184 секторов
Disk model: Card Reader
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x1238ae1a
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sdb1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/sdb2 532480 5279743 4747264 2,3G 83 Linux
Обратим внимание на 2 параметра:
Конец - **5279743** (это последний сектор нашего раздела)</br>
Размер секторов - **Единицы: секторов по 1 \* 512 = 512 байт**</br>
Таким образом нам необходимо сохранить:</br>
5279743 + 1 (первый сектор начинается с 0) = 5279744 секторов</br>
5279744 \* 512 (размер сектора) = 2703228928 байт</br>
2703228928 / 1024 / 1024 = 2578 Мб (обязательно округляем в большую сторону)</br>
2. Создание образа
еобходимо запустить запись с нужными параметрами_
```bash
sudo dd if=/dev/sdb of=$HOME/Backup/image.img bs=1M count=2578 conv=noerror,sync status=progress
```
либо с учетом пустого места (без параметра count)
```bash
sudo dd if=/dev/sdb of=$HOME/Backup/image.img bs=1M conv=noerror,sync status=progress
```
if=/dev/sdb - откуда
of=/$HOME/Backup/image.img - куда
bs=1M - размер одного блока при передаче данных (влияет на скорость записи)
с - один символ;
b - 512 байт;
kB - 1000 байт;
K - 1024 байт;
MB - 1000 килобайт;
M - 1024 килобайт;
GB - 1000 мегабайт;
G - 1024 мегабайт.
count=2578 - количество записываемых блоков
conv=noerror,sync - norerror -игнорировать ошибки, sync -записывать 0 в ошибочные секторы, чтобы не нарушить структуру
status=progress - выводить в консоль сведения о процессе записи
образ можно сразу сжать при создании
```bash
sudo dd if=/dev/sdb bs=1M count=2578 conv=noerror,sync | gzip -c > /$HOME/Backup/image.img.gz
```
3. Восстановление образа
если образ создавали без сжатия
```bash
sudo dd if=$HOME/Backup/image.img of=/dev/sdb bs=1M conv=noerror,sync status=progress
```
если создавали со сжатием
```bash
gunzip -c $HOME/Backup/image.img.gz | sudo dd of=/dev/sdb conv=noerror,sync status=progress
```