@lavAzza2

Как сделать копию ОС Raspbian на SD-карту меньше размера?

Ситуация следующая:
На Raspberry pi 3 ОС Raspbian установлена на SD-карте 32Гб. Используется меньше 6 Гб.
Для повышения надежности системы я решил сделать рейд-1 из 2-х SD-карт по 16 Гб - одна в слоте, другая через USB-кардридер. (Кстати, вопрос - будет ли оно работать?)
Соответственно, встала задача переноса ОС с 32 Гб карты на 16 Гб карту. Как это сделать?
Попытался сделать образ Win 32 Disk Imager, он, естественно, сделал полный образ карты, т.е. 32 Гб.
Если не сложно - просьба дать подробный ответ, в Linux я новичок.
  • Вопрос задан
  • 1277 просмотров
Пригласить эксперта
Ответы на вопрос 1
насчет RAID не скажу, а вот урезать размер образа можно, например так (нужен Linux PC)
1. lsblk. находим в выводе sd карту на 32 Gb (/dev/sdX)
2. sudo umount /dev/sdX{1,2} (вместо "sdx" -- имя устройства из предыдущей команды)
3. mkdir mnt
4. sudo mount /dev/sdX2 mnt
5. sudo mount /dev/sdX1 mnt/boot
6. (cd mnt && tar czpf ../rootfs.tar.gz *)
7. sudo umount /dev/sdX{1,2}
теперь можно вынуть sd карту

8. ставим утилиту kpartx
9. создаем файл на 16Gb. dd if=/dev/zero of=fake_blockdevice.img bs=1M count=16000
10. делаем из него новое блочное устройство: sudo kpartx -v -a fake_blockdevice.img
11. lsblk. находим имя устройства (/dev/sdY}
12. делаем разметку разделов и форматируем их. например, как здесь, пункты 1-4 (в 3 и 4 только команды mkfs.*) https://archlinuxarm.org/platforms/armv8/broadcom/...
13. sudo mount /dev/sdY2 mnt/
14. mkdir mnt/boot
15. sudo mount /dev/sdY1 mnt/boot
16. sudo tar xzpf rootfs.tar.gz -C mnt. распакует архив, созданный в п.6
17. sudo umount /dev/sdY{1,2}
17. sync
profit. на выходе имеем файл размером в 16Gb, который можно записать на карту памяти с помощью dd или Win 32 Disk Imager
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы