Backup: различия между версиями
Ko (обсуждение | вклад) Нет описания правки |
Ko (обсуждение | вклад) |
||
Строка 109: | Строка 109: | ||
Следующий пакетный файл запускает nvflash для поочерёдной записи файлов разделов именно в те сектора, из которых они были считаны. | Следующий пакетный файл запускает nvflash для поочерёдной записи файлов разделов именно в те сектора, из которых они были считаны. | ||
<pre> | <pre> | ||
echo Press Ctrl-C to cancel | echo Press Ctrl-C to cancel programming backup images | ||
nvflash\nvflash.exe --bl nvflash\fastboot.stock.bin --go | 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 0 1536 backup_andrimg\part02.img --go |
Версия от 16:01, 17 января 2015
Как сделать бэкап (анг.)
Благодаря защищенной области памяти бортового 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 programming 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 того же самого бакапа. Затем просто указывается файл, который следует записать.