LINUX.ORG.RU

Как можно экспортировать ОС Линукс с разбери пи для размножения?

 


0

1

Задача сделать перенос Линукса с одного разбери пи на другой разбери пи. Есть простой способ делаем полную копию ОС после записываем на другой носитель и запускаем и все работает. Делаю с помощью Win32DiskImager. Но проблема у меня ОС занимает пространство 64ГБ на разбери пи. И держать копию 64 ГБ затратно на рабочей машине. Есть какой способ сжать ОС а после развернуть на другой разбери?

Используй утилиты, которые работают не с посекторным образом SD карты, а снимают дампы файловой системы. Тебе уже посоветовали clonezilla, в ней есть набор утилит, которые могут снять копию файловой системы (dump) равный объёму занятого на SD карте пространства. Но вообще ты можешь переносить систему простым rsync, либо можешь подготовить образ как на raspberry pi imager и распаковывать им.

anonymous
()
  1. уменьшаешаешь корневой раздел до минимального размера
  2. копируешь его и бут:
dd if=/dev/sda1 of=/path/to/boot.img status=progress
dd if=/dev/sda2 of=/path/to/root.img status=progress
  1. ну а далее создаешь разделы, и копируешь образы меняя значения if и of местами. Не забываем загрузочному разделу выставить флаг boot:
parted /dev/sda <<EOF
... создаем разделы
set 1 boot on
EOF

mkfs.vfat -F12 /dev/sda1

FAT-12, FAT-16 и FAT-32 различаются минимальным размером загрузочного раздела для -F12 - менее 33 мегабайт, -f16 - 33 мегабайта, -f32 ~ 100 мегабайт (тут я точно не помню)

  1. если материнка не умеет не умеет автоматом грузиться, то нужно создать загрузочную запись через efibootmgr либо переустановив grub/bootctl и тп
rtxtxtrx ★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 2)
Ответ на: комментарий от rtxtxtrx

Я переносил просто

dd if=/dev/SD of=SD.0 bs=4M coun=1
dd if=/dev/SD1 if=SD.1 bs=4M
dump -0uf /mnt/backup/SD.root /

На новой SD карте просто записываешь на неё SD.0, потом в /dev/SD1 разворачиваешь посекторный образ первого раздела, далее mkfs.ext4 на втором разделе mount /dev/SD2 /mnt && restore -rf /mnt SD.root.

anonymous
()

Я тупо прямо с работающей малины копировал всё, кроме временного на целевую картус раздела на раздел, что в /boot, что в /, потом tunefs'ом принудительно присваивал корневому разделу целевой карты тот же id, что у корневого раздела донорской - всё спокойно заводилось.

P.S. На работающей малинке можно безболезненно отмонтировать /boot, и просто GParted'ом его вкопипастить вначало целевой карты. Тогда можно и без переименования обойтись.

piyavking ★★★★★
()

Я использую вот такую команду для архивирования системы:

tar cvp --exclude-backups --one-file-system --exclude=/lost+found --exclude=/dev --exclude=/home --exclude=/media --exclude=/mnt --exclude=/proc --exclude=/run --exclude=/sys --exclude=/tmp /

Архиватор для тар-архива опционально. А чтобы правильно разрархивировать - надо глянуть инструкцию по распаковке stage3/stage4 для генту. После распаковки нужно воссоздать исключённые папки --exclude= и перепроверить корректность монтирования в /etc/fstab.

Загрузчик проще всего склонировать образом раздела /boot через dd.

Есть простой способ делаем полную копию ОС после записываем на другой носитель и запускаем и все работает. Делаю с помощью Win32DiskImager.

Если тебя не волнуют косяки с разными размерами флешек и всего прочего, на что можно налететь при «просто копируем образ», тогда занули пустое пространство через dd if=/dev/zero of=/какой/нибудь/файл/на/ФС и сожми образ любым архиватором, более мощным чем gzip. Пустое место сожмётся в ноль, сжимаемые данные сожмутся насколько возможно. Записывать можно конвейром архиватор | dd.

kirill_rrr ★★★★★
()
Ответ на: комментарий от rtxtxtrx

4. если материнка не умеет не умеет автоматом грузиться, то нужно создать загрузочную запись через efibootmgr либо переустановив grub/bootctl и тп

Это малина, там нет ЭФИ и граба. Достаточно иметь первый /boot раздел в фат32 с нужными файликами и всё.

kirill_rrr ★★★★★
()