Backup

Материал из Toshiba AC100 wiki
Перейти к навигации Перейти к поиску

Как сделать бэкап (анг.)

Благодаря защищенной области памяти бортового Flash (MMC) и протоколу NVFLASH, AC100 практически невозможно превратить в кирпич навсегда. Что бы вы ни делали, вы сможете восстановить его исходное состояние при условии, что:

  • Вы знаете, как это сделать
  • У вас есть резервные копии ваших рабочих разделов
  • Если вы не знаете, как сделать это, то это еще не конец, вы всегда можете найти того, кто знает на канале #ac100-ru (IRC).

Если у вас нет резервных копий, то вы всегда можете попробовать одолжить их у других пользователей вашей модели Toshiba AC100.

Как сделать бэкап разделов вашей AC100.

Для выполнения бэкапа и восстановления из бэкапа необходимо:

  • подключиться к компьютеру через порт mini-USB
  • включить AC100 в режиме восстановления - для этого надо зажать CTRL+ESC и нажать кнопку включения. Индикатор питания должен загореться, а экран останется черным.
  • при необходимости установить драйвера резервного восстановления (APX) из архива или сайта nvidia

<range type="comment" id="646387">(Для пользователей windows)</range id="646387"> Скачайте себе утилиту nvflash для windows. Распакуйте архив, и в директории nvflash создайте файл с расширением cmd, например getbackup.cmd и поместите в него следуюший текст.

@echo off
cls
echo Press Ctrl-C to cancel of any key to get backup images from your device
pause

nvflash.exe --bl fastboot.stock.bin --sync || goto error
nvflash.exe -r --getpartitiontable partitiontable.txt
nvflash.exe -r --read 2 part02.img
nvflash.exe -r --read 3 part03.img
nvflash.exe -r --read 4 part04.img
nvflash.exe -r --read 5 part05.img
nvflash.exe -r --read 6 part06.img
nvflash.exe -r --read 7 part07.img
nvflash.exe -r --read 8 part08.img
nvflash.exe -r --read 9 part09.img
nvflash.exe -r --read 10 part10.img
nvflash.exe -r --read 11 part11.img
nvflash.exe -r --read 12 part12.img
nvflash.exe -r --read 13 part13.img
nvflash.exe -r --read 14 part14.img

echo All done!
echo Don't forget to reboot your device!
pause
goto end

:error
echo   Operation failed!
pause

:end

Разберем пару строк:

  • nvflash\nvflash.exe - путь от каталога содержащего командный файл (getbackup.cmd) до утилиты-прошивальщика nvflash.
  • <range type="comment" id="927552">Параметр -r необходим для выполнения более </range id="927552">одного действия после загрузки fastboot.bin, иначе для выполнения 14 команд нам бы потребовалось 13 перезагрузок Toshiba'ы
Согласно информации от муромца, фастбут является сервером, а nvflash - клиентом в клиент-серверном общении компьютера и ac100. Т.е., сначала мы загружаем на устройство fastboot, а потом уже nvflash шлет команды засланному фастбуту и тот выполняет действия с внутренним хранилищем.
  • "--read %n %filename"- команда для чтения информации из раздела номер %n и записи ее в файл %filename. Тут следую помнить, что вам необходимо иметь от 8Гб до 32Гб свободного пространства на диске, в зависимости от емкости внутреннего накопителя вашей AC100.
  • "--getpartitiontable %filename" - читает таблицу разделов внутреннего накопителя. Может пригодиться для восстановления. Содержит в себе информацию в виде:
PartitionId=2
Name=BCT
DeviceId=18
StartSector=0
NumSectors=1536
BytesPerSector=2048

Теперь в каталоге, в котором находился ваш командный файл, будет находиться 14 образов которые могут в будущем могут вам пригодиться.

По окончании может ругнуться на пользовательские данные: receiving file: part-14.img, expected size: 1596456960 bytes / 1596456960/1596456960 bytes receiveddata receive failure NvError 0x120000 command failure: read failed это не критично и связанно с размером раздела, по-этому можно использовать rawdeviceread и сделать посекторный бэкап.

Посекторный бэкап

У nvflash из альфа версии linux4tegra есть проблемы с большими файлами, поэтому посекторный бэкап приходится делать кусками (взято у Стивена)

#!/bin/bash

sectors=3879936
sectors_per=131072

sectors_read=0
block_id=0
downloads=
while [ ${sectors_read} -lt ${sectors} ]; do
    block_id_str=`printf %03d ${block_id}`
    f=ac100-image-${block_id_str}.bin
    sectors_this=$(( ${sectors} - ${sectors_read} ))
    if [ ${sectors_this} -gt ${sectors_per} ]; then
        sectors_this=${sectors_per}
    fi
    downloads="${downloads} --rawdeviceread"
    downloads="${downloads} ${sectors_read} ${sectors_this} ${f}"
    sectors_read=$((${sectors_read} + ${sectors_this}))
    block_id=$((${block_id} + 1))
done

set -x

sudo ./nvflash --bl bootloader.bin --getpartitiontable ac100-pt.txt
sudo ./nvflash -r ${downloads}

В бэта версии, на сколько мне известно, такой проблемы нет.

Использование Backupa

Сделать Backup системы это хорошо. Но как же его залить обратно в нетбук, особенно при значительных повреждениях в разбиении внутренней памяти? В таком случае, если вы делали бэкап разделов вашей AC100, то придётся записывать эти файлы не просто по номеру раздела, а по номеру сектора. Номер сектора с которого начинается раздел (StartSector), а также длина данного раздела в количестве секторов (NumSectors) была сохранена в файл partitiontable.txt.

Следующий пакетный файл запускает nvflash для поочерёдной записи файлов разделов именно в те сектора, из которых они были считаны.

echo Press Ctrl-C to cancel of any key to write backup images
nvflash\nvflash.exe --bl nvflash\fastboot.stock.bin --go
nvflash\nvflash.exe -r --rawdevicewrite 0 1536 backup_andrimg\part02.img --go
nvflash\nvflash.exe -r --rawdevicewrite 1536 256 backup_andrimg\part03.img --go
nvflash\nvflash.exe -r --rawdevicewrite 1792 1024 backup_andrimg\part04.img --go
nvflash\nvflash.exe -r --rawdevicewrite 2816 2560 backup_andrimg\part05.img --go
nvflash\nvflash.exe -r --rawdevicewrite 5376 4096 backup_andrimg\part06.img --go
nvflash\nvflash.exe -r --rawdevicewrite 9472 512 backup_andrimg\part07.img --go
nvflash\nvflash.exe -r --rawdevicewrite 9984 153600 backup_andrimg\part08.img --go
nvflash\nvflash.exe -r --rawdevicewrite 163584 204800 backup_andrimg\part09.img --go
nvflash\nvflash.exe -r --rawdevicewrite 368384 1024 backup_andrimg\part10.img --go
nvflash\nvflash.exe -r --rawdevicewrite 369408 256 backup_andrimg\part11.img --go
nvflash\nvflash.exe -r --rawdevicewrite 369664 632320 backup_andrimg\part12.img --go
nvflash\nvflash.exe -r --rawdevicewrite 1001984 256 backup_andrimg\part13.img --go
nvflash\nvflash.exe -r --rawdevicewrite 1002240 2876672 backup_andrimg\part14.img --sync

Две цифры после --rawdevicewrite собственно и являются StartSector и NumSectors, взятые из partitiontable.txt того же самого бакапа. Затем просто указывается файл, который следует записать.

Бекапы разных моделей

ac114

Unknown 32G (2.1 + 2.2)

Unknown 32G (2.2)

ac100-117