Автор Тема: Как слить текущий образ системы ?  (Прочитано 4272 раз)

Оффлайн warik

  • Administrator
  • Старейшина
  • *****
  • Сообщений: 559
  • Лайков: 157
  • Карма: +10/-0
    • Просмотр профиля
    • OrangePi.pp.ua
Re: Как слить текущий образ системы ?
« Ответ #15 : Январь 29, 2016, 11:58:54 pm »
Понял. Спасибо!
Orange Pi PC, Orange Pi One, Orange Pi Zero

Оффлайн bambr3312

  • Посвященный
  • ***
  • Сообщений: 130
  • Лайков: 28
  • Карма: +3/-1
  • Сами Вы, сэр, осётр!
    • Просмотр профиля
Re: Как слить текущий образ системы ?
« Ответ #16 : Январь 30, 2016, 09:36:54 am »
У всех allwinner фиксированный порядок загрузки - карта памяти, nand, usb. Так было и на всех Cubieboard
Относительность относительна (с)
Orange Pi 2, Orange Pi PC

rolin

  • Гость
Re: Как слить текущий образ системы ?
« Ответ #17 : Январь 30, 2016, 10:02:21 pm »
Команда fs_resize предлагаемая при первом запуске системы - это скрипт. Вот он
Не мог бы кто нить его подправить, чтобы процесс вспять обратить ?  Это же будет экстремально удобно - одна команда и раздел сжат.
Извините, вам запрещён просмотр содержимого спойлеров.

rolin

  • Гость
Re: Как слить текущий образ системы ?
« Ответ #18 : Январь 30, 2016, 10:12:04 pm »
То был скрипт с гитхаба
А вот то что я с нашей борды вытащил

mgena

  • Гость
Re: Как слить текущий образ системы ?
« Ответ #19 : Январь 31, 2016, 01:01:14 am »
На карте два раздела,
после установки оси и доустановки пакетов архивирую только второй раздел "linux".
Если с ситемой чтото не то - форматирую раздел "linux" и востанавливаю на него архив.
Если загрузчик, то ставлю парвоначальную прошивку, форматирую раздел "linux",
и также востанивливаю все из своего архива.
Архив получается немного больше чем слить образ через (dd c cжатием), но зато
далается быстрее и от размеров карточек независит

Оффлайн bambr3312

  • Посвященный
  • ***
  • Сообщений: 130
  • Лайков: 28
  • Карма: +3/-1
  • Сами Вы, сэр, осётр!
    • Просмотр профиля
Re: Как слить текущий образ системы ?
« Ответ #20 : Январь 31, 2016, 09:17:16 am »
Может я повторяюсь, но.. Что мешает уменьшить linux раздел, а потом слить образ карты с помощью Win32DiskImager?
Относительность относительна (с)
Orange Pi 2, Orange Pi PC

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Как слить текущий образ системы ?
« Ответ #21 : Январь 31, 2016, 10:06:18 am »
Может я повторяюсь, но.. Что мешает уменьшить linux раздел, а потом слить образ карты с помощью Win32DiskImager?
Мне мешает отсутствие windows...
Вот приходиться пользоваться Gparted-ом и dd.

Оффлайн bambr3312

  • Посвященный
  • ***
  • Сообщений: 130
  • Лайков: 28
  • Карма: +3/-1
  • Сами Вы, сэр, осётр!
    • Просмотр профиля
Re: Как слить текущий образ системы ?
« Ответ #22 : Январь 31, 2016, 10:58:44 am »
Может я повторяюсь, но.. Что мешает уменьшить linux раздел, а потом слить образ карты с помощью Win32DiskImager?
Мне мешает отсутствие windows...
Вот приходиться пользоваться Gparted-ом и dd.
Можно и dd.. всю карту.. я так понял, что основная дискуссия тут развивается вокруг сокращения размера образа
Относительность относительна (с)
Orange Pi 2, Orange Pi PC

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Как слить текущий образ системы ?
« Ответ #23 : Январь 31, 2016, 11:49:24 am »
dd можно всю флешку, а можно и только то, что нужно.
dd очень гибкий инструмент, как все консольные команды интуитивно не очень понятны, но когда его поймёшь.
В винде подобное поискать....

Оффлайн bambr3312

  • Посвященный
  • ***
  • Сообщений: 130
  • Лайков: 28
  • Карма: +3/-1
  • Сами Вы, сэр, осётр!
    • Просмотр профиля
Re: Как слить текущий образ системы ?
« Ответ #24 : Январь 31, 2016, 12:24:56 pm »
dd можно всю флешку, а можно и только то, что нужно.
dd очень гибкий инструмент, как все консольные команды интуитивно не очень понятны, но когда его поймёшь.
В винде подобное поискать....
я даже больше скажу за консоль.. cat'ом можно ядро на звуковую карту отправить и послушать как оно звучит  ;D
Относительность относительна (с)
Orange Pi 2, Orange Pi PC

rolin

  • Гость
