Victoria, утилита для проверки HDD на поврежденные сектора (BAD-блоки)

Заметка из серии «не пролюбилось шоб» и «шоб все знали, где искать». На работе астрологи бухгалтерия объявила неделю инвентаризации и, соответственно, тестирования железа. Поскольку добровольные и недобровольные помощники меня читают, пусть висит тут.

Утилита уже пожилая, но лучше еще никто не придумал. И она запускается и нормально работает из Windows PE, что на базе XP, что на базе Windows 7

Для удобства утилита упакована в RAR SFX-архив (мало ли кто будет качать на машину без установленных архиваторов)

Victoria 4.46b

Последняя официальная версия. Минус — на системах x64 не работает, только x86.

Скачать Victoria 4.46b с Mega.NZ (RAR SFX)

Victoria 4.47

Пропатченная белорусскими умельцами версия. Один из плюсов — работает на x64 системах (но в режиме API). На x86 в т.ч. на XP и XP PE тоже работает. Минус (относительный) — показывает график вместо привычной карты диска.

Список исправлений в версии 4.47:

1) возможен запуск на x64 виндах (доступен только режим API)
2) процесс сканирования не останавливается в случайных местах
3) возможно случайное сканирование на дисках более 1TB
4) можно свободно сворачивать окно программы не боясь за процесс сканирования (даже рекомендую сворачивать окно)
5) возможно сканирование за один проход дисков более 1TB (визуальное отображение секторов при этом отключается)
6) ругательства на драйвер PortTalk теперь производятся в лог
————————————
E-mail: syshwid@gmail.com

Скачать Victoria 4.47 с Mega.NZ (RAR SFX)

Прошивка Nokia 700 (Nokia Belle Feature Pack 2, FP2)

Преамбула

Попался в руки раритетный смартфон на Symbian 3 Nokia 700. После запуска телефона, через некоторое время отваливалась регистрация сим-карты, а также криво работал WiFi, подключаясь, но показывая, что подключение ограничено. Правда, как позже выяснилось, проблема прошивкой не решилась, скорее всего, она хардверная.

Тем не менее, на allnokia.ru инструкция по прошивке какая-то сумбурная, некоторые детали не учтены или опущены. Надо долго копаться в форуме, чтоб не материться потом целый день. Или инструкция старая, и написана для Windows XP. В общем, напишу свою по мотивам.

Что понадобится

1. Дата-кабель (обычный micro-USB)
2. Зарядить батарею по полной!
3. Компютер с Windows. Я прошивал под Windows 7 x64, с чем, возможно, были связаны некоторые сложности.

Установка софта

1. Делаем контрольную точку восстановления системы (на данном этапе очень желательно, но некритично)

2. Ставим оригинальный Nokia Software Updater (NSU) Копия. В процессе установки он попытается скачать, но не сможет Microsoft Visual C 2005 Redistributable, но оно и не надо. Продолжаем установку. Все остальное, по состоянию на июль 2020 г. все еще на своих местах, либо у него внутри.
По окончанию установки вводим любое имя и забываем про эту софтину на веки вечные. Запускать ее не надо, у меня без нее падал со странными глюками прошивальщик. По всей вероятности, в прошивальщике как раз были какие-то протухшие драйвера. Впрочем, некоторые пишут, что все ровно наоборот, и у кого-то прошивальщик не работает при установленном (и даже не запущенном) NSU. Если так, то откатываемся на контрольную точку и пропускаем этот пункт.
Ну и еще один аргумент к желательности контрольной точки в том, что установщик NSU оставляет в системе кучу не всегда нужных программ и драйверов, так что при разовой прошивке удобно все это одним махом откатить, а не сидеть полчаса в Панели управления.

3. Делаем еще одну контрольную точку восстановления системы. На этот раз ОБЯЗАТЕЛЬНО! Почему? Потому что дальше будем ставить прошивальшик, который отличается неплохой работой, но жутко кривым установщиком, так что если что-то пойдет не так, откатываемся к контрольной точке.

