Если после включения ваш компьютер сам выключается, при этом на экране вы видите сообщение об ошибке USB device over current status detected System will shut down after 15 seconds, это говорит, о том, что есть проблемы работой USB (включается защита от перегрузки по току), однако начинающий пользователь не всегда может выяснить, в чем дело и как исправить проблему.
В этой инструкции подробно о простых способах исправить ошибку USB device over current status detected с последующим автоматическим выключением компьютера.
Функциональность интерпретатора Bash позволяет работать не только со статистическими данными, записанными в скриптах. Иногда возникает необходимость добавить сценарию интерактивности, позволяя принимать внешние параметры скрипта для манипуляции ими в коде.
В этой статье будет рассмотрено, как принимать аргументы командной строки bash, способы его обработки, проверка опций, а также известные особенности при работе с ними.
Параметры скрипта Bash
Интерпретатор Bash присваивает специальным переменным все параметры, введённые в командной строке. В их состав включено название сценария, выполняемого интерпретатором. Такие переменные называются ещё числовыми переменными, так как в их названии содержится число:
$0 — название сценария;
$1 — первый параметр;
...
$9 — девятый параметр сценария.
Ниже приведён пример использования одного параметра скрипта Bash:
#!/bin/bash
factorial=1
for (( number = 1; number <= $1 ; number++ ))
do
factorial=$[ $factorial * $number ]
done
echo "Факториал числа $1 равен $factorial"
Результат работы кода:
Переменная $1 может использоваться в коде точно так же, как и любая другая. Скрипт автоматически присваивает ей значение из параметра командой строки — пользователю не нужно делать это вручную.
Если необходимо ввести дополнительные параметры, их следует разделить в командной строке пробелами.
Командный интерпретатор присвоил числа 5 и 10 соответствующим переменным — $1 и $2.
Также параметрами могут быть и текстовые строки. Однако, если есть необходимость передать параметр, содержащий пробел (например имя и фамилию), его нужно заключить в одинарные или двойные кавычки, так как по умолчанию пробел служит разделителем параметров командной строки:
#!/bin/bash
echo "Добро пожаловать, $1"
Пример работы кода:
На заметку: кавычки, которые используются при передаче параметров, обозначают начало и конец данных и не являются их частью.
Если необходимо использовать больше 9 параметров для скрипта, то названия переменных немного изменятся. Начиная с десятой переменной, число, стоящее после знака $, необходимо заключать в квадратные скобки (без внутренних пробелов):
Как уже упоминалось, имя сценария является самым первым параметром скрипта. Чтобы определить название программы, используется переменная $0. Такая необходимость возникает, например, при написании скрипта, который может выполнять несколько функций. Однако при этом возникает одна особенность, которую нужно учитывать на практике:
#!/bin/bash
echo "Имя сценария: $0"
Пример работы кода:
Как видно, если строкой, фактически переданной в переменную $0, является весь путь к сценарию, то на вывод будет идти весь путь, а не только название программы.
Если нужен скрипт, выполняющий различные функции с учётом того, под каким именем он был вызван из командной строки, придётся проделать дополнительную работу: удалить сведения о пути, который использовался для его вызова.
Для этого специально предусмотрена небольшая команда. Команда basename возвращает только название скрипта без абсолютного или относительного пути к нему:
Передача параметров Bash вынуждает соблюдать осторожность. Если сценарий написан с применением параметров, но запускается без них, то возникнут проблемы в работе программы.
Если попробовать запустить написанный ранее скрипт test2 без аргументов, то перед выводом команд echo будет отображена ошибка:
Чтобы предотвращать подобные ситуации, необходимо действовать на упреждение — проверять аргументы скрипта на наличие значений. Это настоятельная рекомендация при использовании параметров в командной строке, и только после ревизии стоит пускать их в дело:
#!/bin/bash
if [ -n "$1" ]
then
echo "Добро пожаловать, $1"
else
echo "Простите, вы не представились"
fi
Пример работы кода:
В данном случае использовалась опция -n из предыдущей статьи о сравнении строк в Bashдля проверки на наличие значения в переменной, которая считала параметр.
Обработка неизветсного числа параметров
Для начала рассмотрим один из часто используемых инструментов при работе с параметрами Bash — команду shift. Её прямое назначение заключается в сдвиге параметров на одну позицию влево. Таким образом, значение из переменной $3 переместится в $2, а из $2 — в $1. Но из $1 значение просто отбросится и не сместится в $0, так как там неизменно хранится название запущенной программы.
Эта команда является эффективным способом обработки всех параметров, переданных сценарию, особенно, когда нельзя заранее узнать их количество. Достаточно лишь обработать $1, сделать сдвиг и повторить процедуру.
#!/bin/bash
count=1
while [ -n "$1" ]
do
echo "Параметр №$count = $1"
count=$[ $count + 1 ]
shift
done
Пример работы кода:
Этот скрипт выполняет цикл while, в условии которого указана проверка первого параметра на длину. И если она равна нулю, цикл прерывает свою работу. При положительном результате проверки команда shift сдвигает все параметры влево на одну позицию.
Ещё один вариант использование shift — смещать на несколько позиций. Для этого достаточно через пробел указать количество, на которое будет смещён ряд параметров скрипта.
#!/bin/bash
echo "Первый параметр из переданных: $1"
shift 2
echo "Теперь первый параметр: $1"
Пример работы скрипта:
На заметку: при использовании shift нужно быть осторожным, ведь сдвинутые за пределы $1 параметры не восстанавливаются в период работы программы.
Обработка опций в Bash
Помимо параметров скрипт может принимать опции — значения, состоящие из одной буквы, перед которыми пишется дефис. Рассмотрим 3 метода работы с ними в скриптах. Сперва кажется, что при работе с опциями не должно возникать каких-либо сложностей. Они должны быть заданы после имени запускаемой программы, как и параметры. При необходимости можно сделать обработку опций командной строки по такому же принципу, как это делается с параметрами.
По примеру выше можно применять shift для обработки простых опций. С помощью инструкции case можно определять, являются ли аргументы Bash опциями:
#!/bin/bash
while [ -n "$1" ]
do
case "$1" in
-a | -b | -c) echo "Найдена опция $1" ;;
*) echo "$1 не опция" ;;
esac
shift
done
Пример работы программы:
Блок case работает правильно вне зависимости от того, как расположены аргументы командной строки bash.
Выводы
Для того, чтобы сделать свою программу более интерактивной, можно использовать параметры Bash. Встроенные переменные, в названиях которых фигурирует число, обозначают порядок указанных для программы параметров.
Команда basename используется для обрезания пути запущенного сценария, что часто необходимо для создания гибких программ. Использование команды shift позволяет эффективно проходить по переданным скрипту параметрам, особенно когда их количество неизвестно.
Если вы пользуетесь виртуальными машинами VirtualBox (даже если не знаете об этом: многие эмуляторы Android также имеют в своей основе именно эту ВМ) и установите виртуальную машину Hyper-V (встроенный компонент Windows 10 и 8 отдельных редакций), вы столкнетесь с тем, что виртуальные машины VirtualBox перестанут запускаться.
Текст ошибки будет сообщать: «Не удалось открыть сессию для виртуальной машины», и описанием (пример для Intel): VT-x is not available (VERR_VMX_NO_VMX) код ошибки E_FAIL (однако, если вы не устанавливали Hyper-V, вероятнее всего, эта ошибка вызвана тем, что виртуализация не включена в БИОС/UEFI).
Решить это можно, удалив компоненты Hyper-V в Windows (панель управления — программы и компоненты — установка и удаление компонентов). Однако, если виртуальные машины Hyper-V вам нужны, это может быть неудобно. В этой инструкции — о том, как использовать на одном компьютере VirtualBox и Hyper-V с меньшими затратами времени.
Быстрое отключение и включение Hyper-V для работы VirtualBox
Для того, чтобы иметь возможность запускать виртуальные машины VirtualBox и основанные на них эмуляторы Android при установленных компонентах Hyper-V, требуется выключить запуск гипервизора Hyper-V.
Сделать это можно таким способом:
Запустите командную строку от имени администратора и введите следующую команду
bcdedit /set hypervisorlaunchtype off
После выполнения команды, перезагрузите компьютер.
Теперь VirtualBox будет запускаться без ошибки «Не удалось открыть сессию для виртуальной машины» (однако Hyper-V запускаться не будет).
Чтобы вернуть всё в исходное состояние, используйте команду bcdedit /set hypervisorlaunchtype auto с последующей перезагрузкой компьютера.
Этот способ можно модифицировать, добавив в меню загрузки Windows два пункта: один с включенным Hyper-V, другой — с отключенным. Путь примерно следующий (в командной строке от имени администратора):
bcdedit /copy {current} /d "Отключить Hyper-V"
Будет создана новый пункт меню загрузки Windows, также в командной строке отобразится GUID этого пункта.
Введите команду
bcdedit /set {отобразившийся GUID} hypervisorlaunchtype off
В результате, после перезагрузки Windows 10 или 8 (8.1) вы увидите два пункта меню загрузки ОС: загрузившись в один из них, получите рабочие ВМ Hyper-V, в другой — VirtualBox (в остальном это будет одна и та же система).
Как итог, добиться работы, пусть и не одновременной, двух виртуальных машин на одном компьютере возможно.
Отдельно отмечу, что описываемые в Интернете способы с изменением типа запуска службы hvservice, в том числе в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services в моих экспериментах нужного результата не принесли.
Ни для кого не секрет, что не все сайты в Интернете безопасны. Также почти все популярные браузеры сегодня блокируют явно опасные сайты, но не всегда эффективно. Однако, существует возможность самостоятельно проверить сайт на вирусы, вредоносный код и другие угрозы онлайн и другими способами, чтобы убедиться в его безопасности.
В этой инструкции — способы такой проверки сайтов в Интернете, а также некоторая дополнительная информация, которая может быть полезна пользователям. Иногда, сканирование сайтов на вирусы нужна и самим владельцам сайтов (если вы вебмастер — можете попробовать quttera.com, sitecheck.sucuri.net, rescan.pro), но в рамках этого материала, акцент именно на проверке именно для обычных посетителей. См. также: Как проверить компьютер на вирусы онлайн.
Проверка сайта на вирусы онлайн
Прежде всего о бесплатных сервисах онлайн-проверки сайтов на вирусы, вредоносный код и другие угрозы. Всё, что требуется для их использования — указать ссылку на страницу сайта и посмотреть результат.
Примечание: при проверке сайтов на вирусы как правило проверяется конкретная страница этого сайта. Таким образом возможен вариант, когда главная страница «чистая», а какая-то из второстепенных, с которой вы производите загрузку файла — уже нет.
VirusTotal
VirusTotal — самый популярный сервис проверки файлов и сайтов на вирусы, использующий в работе сразу 6 десятков антивирусов.
В результате проверяется наличие вирусов, перенаправлений на другие сайты, а также отдельно выполняется проверка используемых страницей ресурсов.
Расширения браузеров для проверки сайтов на вирусы
Многие антивирусы при своей установке также устанавливают расширения для браузеров Google Chrome, Opera или Яндекс Браузер, автоматически проверяющие сайты и ссылки на вирусы.
Однако, некоторые из этих, достаточно простых в использовании расширений, можно загрузить бесплатно из официальных магазинов расширений этих браузеров и использовать без установки антивируса. Обновление: недавно также вышло расширение Microsoft Windows Defender Browser Protection для Google Chrome для защиты от вредоносных сайтов.
Avast Online Security
Avast Online Security — бесплатное расширение для браузеров на базе Chromium, автоматически проверяющее ссылки в поисковой выдаче (отображаются отметки о безопасности) и показывающее количество следящих модулей на странице.
Также в расширении по умолчанию включена защита от фишинга и сканирование сайтов на вредоносное ПО, защита от перенаправлений (редиректов).
Онлайн-проверка ссылок антивирусом Dr.Web (Dr.Web Anti-Virus Link Checker)
Расширение Dr.Web работает слегка по другому: оно встраивается в контекстное меню ссылок и позволяет запустить проверку конкретной ссылки по базе антивируса.
По результатам проверки вы получаете окно с отчетом об угрозах или их отсутствии на странице или в файле по ссылке.
Web Of Trust — очень популярное расширение для браузеров, отображающее репутацию сайта (хотя у самого расширения недавно пострадала репутация, о чем — далее) в поисковой выдаче, а также на иконке расширения при посещении конкретных сайтов. При посещении опасных сайтов по умолчанию отображается предупреждение об этом.
Несмотря на популярность и исключительно положительные отзывы, 1.5 года назад с WOT был скандал, вызванный тем, что, как оказалось, авторами WOT продавались данные (сугубо личные) пользователей. В результате расширение было удалено из магазинов расширений, а позже, когда сбор данных (как заявляют) прекратился, снова появилось в них.
Дополнительная информация
Если вы заинтересовались проверкой сайта на вирусы перед загрузкой файлов с него, то учитывайте, что даже если все результаты проверок говорят о том, что сайт не содержит вредоносного ПО, файл, который вы загружаете всё-таки может его содержать (а также поставляться с другого сайта).
Если у вас есть сомнения, то настоятельно рекомендую, загрузив какой-либо не вызывающий доверия файл, сначала проверить его на VirusTotal и лишь потом запускать.
MySQL - это самая популярная система баз данных, которая используется для обеспечения работы большинства сайтов. Пока вы размещаете свой сайт на хостинге, вам нет необходимости думать о её настройке или своевременной перезагрузке, потому что этим занимаются системные администраторы хостинга. Но когда вы переберётесь на VPS, это всё будет уже в зоне вашей ответственности.
В этой статье мы рассмотрим, как выполняется перезапуск MySQL в разных дистрибутивах Linux, а также как сделать, чтобы MySQL перезапускалась автоматически после падения.
Linux Mint - один из распространённых дистрибутивов Linux, основанный на Ubuntu. Долгое время он занимал первом месте в рейтинге популярных дистрибутивов по версии веб-сайта DistroWatch. Основатели, Клемент Лефевр и команда разработчиков "Mint Linux Team", ставили перед собой цель создать удобный, мощный и простой в использовании дистрибутив Linux, и у них это получилось!
Однако несмотря на всю простоту использования и настройку системы, поначалу у многих пользователей возникают проблемы с установкой нового программного обеспечения. В Linux установка новых программ выполняется из репозиториев с помощью специальных пакетов, и в этой статье мы рассмотрим различные способы установки программ в Linux Mint.
При написании сценариев на Bash не только опытные программисты, но и новички в области командного интерпретатора Bash сталкиваются с работой со строками. Наиболее часто это необходимо при считывании команд, вводимых пользователем в качестве аргументов для исполняемого сценария, а также при обработке текстовых файлов. И один из необходимых приёмов в таком случае — это сравнение строк.
В данной статье будет рассмотрено сравнение строк Bash, а также некоторые нюансы по использованию операций сравнения и решению часто встречающихся ошибок.
Сравнение строк Bash
Данные операции позволяют определить, являются ли сравниваемые строки одинаковыми:
= - равно, например if [ "$x" = "$y" ]
== - синоним оператора "=", например if [ "$x" == "$y" ]
!= - не равно, например if [ "$x" != "$y" ]
Пример:
#!/bin/bash
testuser=anton
if [ $USER = $testuser ]
then
echo "Добро пожаловать, $testuser"
fi
Результат работы сценария:
При проверке на равенство с помощью команды test (синоним квадратным скобкам [ ]) учитываются все пунктуационные знаки и различия в регистре букв сравниваемых строк.
Некоторые особенности сравнения строк с шаблонами:
# возвращает истину, если строка, содержащаяся в $x, начинается с символа "y"
[[ $x == y* ]]
# возвращает истину, если строка из $x равна конкретно двум символам "y*"
[[ $x == "y*" ]]
# возвращает истину, если $x содержит название файла, содержащегося в текущем каталоге, которое начинается с "y"
[ $x == y* ]
# возвращает истину, если строка $x равна двум символам "y*"
[ "$x" == "y*" ]
Например проверка строки bash на то, начинается ли она с символа y:
#!/bin/bash
x=yandex
[[ $x == y* ]]
echo $?
Результат выполнения кода:
Сценарий вывел 0 (ноль), так как мы потребовали вывести код ошибки последней выполненной инструкции. А код 0 означает, что сценарий выполнился без ошибок. И действительно — переменная $x содержит строку yandex, которая начинается с символа "y". В противном случае может писаться "1". Это довольно удобный способ отладки сценариев.
Сравнение строк по алфавиту на Bash
Задача усложняется при попытке определить, является ли строка предшественницей другой строки в последовательности сортировки по возрастанию. Люди, пишущие сценарии на языке командного интерпретатора bash, нередко сталкиваются с двумя проблемами, касающимися операций "больше" и "меньше" относительно сравнения строк Linux, у которых достаточно простые решения:
Во-первых, символы "больше" и "меньше" нужно экранировать, добавив перед ними обратный слэш (\), потому что в противном случае в командном интерпретаторе они будут расцениваться как символы перенаправления, а строки — как имена файлов. Это один из тех случаев, когда отследить ошибку достаточно сложно.
Пример:
#!/bin/bash
# неправильное использование операторов сравнения строк
val1=baseball
val2=hockey
if [ $val1 > $val2 ]
then
echo "$val1 больше, чем $val2"
else
echo "$val1 меньше, чем $val2"
fi
Что получится, если сравнить строки bash:
Как видно, один лишь символ "больше" в своём непосредственном виде привёл к неправильным результатам, хотя и не было сформировано никаких ошибок. В данном случае этот символ привёл к перенаправлению потока вывода, поэтому никаких синтаксических ошибок не было обнаружено и, как результат, был создан файл с именем hockey:
Для устранения этой ошибки нужно экранировать символ ">", чтобы условие выглядело следующим образом:
...
if [ $val1 \> $val2 ]
...
Тогда результат работы программы будет правильным:
Во-вторых, упорядочиваемые с помощью операторов "больше" и "меньше" строки располагаются иначе, чем это происходит с командой sort. Здесь проблемы сложнее поддаются распознаванию, и с ними вообще можно не столкнуться, если при сравнении не будет учитываться регистр букв. В команде sort и test сравнение происходит по разному:
#!/bin/bash
val1=Testing
val2=testing
if [ $val1 \> $val2 ]
then
echo "$val1 больше, чем $val2"
else
echo "$val1 меньше, чем $val2"
fi
Результат работы кода:
В команде test строки с прописными буквами вначале будут предшествовать строкам со строчными буквами. Но если эти же данные записать в файл, к которому потом применить команду sort, то строки со строчными буквами будут идти раньше:
Разница их работы заключается в том, что в test для определения порядка сортировки за основу взято расположение символов по таблице ASCII. В sort же используется порядок сортировки, указанный для параметров языка региональных установок.
Проверка строки на пустое значение
Сравнение с помощью операторов -z и -n применяется для определения наличия содержимого в переменной. Таким образом, вы можете найти пустые строки bash. Пример:
#!/bin/bash
val1=testing
val2=''
# проверяет, не пустая ли строка
if [ -n $val1 ]
then
echo "Строка '$val1' не пустая"
else
echo "Строка '$val1' пустая"
fi
# проверяет, пустая ли строка
if [ -z $val2 ]
then
echo "Строка '$val2' пустая"
else
echo "Строка '$val2' не пустая"
fi
if [ -z $val3 ]
then
echo "Строка '$val3' пустая"
else
echo "Строка '$val3' не пустая"
fi
Результат работы кода:
В этом примере создаются две строковые переменные — val1 и val2. Операция -n определяет, имеет ли переменная val1 ненулевую длину, а -z проверяет val2 и val3 на нулевую. Примечательно то, что последняя не была определена до момента сравнения, но интерпретатор считает, что её длина всё же равна нулю. Такой нюанс следует учитывать при различных проверках сценариев. И, если нет уверенности в том, какое значение содержится в переменной и задано ли оно вообще, стоит проверить её с помощью оператора -n или -z и лишь затем использовать по назначению.
Стоит обратить внимание и на функцию -n. Если ей для проверки будет передана необъявленная или пустая переменная, будет возвращена истина, а не ложь. Для таких случаев следует заключать проверяемую строку (переменную) в двойные кавычки, чтобы выглядело это так:
...
if [ -n "$val1" ]
...
Выводы
В представленных операциях сравнения строк Bash есть определённые нюансы, которые стоит понять для предотвращения ошибок работы сценариев. Но таких ситуаций на практике встречает много, поэтому запомнить все (и тем более, описать) не получится.
При сравнении строк в виде переменных их можно заключать в кавычки практически всегда, так как это считается правилом хорошего тона, а заодно и страхует от семантических ошибок.
Восстановление данных, удаленных фото и видео, документов и других элементов из внутренней памяти современных Android телефонов и планшетов стало сложной задачей, поскольку внутреннее хранилище подключается по протоколу MTP, а не Mass Storage (как флешка) и привычные программы для восстановления данных не могут найти и восстановить файлы в этом режиме.
Существующие популярные программы для восстановления данных на Android (см. Восстановление данных на Android) пробуют обойти это: в автоматическом режиме получить root-доступ (либо предоставляя сделать это пользователю), а затем — прямой доступ к хранилищу устройства, но это работает не для всех устройств.
Однако, существует способ вручную смонтировать (подключить) внутреннее хранилище Android как флешку (Mass Storage Device) с помощью команд ADB, а затем использовать любую программу восстановления данных, работающую с файловой системой ext4, использующуюся на этом хранилище, например, PhotoRec или R-Studio. О подключении внутреннего хранилища в режиме Mass Storage и последующем восстановлении данных из внутренней памяти Android, в том числе после сброса на заводские настройки (хард ресета) и пойдет речь в данной инструкции.
Предупреждение: описываемый способ не для начинающих. Если вы относите себя к ним, то какие-то пункты могут оказаться непонятными, а результат действий не обязательно будет ожидаемым (теоретически, можно сделать хуже). Используйте изложенное только под свою ответственность и с готовностью к тому, что что-то пойдёт не так, а ваше Android устройство больше не включится (но, если всё делать, понимая процесс и без ошибок, этого произойти не должно).
Подготовка к подключению внутреннего хранилища
Все действия, описанные ниже можно выполнить в Windows, Mac OS и Linux. В моем случае использовалась Windows 10 с установленной в ней подсистемой Windows для Linux и Ubuntu Shell из магазина приложений. Установка компонентов Linux не обязательна, все действия можно провести и в командной строке (и отличаться они не будут), но я предпочел этот вариант, так как при использовании ADB Shell в командной строке возникли проблемы с отображением спецсимволов, не влияющие на работу способа, но представляющие неудобства.
Прежде чем начать подключение внутренней памяти Android как флешки в Windows выполните следующие шаги:
Откройте параметры системных переменных среды (например, начав в поиске Windows вводить «переменных», а затем в открывшемся окне свойств системы нажав «Переменные среды». Второй способ: открыть Панель управления — Система — Дополнительные параметры системы — «Переменные среды» на вкладке «Дополнительно»).
Выберите переменную PATH (не важно, системную или пользовательскую) и нажмите «Изменить».
В следующем окне нажмите «Создать» и укажите путь к папке с Platform Tools из 1-го шага и примените сделанные изменения.
Если вы проделываете указанные действия в Linux или MacOS, то поищите в Интернете, как в этих ОС добавить папку с Android Platform Tools в PATH.
Подключение внутренней памяти Android как Mass Storage Device
Теперь приступаем к основной части этого руководства — непосредственно подключение внутренней памяти Android как флешки к компьютеру.
Перезагрузите ваш телефон или планшет в режиме Recovery. Обычно для этого нужно выключить телефон, затем зажать и удерживать кнопку питания и «громкость вниз» в течение некоторого времени (5-6) секунд, а после появления экрана fastboot выбрать Recovery Mode с помощью кнопок громкости и загрузиться в него, подтвердив выбор коротким нажатием кнопки питания. Для некоторых устройств способ может отличаться, но легко находится в Интернете по запросу: «модель_устройства recovery mode»
Подключите устройство к компьютеру по USB и подождите некоторое время, пока оно не будет настроено. Если по окончании настройки в диспетчере устройств Windows устройство будет отображаться с ошибкой, найдите и установите ADB Driver именно для вашей модели устройства.
Запустите Ubuntu Shell (в моем примере используется именно оболочка Ubuntu под Windows 10), командную строку или терминал Mac и введите adb.exe devices (Примечание: из-под Ubuntu в Windows 10 я использую adb для Windows. Можно было бы установить adb для Linux, но тогда бы он не «видел» подключенных устройств — ограничение функций подсистемы Windows для Linux).
Если в результате выполнения команды вы видите подключенное устройство в списке — можно продолжать. Если нет — введите команду fastboot.exe devices
Если в этом случае устройство отобразилось, значит всё подключено правильно, но рекавери не позволяет использовать команды ADB. Вероятно, придется установить кастомный рекавери (рекомендую найти TWRP для вашей модели телефона). Подробнее: Установка кастомного рекавери на Android.
После установки кастомного рекавери, зайдите в него и повторите команду adb.exe devices — если устройство стало видным, можно продолжать.
Введите команду adb.exe shell и нажмите Enter.
В ADB Shell по порядку выполняем следующие команды.
mount | grep /data
В результате получаем имя устройства block, которое будет использовать далее (не теряем его из виду, запоминаем).
Следующей командной размонтируем раздел data на телефоне, чтобы иметь возможность подключить его как Mass Storage.
umount /data
Далее находит индекс LUN нужного раздела, соответствующего Mass Storage Device
find /sys -name lun*
Будет отображено несколько строк, нас интересуют те, которые имеют в пути f_mass_storage, но пока мы не знаем, какая именно (обычно, заканчивающиеся на просто lun или lun0)
В следующей команде используем имя устройства из первого шага и один из путей с f_mass_storage (один из них соответствует внутренней памяти). Если будет введен неверный, вы получите сообщение об ошибке, тогда пробуем следующий.
В этот момент сессия ADB Shell будет закрыта, а к системе будет подключен новый диск («флешка»), представляющий собой внутреннюю память Android.
При этом, в случае Windows вас могут попросить отформатировать накопитель — не делайте этого (просто Windows не умеет работать с файловой системой ext3/4, но многие программы для восстановления данных умеют).
Восстановление данных из подключенного внутреннего хранилища Android
Теперь, когда внутренняя память подключена как обычный накопитель, мы можем использовать любую программу для восстановления данных, которая умеет работать с разделами Linux, например, бесплатную PhotoRec (доступную для всех распространенных ОС) или платную R-Studio.
Запускаем программу, для Windows и запуска программы в графическом режиме запустите файл qphotorec_win.exe (подробнее: восстановление данных в PhotoRec).
В главном окне программы вверху выбираем устройство Linux (тот новый диск, который мы подключили). Ниже указываем папку для восстановления данных, а также выбираем тип файловой системы ext2/ext3/ext Если вам требуются файлы лишь определенного типа, рекомендую указать их вручную (кнопка «Форматы файлов»), так процесс пойдет быстрее.
Еще раз убедитесь, что выбрана нужная файловая система (иногда переключается «сама»).
Запустите поиск файлов (находиться они начнут на втором проходе, первый — поиск заголовков файлов). При нахождении, они автоматически будут восстановлены в указанную вами папку.
В моем эксперименте из 30 удаленных из внутренней памяти фотографий в идеальном состоянии было восстановлено 10 (лучше, чем ничего), для остальных — только миниатюры, также были найдены скриншоты png, сделанные ещё до хард-ресета. R-Studio показала примерно тот же результат.
Но, так или иначе, это не проблема способа, который работает, а проблема эффективности восстановления данных как таковой в некоторых сценариях. Так же отмечу, что DiskDigger Photo Recovery (в режиме глубокого сканирования с root) и Wondershare Dr. Fone for Android показали сильно худший результат на том же устройстве. Конечно, вы можете попробовать и любые другие средства, позволяющие восстанавливать файлы с разделов с файловой системой Linux.
По окончании процесса восстановления, извлеките подключенное USB устройство (используя соответствующие способы вашей операционной системы).
Затем можно просто перезагрузить телефон, выбрав соответствующий пункт в меню рекавери.
В Windows 10 многие параметры оформления можно настроить, используя средства системы, специально предназначенные для персонализации. Но не все: к примеру, вы не можете легко поменять логотип OEM производителя в сведениях о системе (правый клик по «Этот компьютер» — «Свойства») или логотип в UEFI (логотип при загрузке Windows 10).
Однако, изменить (или установить при отсутствии) эти логотипы все-таки можно и в этой инструкции речь пойдет о способах изменения данных логотипов с помощью редактора реестра, сторонних бесплатных программ и, для некоторых материнских плат — с помощью настроек UEFI.
Фраза "What's Up?" в переводе с английского дословно означает "Как дела?". Так и есть, WhatsApp - это популярный мессенджер, который распространился благодаря своему удобству, скорости обмена сообщениями и бесплатности. Так как приложение предназначено в основном для мобильных платформ, то его установка потребует усилий.
В этой статье мы рассмотрим как выполняется установка WhatsApp в Ubuntu с помощью нескольких способов. Официального клиента для Linux не существует, но есть несколько неофициальных, а также можно воспользоваться веб-версией. Читать далее Установка WhatsApp в Ubuntu→