Re: Как слить текущий образ системы ?
« Ответ #25 : Январь 31, 2016, 12:56:29 pm »
На карте два раздела,
после установки оси и доустановки пакетов архивирую только второй раздел "linux".
Спасибо, как вариант....  Но все эти операции нужно выполнять на стороннем компьютере с Линукс, я правильно понимаю ?
dd можно всю флешку, а можно и только то, что нужно.
dd копирует все подряд от начала и до обеда, файлы на диске разбросаны по поверхности, поэтому придется копировать мне весь 16гБ диск.
Этой утилитой можно только MBR скопировать и записать его на внешнюю флешку например, потом на ней воссоздать разделы и скопировать данные, потом изменить размер основного раздела и уже потом снять образ. Это несколько сложновато, вы не находите ?
Может я повторяюсь, но.. Что мешает уменьшить linux раздел, а потом слить образ карты с помощью Win32DiskImager?
А как ? Gparted не работает с примонтированными дисками, а отмонтировать рабочую файловую систему нельзя (?).
Значит нужно использовать другой компьютер с линуксом которого нет, или держать флешку с LiveCD, что мне не нужно.
Под винду пытался найти проги, что работают с Ext4, но мало их что вообще такие разделы видят, про ресайз там вообще речь не идет.

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Как слить текущий образ системы ?
« Ответ #26 : Январь 31, 2016, 03:01:14 pm »
В принципе руками из консоли у меня получилось уменьшить раздел до "0" свободного места на разделе, что в принципе не нужно, ибо для работы нужно оставить немного свободного места, допустим 100Мег.
Можно попробовать запихнуть это в скрипт, и посчитать параметры для dd которым можно будет сделать xxx.img без лишнего.
Сложно сказать будет ли этот скрипт работать на любой системе, тк даже в вышеприведенных скриптах очень много мест на которых они могут дать сбой выполнения.
« Последнее редактирование: Январь 31, 2016, 03:07:41 pm от AlDemin »

rolin

  • Гость
Re: Как слить текущий образ системы ?
« Ответ #27 : Январь 31, 2016, 05:13:49 pm »
В принципе руками из консоли у меня получилось уменьшить раздел до "0" свободного места на разделе, что в принципе не нужно, ибо для работы нужно оставить немного свободного места, допустим 100Мег.
Очень интересно. А можно пошагово и с комментариями ?

А я вот скачал минимальный образ с Gparted http://downloads.sourceforge.net/gparted/gparted-live-0.25.0-1-i686.iso  - 270 метров
Записал его на флешку прогой WinSetapFromUSB в режиме Linux ISO/ Other Grub4dos ISO
Флешку можно и дальше эксплуатировать как обычно, а можно с нее загрузиться и уменьшить размер раздела с системой для orange.

Но вот проблема - когда я после этого снял образ Win32DiskImager - то он опять оказался 16 гигов.

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Как слить текущий образ системы ?
« Ответ #28 : Январь 31, 2016, 05:26:11 pm »
Попробую на рабочей системе - отпишусь.

rolin

  • Гость
Re: Как слить текущий образ системы ?
« Ответ #29 : Февраль 01, 2016, 12:14:00 am »
Вроде бы разобрался :) все можно сделать прямо на борде
Технология такая:

1) Устанавливаем вспомогательную USB флешку подходящего размера, устанавливаем Gparted, если еще нет.
 Запускаем Gparted, удаляем с вспомогательной флешки все разделы, тут же смотрим пути для основного устройства,         вспомогательной флешки и рабочего раздела основного устройства.

2) Копируем на вспомогательную флешку  содержимое основного устройства от 0 до 172031 сектора, что соответствует концу стандартного размера раздела BOOT,то есть это 20 + 64 MiB. Уточнить можно в Gparted, кликнув на разделе BOOT основного устройства правой кнопкой и нажав Information. Интересует параметр Last sector. В следующей команде нужно использовать это значение + 1.
sudo dd if=/dev/mmcblk0 of=/dev/sda bs=512 count=172032

3) Теперь смотрим Gparted- на вспомогательной флешке оказалась копия файловой системы основного устройства. Но размер раздела Ext4 скорее всего неверный. Поэтому просто удаляем этот раздел и создаем заново, на весь размер оставшегося пространства вспомогательной флешки. Назвать его следует linux.

4) Теперь нужно примонтировать его и скопировать все файлы нашего рабочего раздела в этот аналогичный раздел на вспомогательной флешке.
sudo rsync -aulv -x / /media/orangepi/linux

5) После копирования и размонтирования, с помощью Gparted  можно уменьшить размер раздела на вспомогательной флешке до минимально необходимого. К сожалению он не даст уменьшить свободное место до нуля по неизвестной причине. Около 10% свободного места нужно оставить.

6) Теперь осталось снять образ получившегося носителя с помощью утилиты dd.
А аналогично пункту 2, в Gparted следует выяснить какой номер последнего сектора последнего раздела. Не забываем, что используем это число +1.
sudo dd if=/dev/sda of=/home/our_image.img bs=512 count=3698688
Согласно этой команды, образ появится в каталоге /home. Можно указать также например другую флешку, на которой есть достаточно места.

Полученный образ можно записать Win32DiskImager на карту любого подходящего размера.
После первого старта системы выполнить
sudo fs_resize
reboot


« Последнее редактирование: Февраль 01, 2016, 12:16:04 am от rolin »