4. Рекомендую на время установки прошивальшика и самого процесса прошивки выключить антивирус. Ничего страшного нет, а вот ложное срабатывание, которое все покрашит, и/или превратит телефон в кирпич не нужно.

5. Ставим прошивальщик Phoenix. На форуме Allnokia оказался целый зоопарк Phoenix’ов, но для Nokia 700 подходит только Phoenix_Service_Software_2012.04.003.47798, причем то, что подходит только он, пришлось искать в глубинах форума. А ссылка на форуме на нужный Phoenix оказалась битой. Еле нашел.

Устанавливается он, обычно штатно (запускаем инсталлер, нажимаем Next), а вот сносится или переустанавливается хреново, для того и точка восстановления сделана. Если при удалении Phoenix зависнет Microsoft Installer — единственный нормальный способ его удалить, это откатиться на заранее созданную точку восстановления. Если этого не сделать, то при повторной установке Microsoft Installer опять зависнет.
Есть способ таки установить Phoenix и в этом случае, но он не очень правильный
— Запускаем установку и ждем, пока она застопорится.
— Вызываем диспетчер задач и переключаемся на вкладку Процессы
— Сортируем процессы по именам, находим msiexec.exe (их должно быть несколько)
— Ждем, пока их активность не прекратится окончательно. В колонке ЦП напротив msiexec.exe должны, как минимум 10 минут висеть ноли.
— Начинаем завершать процессы msiexec.exe. Когда установшик отругается, что не смог скопировать какую-то библиотеку в C:\Windows, он завершится. На самом деле Phoenix будет установлен.

6. Качаем прошивку. Официальную можно скачать отсюда или отсюда. Устанавливаем (распаковываем) ее в C:\Program Files (x86)\Nokia\Phoenix\Products\. После распаковки в папке должна образоваться подпапка RM-670

Прошивка

Подробное описание прошивки с картинками под катом

Альтернативные прошивки

01-Nokia_Belle_FP2_Valexx_Nokia700.exe — не пробовал, подробное описание мода выводится при распаковке прошивки.
02-113.010.1506_Belle_FP2_by_DSV_doma.exe — минималистичная альтернативная прошивка. Убраны офисы, попугайские обои, иконки в меню разложены по папочкам, т.о. меню влезает на один экран.
03-v113.010.1506_Belle_FP2_LEBED_S_V_SERIX74.exe — прошивка с альтернативным оформлением.

Архив с альтернативными прошивками

Скачать

1. Nokia Software Updater For Retail 4.3.2
С Allnokia
Копия на Mega.NZ

2.Phoenix Service Software 2012.04.003.47798

3. Официальная прошивка:
С Allnokia
Копия на Mega.NZ

4. Альтернативные прошивки

Нормальная прошивка для DLINK DIR-300 (DIR-300A C1)

Преамбула, или минутка негодования

Вызвали сегодня к старым клиентам с симптомами, мол новый мальчик от провайдера приходил, нам что-то обновил, в черной коробочке покопался и теперь ничего не работает. «Черная коробочка» — это и есть тот самый DIR-300. С 2011-го «черная коробочка» нареканий не вызывала. Приезжаю, действительно вижу, что ничего не работает, да еще и пароль на вход в админку поменян. Фигня война, сбрасываю к заводским настройкам, захожу в админку роутера и вижу ЛЮТЕЙШИЙ ПИЗДЕЦ, ад и Израиль, крипоту почище Сайлент Хилла.

Сраный хипстер из провайдера действительно обновил прошивку, и, что самое ужасное, в прошивку оказались внедрены бэкдоры (официально «дополнительные сервисы») от главных спамеров, доставщиков гнилой шавермы и рабовладельцев Роисси. Да, не поверите — страшный сон любого админа, теперь не только Яндекс.Браузер, который пытается всеми правдами и неправдами пролезть на десктоп, но и Яндекс.Бэкдор в роутере.

Чуть челюсть не отвалилась. Это ж до какой ручки дошла когда-то уважаемая компания DLink, что связалась с Яндекс.Спамом? Но это полбеды. Яндекс.Скам еще и мешал нормальной работе роутера.

