1. Подготовка к работе с Linux по SSH Внимание ! Если у вас до сих пор нет ни загрузочной карты, ни даже файла образа Linux, то вам сюда: Скачать Armbian-server для H618 Файл скачанного архива (можно даже без распаковки) записать на SD-карту программой USBImager.1. Записанную с помощью PhoenixCard загрузочную (StartUp) SD-карту c прошивкой Android вставить в USB-кардридер и подключить его к USB-порту приставки 2. Записанную с помощью Usbimager SD-карту с образом Linux (серверная версия Armbian) вставить в слот (гнездо для SD-карты) приставки 3. На ПК с Windows запустить программу MobaXTerm, в которой настроить SSH-сессию (настройка делается один раз). В приведенном примере: IP-адрес приставки = 192.168.0.129, порт = 22, имя сессии = Armbian Tanix ![]() ![]() 4. Подать питание на приставку, в результате должен загрузиться Linux с карты. Если к приставке подключен по HDMI монитор (телевизор), то на нём отобразится лог процесса загрузки. Но для работы по SSH этот монитор не нужен, поэтому его можно не подключать. 5. Открыть в MobaXTerm сессию с именем Armbian Tanix, щелкнув по соответствующему имени: ![]() 6. Ввести логин root ![]() 7. В результате произойдет подключение по SSH к линуксу на приставке, позволяющее работать с командной строкой (в правом окне), а также пользоваться продвинутым файловым менеджером (в левом окне) ![]() 8. В файловом менеджере (в левом окне) перейти в папку /home и создать в ней рабочую папку, например, с именем box ![]() 9. В терминале (правое окно) сделать эту папку текущей с помощью команды: cd /home/box![]() 10. На этом подготовительные операции закончены, можно приступать к главному, а именно, сохранению в файлы информации, хранящейся на загрузочных носителях. И много чего другому... 11. Если в окне терминала ввести команду: ls /dev ,
root@transpeed-8k618-t:/home/box# ls /dev autofs i2c-0 mmcblk2p10 net sda21 block i2c-1 mmcblk2p11 null sda22 bsg initctl mmcblk2p12 port sda23 btrfs-control input mmcblk2p13 ppp sda24 bus kmsg mmcblk2p14 psaux sda25 cec0 lirc0 mmcblk2p15 ptmx sda3 char log mmcblk2p16 pts sda4 console loop0 mmcblk2p17 random sda5 core loop1 mmcblk2p18 rfkill sda6 cpu_dma_latency loop2 mmcblk2p19 rtc sda7 cuse loop3 mmcblk2p2 rtc0 sda8 disk loop4 mmcblk2p20 sda sda9 dma_heap loop5 mmcblk2p21 sda1 sg0 dri loop6 mmcblk2p22 sda10 shm ecryptfs loop7 mmcblk2p23 sda11 snd fb0 loop-control mmcblk2p24 sda12 stderr fd mapper mmcblk2p25 sda13 stdin full media0 mmcblk2p3 sda14 stdout fuse mem mmcblk2p4 sda15 sunxi_soc_info gpiochip0 mmcblk1 mmcblk2p5 sda16 gpiochip1 mmcblk1p1 mmcblk2p6 sda17 hidraw0 mmcblk2 mmcblk2p7 sda18 hidraw1 mmcblk2boot0 mmcblk2p8 sda19 tty10 hugepages mmcblk2boot1 mmcblk2p9 sda2 tty11 hwrng mmcblk2p1 mqueue sda20 tty12 root@transpeed-8k618-t:/home/box# Здесь и сейчас нас будут интересовать только такие (выделены цветом):
Примечание. Не исключено, что SD-карта с Linux будет отображаться как mmcblk0, но это для наших целей не принципиально. 2. Проверка загрузочной SD-карты 1. Сделать текущей папку (если это не было сделано раньше) /home/box:
2. Сохранить первые 32 блока (начало карты) в файл с именем usb32.img:
3. Проверить наличие файла в папке /home/box
То же самое можно увидеть в файловом менеджере (в левом окне) 4. Скопировать оба файла в выбранную папку на ПК, используя функцию Download файлового менеджера: ![]() 5. О том, как интерпретировать эти файлы, рассказано здесь: Как интерпретировать сохраненные файлы. 3. Проверка стоковой прошивки, хранящейся во внутренней eMMC-памяти приставки 1. Сделать текущей папку (если это не было сделано раньше) /home/box:
2. Сохранить первые 32 блока (начало карты) в файл с именем mmc32.img:
3. Проверить наличие файла в папке /home/box
4. Скопировать файл в выбранную папку на ПК, используя функцию Download файлового менеджера: ![]() 5. О том, как интерпретировать этот файл, рассказано здесь: Как интерпретировать сохраненные файлы. 4. Как сохранить резервные копии разделов eMMC 1. Всего на загрузочном носителе eMMC (это внутренняя флеш-память приставки) создано 25 физических раздела
(partitions). Однако все их сохранять (а тем более - всю флеш-память) в файлы не нужно, т.к. для восстановления
прошивки могут потребоваться только некоторые из них.
2. Команды, с помощью которых можно сохранить бекап этих разделов: Примечания. Размеры разделов можно посмотреть командой partx /dev/mmcblk2 (в столбце SIZE): root@transpeed-8k618-t:/home/box# partx /dev/mmcblk2 NR START END SECTORS SIZE NAME UUID 1 73728 139263 65536 32M bootloader_a a0085546-4166-744a-a353-fca9272b8e45 2 139264 204799 65536 32M bootloader_b a0085546-4166-744a-a353-fca9272b8e46 3 204800 205311 512 256K env_a a0085546-4166-744a-a353-fca9272b8e47 4 205312 205823 512 256K env_b a0085546-4166-744a-a353-fca9272b8e48 5 205824 336895 131072 64M boot_a a0085546-4166-744a-a353-fca9272b8e49 6 336896 467967 131072 64M boot_b a0085546-4166-744a-a353-fca9272b8e4a 7 467968 533503 65536 32M vendor_boot_a a0085546-4166-744a-a353-fca9272b8e4b 8 533504 599039 65536 32M vendor_boot_b a0085546-4166-744a-a353-fca9272b8e4c 9 599040 6890495 6291456 3G super a0085546-4166-744a-a353-fca9272b8e4d 10 6890496 6923263 32768 16M misc a0085546-4166-744a-a353-fca9272b8e4e 11 6923264 6923519 256 128K vbmeta_a a0085546-4166-744a-a353-fca9272b8e4f 12 6923520 6923775 256 128K vbmeta_b a0085546-4166-744a-a353-fca9272b8e50 13 6923776 6923903 128 64K vbmeta_system_a a0085546-4166-744a-a353-fca9272b8e51 14 6923904 6924031 128 64K vbmeta_system_b a0085546-4166-744a-a353-fca9272b8e52 15 6924032 6924159 128 64K vbmeta_vendor_a a0085546-4166-744a-a353-fca9272b8e53 16 6924160 6924287 128 64K vbmeta_vendor_b a0085546-4166-744a-a353-fca9272b8e54 17 6924288 6925311 1024 512K frp a0085546-4166-744a-a353-fca9272b8e55 18 6925312 6956031 30720 15M empty a0085546-4166-744a-a353-fca9272b8e56 19 6956032 6988799 32768 16M metadata a0085546-4166-744a-a353-fca9272b8e57 20 6988800 7021567 32768 16M private a0085546-4166-744a-a353-fca9272b8e58 21 7021568 7025663 4096 2M dtbo_a a0085546-4166-744a-a353-fca9272b8e59 22 7025664 7029759 4096 2M dtbo_b a0085546-4166-744a-a353-fca9272b8e5a 23 7029760 7062527 32768 16M media_data a0085546-4166-744a-a353-fca9272b8e5b 24 7062528 7095295 32768 16M Reserve0 a0085546-4166-744a-a353-fca9272b8e5c 25 7095296 30785502 23690207 11.3G userdata a0085546-4166-744a-a353-fca9272b8e5d Чтобы получить доступ к разделу пользовательских данных (userdata) для копирования и сохранения файлов, достаточно смонтировать раздел userdata на предварительно созданную папку (в примере ниже - с именем qqq): root@transpeed-8k618-t:/home/box# mount /dev/mmcblk2p25 qqq После этого его содержимое становится доступным в файловом менеджере: ![]() Продолжение окна файлового менеджера (после прокрутки)
![]() Например, содержимое папки, которая в андроиде имеет имя sdcard (в ней все стандартные папки), можно увидеть в папке media/0: ![]() Аналогичным образом можно смонтировать и получить доступ к файлам, содержащихся в разделе bootloader (это набор графических файлов для загрузчика U-Boot). Однако смонтировать и получить таким образом доступ к системным разделам (system, product, vendor) подобным способом
не удастся, т.к. эти разделы являются динамическими (логическими) и находятся внутри физического раздела super.
Поэтому потребуется его предварительная распаковка, а затем уже - монтирование. И в заключение - лог сохранения почти всех (кроме super и userdata) файлов: dd if=/dev/mmcblk2 of=start.img count=73728 dd if=/dev/mmcblk2p1 of=bootloader.img dd if=/dev/mmcblk2p3 of=env.img dd if=/dev/mmcblk2p5 of=boot.img dd if=/dev/mmcblk2p7 of=vendor_boot.img dd if=/dev/mmcblk2p10 of=misc.img dd if=/dev/mmcblk2p11 of=vbmeta.img dd if=/dev/mmcblk2p13 of=vbmeta_system.img dd if=/dev/mmcblk2p15 of=vbmeta_vendor.img dd if=/dev/mmcblk2p17 of=frp.img dd if=/dev/mmcblk2p19 of=metadata.img dd if=/dev/mmcblk2p20 of=private.img dd if=/dev/mmcblk2p21 of=dtbo.img dd if=/dev/mmcblk2p23 of=media_data.img Для копирования сохраненных файлов на ПК удобно воспользоваться функцией Download встроенного в MobaXTerm файлового менеджера в этой же сессии SSH. ![]() ![]() Для того, чтобы собрать все эти файлы бекапа в один архивный файл, удобно воспользоваться командой:
И потом отправить файл bakup.tar с помощью Download на ПК. 5. Как сделать бекап пользовательских данных Все пользовательские данные (установленные приложения, их настройки, файлы данных и т.д.) хранятся на загрузочном носителе (SD или eMMMC) в разделе с именем userdata, который в прошивках Android 12 имеет номер 25. Размер этого раздела составляет всё свободное (от остальных раделов) место загрузочного носителя. Поэтому для типичной емкости карты или eMMMC, равной 32 Гб размер раздела userdata тоже превышает 20 - 25 Гб. При этом его реальнное полезное содержимое может быть существенно меньше (без пользовательских файлов данных это может быть лишь порядка 1 Гб). Понятно, что копировать командой dd весь раздел целиком в огромный файл (по аналогии с другими разделами) нет никакого смысла. Ниже приведено два варианта действий: Продолжение этой инструкции предполагает, что выполнены все подготовительные действия, описанные здесь: Подготовка к работе с Linux. Конечно, если к приставке подключена клавиатура и монитор (или телевизор), то для ввода команд можно пользоваться консолью, которая отображается на экране монитора. Но вариант работы с ПК по SSH более удобен, т.к в интефейсе MobaXTerm имеются встроенные файловый менеджер, редактор текста и много чего другого. Итак, имеется такая конфигураци: приставка Tanix Tx68, на которой запущен серверный Armbian с загрузочной карты, на ПК запущен XMobaTerm, в котором открыт сеанс с подключение по SSH к этому серверу. Кроме того, в USB-слот приставки может быть подключен кардридер, в который вставлена загрузочная карта с прошивкой Android. Дальше приводятся пошаговые инструкции для описанной конфигурации. Когда речь будет идти о работе с файлами, то предполагается, что они будут выполнены либо с помощью файлового менеджера либо консольными командами. Создание архива пользовательских данных 1. Перейти в папку home, создать в ней рабочую папку (например, с именем arch) и сделать её текущей: root@transpeed-8k618-t:~# cd /home root@transpeed-8k618-t:/home# mkdir arch root@transpeed-8k618-t:/home# cd arch root@transpeed-8k618-t:/home/arch# 2. Посмотреть список устройств и их разделов root@transpeed-8k618-t:/home/arch# ls /dev autofs i2c-0 mmcblk2p10 net sda21 tty13 tty36 tty59 vcs5 block i2c-1 mmcblk2p11 null sda22 tty14 tty37 tty6 vcs6 bsg initctl mmcblk2p12 port sda23 tty15 tty38 tty60 vcsa btrfs-control input mmcblk2p13 ppp sda24 tty16 tty39 tty61 vcsa1 bus kmsg mmcblk2p14 psaux sda25 tty17 tty4 tty62 vcsa2 cec0 lirc0 mmcblk2p15 ptmx sda3 tty18 tty40 tty63 vcsa3 char log mmcblk2p16 pts sda4 tty19 tty41 tty7 vcsa4 console loop0 mmcblk2p17 random sda5 tty2 tty42 tty8 vcsa5 core loop1 mmcblk2p18 rfkill sda6 tty20 tty43 tty9 vcsa6 cpu_dma_latency loop2 mmcblk2p19 rtc sda7 tty21 tty44 ttyS0 vcsu cuse loop3 mmcblk2p2 rtc0 sda8 tty22 tty45 ttyS2 vcsu1 disk loop4 mmcblk2p20 sda sda9 tty23 tty46 ttyS3 vcsu2 dma_heap loop5 mmcblk2p21 sda1 sg0 tty24 tty47 ttyS4 vcsu3 dri loop6 mmcblk2p22 sda10 shm tty25 tty48 ttyS5 vcsu4 ecryptfs loop7 mmcblk2p23 sda11 snd tty26 tty49 udmabuf vcsu5 fb0 loop-control mmcblk2p24 sda12 stderr tty27 tty5 uhid vcsu6 fd mapper mmcblk2p25 sda13 stdin tty28 tty50 uinput vhci full media0 mmcblk2p3 sda14 stdout tty29 tty51 uleds video0 fuse mem mmcblk2p4 sda15 sunxi_soc_info tty3 tty52 urandom video1 gpiochip0 mmcblk1 mmcblk2p5 sda16 tty tty30 tty53 v4l watchdog gpiochip1 mmcblk1p1 mmcblk2p6 sda17 tty0 tty31 tty54 vcs watchdog0 hidraw0 mmcblk2 mmcblk2p7 sda18 tty1 tty32 tty55 vcs1 zero hidraw1 mmcblk2boot0 mmcblk2p8 sda19 tty10 tty33 tty56 vcs2 zram0 hugepages mmcblk2boot1 mmcblk2p9 sda2 tty11 tty34 tty57 vcs3 zram1 hwrng mmcblk2p1 mqueue sda20 tty12 tty35 tty58 vcs4 zram2 root@transpeed-8k618-t:/home/arch# Нас будут интересовать : 3. Создать папку для монтирования раздела, например, с именем databak: root@transpeed-8k618-t:/home/arch# mkdir databak 4. Смонтировать в эту созданную папку радел userdata: root@transpeed-8k618-t:/home/arch# mount /dev/mmcblk2p25 databak Для того, чтобы узнать, как используется память раздела userdata: root@transpeed-8k618-t:/home/arch# df -h /dev/mmcblk2p25 Filesystem Size Used Avail Use% Mounted on /dev/mmcblk2p25 12G 3.0G 8.3G 27% /home/arch/databak Размер в 1 Kb блоках: root@transpeed-8k618-t:/home/arch# df /dev/mmcblk2p25 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mmcblk2p25 11843052 3144832 8698220 27% /home/arch/databak Таким образом, из общего размера раздела в 12 Gb полезная информация занимает лишь 3 Gb. Поэтому в случае использования для копирования команды dd будет достаточно указать реальное значение в её аргументе count, например, bs=1k count=3144832 или bs=1G count=3 Примечание. Если раздел не смонтирован, то команда df покажет такой размер:root@transpeed-8k618-t:/home/arch# df /dev/mmcblk2p25 Filesystem 1K-blocks Used Available Use% Mounted on udev 940724 0 940724 0% /dev 5. Теперь мы имеем доступ к файлам userdata, в чем легко убедиться командой ls (или в файловом менеджере): root@transpeed-8k618-t:/home/arch# ls databak adb audio_d gsi misc_de rollback-history user anr backup gsi_persistent_data nfc rollback-observer user_de apex bootchart incremental ota server_configurable_flags vendor app cache local ota_package ss vendor_ce app-asec dalvik-cache lost+found per_boot system vendor_de app-ephemeral data media preloads system_ce app-lib disp_firmware mediadrm property system_de app-private drm misc resource-cache tombstones app-staging fonts misc_ce rollback unisoc_dbg 6. Остался последний шаг: создать tar-архив этой папки: root@transpeed-8k618-t:/home/arch# tar -c -f databak.tar databak tar: databak/vendor/wifi/wpa/sockets/wlan0: socket ignored tar: databak/vendor/wifi/wpa/sockets/p2p-dev-wlan0: socket ignored tar: databak/system/unsolzygotesocket: socket ignored tar: databak/system/ndebugsocket: socket ignored ВНИМАНИЕ ! Архивация может выполняться достаточно долго (несколько минут), нужно ждать появления приглашения консоли. Или запускать команду с параметром -v для вывода сообщений о процессе архивирования: tar -c -v -f databak.tar databak 7. Проверяем, что файл архива databak.tar создан успешно: root@transpeed-8k618-t:/home/arch# ls databak databak.tar Теперь можно (если нужно сохранить) скопировать этот файл архива по SSF на ПК прямо в файловом менеджере XMobaterm с помощью процедуры download. В реальных условиях процедура создания такого архива может понадобиться перед выполнением на устройстве сброса к заводским с полной очисткой (такая необходимость иногда возникает). Поэтому оставшийся на карте с Armbian (в папке arch) файл архива можно использовать для обратного разархивирования, повторно загрузившись с этой карты после процедуры сброса. Восстановление пользовательских данных 8. Для восстановления пользовательских данных userdata (после сброса или для клонирования) достаточно, находясь в папке arch, выполнить команду: root@transpeed-8k618-t:/home/arch# ls databak databak.tar root@transpeed-8k618-t:/home/arch# tar -x -v -f databak.tar databak/ databak/bootchart/ databak/vendor/ databak/vendor/hardware/ databak/vendor/hardware/audio_d/ databak/vendor/tombstones/ .... databak/disp_firmware databak/per_boot/ root@transpeed-8k618-t:/home/arch#Или выполнить команду без аргумента -v для отключения вывода соощений (очень длинного списка копируемых файлов). 9. Для клонирования пользовательских данных на несколько одинаковых приставок из коробки достаточно поочередно вставлять в каждую из них эту подготовленную карту с Armbian, содержащую tar-архив, загружать систему с этой карты, а затем выполнять пункты 1, 4, 8 данной инструкции (сделать папку arch текущей, смонтировать раздел на папку databak и разархивировать файл databak.tar). |
![]() |