Выдал я такое, что дохлый основатель Хуяндекса завертелся в гробу, и принялся откатывать все назад. Слава Ктулху и Великим Древним, что я компьютерный Плюшкин, и таки нашлась у меня нормальная прошивка, сделанная до того, как DLink продался Яндекс.Сволочам.

Откатил, все заработало.

Яндекс.Спам, Яндекс.Срам, Яндекс.Дерьмо, Яндекс.Хуесосы.

Чтоб вы все нахуй сдохли, суки.

Прошивка

DIR-300A_C1
Заодно уж и мастер настройки DLink Click’n’Connect с оригинального диска

DetecTOR v 0.3.1b

По многочисленным просьбам зрителей обновлена утилита DetecTOR, которая определяет, присутствует ли определенный IP в сети Tor.

— В связи с тем, что база данных Tor’овских IP по адресу http://torstatus.blutmagie.de/query_export.php/Tor_query_EXPORT.csv сдохла, то в качестве источника данных по умолчанию установлена https://check.torproject.org/exit-addresses и формат «Только IP».
В формате «Только IP» утилита пытается вытащить из источника данных все, что похоже на записи адреса IPv4 в полном формате (x.x.x.x, где x — число от 0 до 255).

— Выяснилось, что утилита не работает на Windows XP с IE6. Ошибка для C# программ (и не только их) известная, решение следующее:
Для Windows XP необходимо установить Internet Explorer 8 с обновленными корневыми сертификатами, отдельно или в составе кумулятивного обновления. Обновление можно скачать здесь или здесь

readme.txt

Основная статья о DetecTOR Копия
Скачать (портативная версия)
Исходники

Прошивка Motorola RAZR v3 (v3i)

Попался вот такой вот раритетный телефончик, правда, не грузящийся. Кто-то его пытался перепрошить и чуть не окирпичил. Поскольку, пока делал, последовательность не записывал, то инструкция больше для себя. Осторожнее. В телефонах я не профи.

1. Заряжаем телефон полностью
2. Качаем архив (драйвера + прошивальщик + прошивка + менеджер мидлетов)
3. Ставим драйвера (в архиве версия для x86 и x64 системы, для Win7)
4. Ставим прошивальщик
5. Запускаем прошивальщик, рядом с полем Filename в главном окне тыкаем в кнопку с тремя точками, выбираем прошивку.
6. Переводим телефон в прошивочный режим. При выключенном телефоне нажимаем * # и кнопку включения. На экране телефона должно отобразиться:

Boot Loader
0A.30
SW Version:
[ВЕРСИЯ ПРОШИВКИ]

Все проверяем, та ли прошивка, если все ОК, втыкаем телефон в компьютер, ждем, пока схватятся драйвера и девайс определится в системе и отобразится в прошивальщике.

7. Нажимаем в прошивальщике кнопку Start
8. Появляется окно с описанием хода прошивки. В столбце Status текущая операция, в столбце Progress — ее ход.
9. В конце прошивки прошивальщик напишет Finish, и телефон перезагрузится. Иногда надо перезагрузить вручную.
10. Берем карту памяти, копируем на нее подкаталоги Elf и Java из каталога с прошивкой, вставляем карту в телефон.

Архив с прошивкой и софтом

Скачать с Mega.NZ

Источники

Тема на 4pda
Инструкция по прошивке на motofan.ru
Описание прошивки из архива

Список софта из видео «Как выжить на Windows XP в 2020 году»

Обновление Windows XP от Simplix

Официальный сайт
Копия на Mega.NZ

Google Chrome

Официальный сайт
Автономный установщик

Firefox

Firefox Setup 49.0.2
Firefox Setup 52.9.0esr

Pale Moon XP (Mypal)

https://github.com/Feodor2/Mypal/releases

Libre Office 5.4.7.2 for Windows XP

Дистрибутив
Справка (русская)
Копия на Mega.nz (Дистрибутив+справка в RAR SFX-архиве)

Microsoft Office 2003

KB828041 (первое обновление)
Пакет обеспечения совместимости
Средство удаления скрытых данных

Антивирусы

Avast
AVG
DrWeb CureIt
AVZ

Far Manager

Официальный сайт
Far Manager v3.0 build 5577 x86
Far Manager v2.0 x86
Far Manager v2.0 x86 (урезанная версия для встраивания в образы)

WinRAR

Официальный сайт

7zip

Официальный сайт
Копия

.NET Framework

.NET 2.0
.NET 3.5
.NET 4.0
Копии в одном архиве (ZIP)

Aimp 2

Aimp + Aimp Tools + Plugins (визуализации) ZIP

KLite Mega Codec Pack XP

Официальный сайт
Копия

Torrent-клиент

uTorrent XP

Клиент OpenVPN

Скачать с официального сайта:
Версия x86 (32-разрядная)
Версия x64 (64-разрядная)

Копии:
Версия x86 (32-разрядная)
Версия x64 (64-разрядная)

SysInternalsXP

SysInternalsXP

Песня Коронавируса (пародия на В. Цой — Прохожий)

Я гуляю по проспекту
Мне не надо ничего
Свои гены растопырил
Заражу я хоть кого

Эй прохожий проходи
Эх пока не заразил!

Эй прохожий проходи
Эх пока не заразил!

В помещеньях я хожу
Без билета
Осенью,весной хожу
Зимой и летом

Эй прохожий проходи
Эх пока не заразил!

Эй прохожий проходи
Эх пока не заразил!

Прихожу домой я ночью
И включаю интернет
А сосед за стенкой стонет
Кашляет, его уж нет

Эй прохожий проходи
Эх пока не заразил!

Эй прохожий проходи
Эх пока не заразил!

Эй прохожий проходи
Эх пока не заразил!

Эй прохожий проходи
Эх пока не заразил!

Linux. Есть ли слово в строке. Есть ли подстрока в строке.

Довольно частой задачей является узнать, встречается ли в строке какое-нибудь слово или же, в более общем случае, подстрока.
Для решения можно воспользоваться внутренними механизмами bash, но я покажу более башенезависимый способ, с помощью grep. Благо он есть практически везде, даже в каких-нибудь системах, основанных на BusyBox, а вот вместо bash может встретится и просто sh, и что-нибудь более экзотическое.

Есть ли слово в строке

Предположим, что в переменной STR имеется строка:

STR="cat lynx lion coguar"

В переменную SUBSTR запишем первый параметр командной строки скрипта ($1):

SUBSTR="$1"

Выводим содержимое переменной $STR, передаем вывод grep с нужными параметрами, а результат сохраняем в переменную-счетчик:

CNTR=`echo "$STR" | grep -w -c "$SUBSTR"`

В данной команде более всего интересны параметры grep:

-w — искать целое слово.

Примечание: Словом по умолчанию считается все, что отделено от других символов пробелом(-ами) табуляцией(-ами) или переводом(-ами) строки.

— подсчитать количество строк с нужным вхождением

Примечание: Ключ заставляет grep подсчитывать строки, а не сами вхождения, так что количество вхождений слова в строку, так посчитать не получится.

В итоге в переменной CNTR оказывается 0, если совпадений нет, и 1, если совпадение есть, остается только проверить:

if [ "$CNTR" -ne 0 ];then
    echo "Exist"
else
    echo "Not exist"
fi

Демо-скрипт на GitHub

Примеры работы:

./exist-word lion

Вывод:
Exist

./exist-word dog
./exist-word li

Вывод:

Not exist

Более общий случай: имеется ли в строке подстрока.

Под подстрокой имеется любой набор символов, идущих подряд.

Задача решается аналогично предыдущей, только из параметров grep удаляется ключ -w

Если из вышеуказанного скрипта удалить ключ -w grep‘а, то вывод будет таким:

./exist-word li

Вывод:

Exist

Т.е. теперь была найдена подстрока li (часть слова lion).

Тридцать три короны

В центре города Уханя,
Где травинки не растет,
Жил великий вирусолог,
Черный маг и руноплет.

Иногда ему Иные
Помогали, как могли
Даже, блин, грибы с Юггота
(Хоть им было неохота)
РНК ему дАли!

Тридцать три короны,
Тридцать три короны,
Тридцать три короны,
свежая строка

Тридцать три короны,
Вирь родился новый
Из куска Иного РНК!

В пять утра вставал он ровно,
Пентаграммочку чертил,
Заносил туда он колбы,
Чашки Петри заносил.

День за днём промчалось лето,
Звезды встали как должны.
Результат эксперимента
И побочные эффекты
Были всем нам явлены!

Тридцать три короны,
Тридцать три короны,
Тридцать три короны,
свежая строка

Тридцать три короны,
Вирь родился новый
Из куска Иного РНК!

Linux shell, pipes (конвейеры) и код завершения.

Преамбула

При работе с конвейерами (пайпами, «трубами», pipe), часто возникает вопрос, как отловить ошибку, произошедшую внутри конвейера.

Суть проблемы

Для примера возьмем код, где ход загрузки файла отображается dialog’овым прогрессбаром (копия):

#!/bin/bash

FADDR="http://tolik-punkoff.com/static/test.mp3"

wget --progress=dot -O "./test.mp3" "$FADDR" 2>&1 |\
stdbuf -o0 awk '/[.] +[0-9][0-9]?[0-9]?%/ { print substr($0,63,3) }' | \
dialog --gauge "Download file from $FADDR" 10 100

Как видите, конвейер (т.е. передача вывода от одной команды другой через |), тут налицо.

Если после данной команды просто дописать echo $?, то будет видно, что результат будет 0.

И когда все в порядке:

И когда все не в порядке (в данном случае, сделан обрыв связи):

На самом деле, это происходит потому, что в переменной $? оказывается код завершения последней команды в pipe.

Решение

В современных версиях bash перед использованием контейнера, необходимо добавить команду:

set -o pipefail

В старых bash и некоторых других оболочках придется извращаться, может как-нибудь вернусь к вопросу (если для какого утюга что писать буду).

Примечание: Следует иметь в виду “безобидные” команды, которые могут вернуть не ноль.
В больших скриптах со сложными конструкциями и длинными конвеерами можно упустить этот момент из виду, что может привести к некорректным результатам.

Проверка

После добавления вышеуказанной команды в скрипт делаем тест с обрывом связи:

Или указываем в переменной $FADDR некорректный адрес:

Теперь echo $? отображает корректный код завершения.

Модификация скрипта

Скрипт на GitHub

Источник

Linux pipes tips & tricks Копия в PDF

Скачивание файла и обработка ошибок в wget. Обратите внимание!

Преамбула

Хотел, конечно, назвать как-нибудь типа «гадское поведение wget» или «уничтожение файлов wget‘ом», но остановился на этом. Добавлю ссылку в пост о кодах ошибок (копия) на этот пост.

Но на самом деле, это вроде маленькая и многим известная штука, но которой мало кто задумывается. Особенно, если использует wget в своих скриптах. Отдельно отметить это меня сподвиг тот самый скрипт, с которого я начал сегодняшний разговор о wget (копия)

Суть проблемы

Оказывается, wget создает новый файл перед закачкой. Несмотря на то, появятся там какие-то ошибки или нет, и несмотря на то, какие ошибки это будут, хоть это ошибки сервера (например 404, файл не найден), или ошибки сети (файл не удалось докачать), файл все равно будет создан. Хотя по логике, например, ошибку сервера (пусть 404) можно было бы сначала и проверить. Но wget этого не делает, если не случилась ошибка с кодом 2 (ошибка параметров командной строки или конфигурационных файлов).

На самом деле, такой подход довольно правильный, ну и правда, какая разница, почему оно не скачалось (или не сохранилось на диск в случае I/O error). И для анализа ошибок проблем меньше.

Наибольшую проблему это представляет собой тогда, когда пользователь указывает в параметрах wget ключ -O <путь к файлу>, тогда wget придется его полюбому перезаписать.

Так-то у wget есть «защита от дурака», если файл, например, file уже существует, то при следующей закачке файл file (под тем же именем) будет сохранен, как file.1, и если что, старый файл останется в целости и сохранности. Но в скриптах ключ -O удобно использовать. Не надо следить за этими номерами файлов, и вообще в скрипте, wget без ключей, один сплошной геморрой. Так что ключи используют. Но как же правильно это сделать? Да выбирать место сохранения скачанного и проверять коды ошибок wget!

Решение

Если нужно скачать файл, а уж если скачался, заменить, не скачался, оставить старый

1. Скачиваем файл во временный:
wget -O "/tmp/test.tmp" "http://example.org/test.dat"
2. Проверяем коды ошибок (здесь самый простой вариант)

if [ "$?" -eq 0 ]; then
	#Пункт 3
fi


3. Копируем скачанный файл в целевой: cp /tmp/test.tmp /home/pi/test.dat

Естественно, все имена файлов и пути меняем на свои.

Надо скачать файл. Не скачался — вернуть сообщение об ошибке

1. Скачиваем файл:
wget -O "~.data/test.dat" "http://example.org/test.dat"

2. Проверяем коды ошибок (здесь самый простой вариант). Если ошибка — завершаем работу:

if [ "$?" -ne 0 ]; then
	rm "~.data/test.dat"
	echo "Data download error!"
	exit
fi

Посмотреть размер каталога в Linux. В консоли, но интерактивно и наглядно (ncdu).

И наглядно увидеть, где засрано 🙂

Для отображения размеров каталогов (с подкаталогами), есть стнадартная утилита du, но, если честно, она не очень удобная. Гораздо удобнее ее аналог, написанный с помощью ncursesncdu

Пользоваться очень просто. Заходим в каталог, в котором хотим узнать размеры подкаталогов, и просто вызываем утилиту:

ncdu

Наверное, ее единственный минус, что в каталог уровнем выше, чем тот, из которого ее вызвали, она не переходит. Так что если хотите посмотреть размеры каталогов сразу во всей файловой системе, надо вызывать ее из корня (/). Но причина такому поведению легко может быть найдена — после запуска утилита сканирует все подкаталоги, чтоб потом нам красиво показать. Чем с более верхнего уровня ее вызываешь, тем дольше процесс сканирования.


Сканирование

В подкаталоги входить можно по ENTER, возврат назад по стрелке влево, клавише h или < (обычно запятая с шифтом) или по нажатию ENTER на .., как в mc. Краткая справка по ? (не забывайте нажать SHIFT), выход по q.


Отображение каталогов и их размеров

В Slackware устанавливается штатным образом через sbopkg, как в других линуксах не знаю, в Убунте и Дебиане есть в репозиториях.

Linux wget, коды возврата/завершения. Коды ошибок wget.

Раз уж пошел разговор про wget (копия), решил я заодно дополнить добрым людям скрипт какими-нибудь осмысленными сообщениями об ошибках, а для того нужны коды завершения.

Кто-то, неизвестно почему, утверждал, что в man их нет. Есть. Но пусть уж будут и тут, и мне от склероза, и мало ли кому другому, кто не любит на буржуйском читать.

Коды завершения wget

0 — OK (ошибок нет)
1 — Иная / общая ошибка (generic error code)
2 — Ошибка в параметрах командной строки или файлах конфигурации (.wgetrc или .netrc)
3 — Ошибка файлового ввода/вывода (I/O error)
4 — Ошибка сети (например, при обрыве связи)
5 — Ошибка SSL
6 — Ошибка идентификации (неправильное имя пользователя или пароль)
7 — Ошибка протокола
8 — Ошибка сервера (например, нужный файл на сервере не найден, ошибка 404)

За исключением 0 и 1, коды выхода с меньшими номерами имеют приоритет над кодами с большими номерами, когда встречаются многочисленные типы ошибок.