Меню сайта
   Главная   
   Обо мне   
   Статьи   
   Дневник   
   Картинки   
   Файлы   
   Форум   
   Гостевая книга   

Категории раздела
Куклы и игрушки [60]
Личное [116]
Музыка [19]
Общее [304]
Японский язык [12]
ZX Spectrum [70]
Субмарины [98]
Настольные игры [34]
Го (碁) [11]
Книги [16]
Япония [26]
Таро [4]
Запертый шкаф [17]
CSA (КША) [15]
GNU/Linux [134]
Ubuntu [103]
Manjaro Linux [39]
Python [3]
Магнитольное [44]
Commodore64 [14]
Игровые приставки [2]


 
Дневник (2021 » Октябрь » 14 в 04:43)
GNU/Linux hexedit и вьюверы, dd и sdcard

hexedit
dd xxd
grep

Лучше всего инструменты изучаются в прикладном режиме, когда их есть к чему приложить. А теоретическое изучение я постоянно забываю. В этой записи я опишу решаемую проблему и пригодившийся функционал из широкого спектра инструментариев.

Все решения - терминальные, GUI не наш путь, особенно при работе с большими файлами и файлами устройств.

ПРОБЛЕМА: Перестал у меня на ZX-EVO загружаться IS-DOS с винта (sdcard2hdd).
ЗАДАЧИ: снять образ с накопителя и подготовить новую карту для форматирования средствами iS-DOS.


Считываю устройство в файл:
sudo dd if=/dev/sde of=~/isdos_hdd.img bs=4M status=progress && sync

Теперь задача - найти в бинарном массиве содержимое текстовых файлов. К счастью в iS-DOS использовалась русская кодировка CP866. Выберем её нажав Alt-e в mcview из Midnigth Commander:
mcview isdos_hdd.img
Теперь можно там поискать что-то нужное.

Следующий шаг - подготовить новую sd карту, которую  я потом буду форматировать внутри iS-DOS, изучать формат, и сравнивая с сохранённым образом пытаться понять, что там не понравилось системе, и почему она виснет при подключении к этому накопителю.

Первая задача - забить всю  карту нулями, чтобы легче было отслеживать что и куда пишет iS-DOS при создании разделов. Сначала УБЕЖДАЕМСЯ, что /dev/sdd — это именно sd карта, а не ваш хомяк с ЦЕННЫМИ данными!
sudo blkid
lsblk
sudo parted --list
sudo parted /dev/sdd unit s p free

Теперь можно залить /dev/sdX нулями:
sudo dd bs=1024  if=/dev/zero of=/dev/sdd status=progress && sync

Мне для надёжности хотелось бы поискать на устройстве отличные от нуля значения, что очень пригодится потом при изучении активности в iS-DOS. Но пока не нашёл как это сделать. (Буду рад подсказкам!) Могу только поискать конкретный байт в бинарном файле устройства:
sudo grep -obUaP "\x02" /dev/sdd
Если что-то найдёт - выведет. Искать можно как отдельные байты, так и последовательности.

А вот мне подсказали с костылём на баше. Выводит все 16-ти байтовые строки, если там есть не нулевое значение:
sudo xxd -g 16 /dev/sde | grep -v $(for i in {1..16}; do echo -n "00"; done)


Эта утилита пропускает пустые нулевые строки, заменяя их *. Удобно для просмотра пустых устроств с малым наполнением. (Ключ -b вывод в десятичном виде)
hexdump -v -C /mnt/Yuggoth/Data/Backs/isdos_hdd.img
Можно не только выводить, но и искать по образцу:
unidump isdos_hdd.img | grep orton


Бинарные аналоги cat для текстовых файлов.

Я выбрал для себя xxd, потому что он работает и с файлами и с устройствами из /dev/.
sudo xxd /dev/sdd
sudo hexdump -v -C /dev/sdd # вариант,
# и с ключом -b может выводить в десятичном виде.

А hexyl хоть и сразу цветной, но работает только с файлами, объекты типа /dev/sdX не разумеет:
hexyl isdos_hdd.img

unidump тоже не может в /dev/ но и в цвете не может, совсем бесполезен.


Но всего лучше полноценный HEX редактор, поддерживает всё, и файлы и прямое редактирование устройств, можно даже в цвете:
hexedit --color /dev/sdd


ССЫЛКИ:
  1. Дисковая операционная система iS-DOS на ZX-Spectrum
    https://ru.wikipedia.org/wiki/IS-DOS
  2. Разбиение винчестера на большое количество устройств в операционных системах iS-DOS и TASiS
    http://zxbyte.ru/isdos_hdd_partition_creating.htm
  3. hexedit Linux man page
    https://linux.die.net/man/1/hexedit
  4. Поиск текста средствами grep
    https://losst.ru/gerp-poisk-vnutri-fajlov-v-linux
  5. Команда dd и все, что с ней связано
    https://habr.com/ru/post/117050
  6. dd: Команда, которая не похожа на другие
    http://rus-linux.net/lib.php?name=/MyLDP/consol/dd/dd-1.html
  7. What is the difference between 'bs', 'count' and 'seek' in dd command?
    https://unix.stackexchange.com/questions/134299

Категория: GNU/Linux | Просмотров: 314 | Добавил: harushima | Рейтинг: 0.0/0 |
Всего комментариев: 3.

15.10.2021 11:41
1 harushima
0  
Еще dd'ом удобно вырезать части файла:
dd if=file.bin of=cut bs=1 skip=<оффсет> count=<размер>

А параметр notrail запрещает обрезать файл после выполнения операции.

+ есть еще одно важное применение dd
$ dd if=/dev/random count=1 > secret.key
хотя я предпочитаю
$ head -c 512 > secret.key

Ещё очень важный хинт:
когда идёт копирование большого объёма данных, бывает очень интересно «а сколько же там осталось?»
Для этого нам поможет команда kill -USR1 , где PID — ID процесса DD, в окне с dd получим текущий прогресс.


15.10.2021 12:19
2 harushima
0  
dd - это ...
"data destroyer" или "delete data", что можно перевести как "Доконай Диск" или "Добей Данные"

http://rus-linux.net/lib.php?name=/MyLDP/consol/dd/dd-1.html


15.10.2021 12:21
3 harushima
0  
if=filename — input file
of=filename — output file

В целях защиты от спама, добавлять комментарии могут только зарегистрированные пользователи. Если Вы не хотите регистрироваться под своим именем, войдите под логином: anonymous, паролем: anonymous.   ( Регистрация,   Вход).
Авторизация
Анонимный вход:
anonymous / anonymous
Логин:
Пароль:

Календарь
«  Октябрь 2021  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031

Поиск

Облако тэгов
JGSDF игрушки Брюнетки Кладбище сайты Ярость Дракулы Древний Египет девушки кошки Cthulhu Вампиры Kitsune Ужас Аркхема инструмент комиксы Lovecraft готика Submarine submarine rc toy Hosting игротека Ужас Аркхэма book uboat мобильная связь го Edgar Poe swf Mansions of Madness Nightmares персоны Synergy linux-hardware bash youtube Storages Python Мастер-рукожоп Магнитофоны Entropy Grub2 loglevel WiFi Beeline ОПСОСЫ sharp939 Аудиокассеты Windows linuxwork Хочуны ImageMagick топБарыг C64c Commodore

Статистика
Яндекс.Метрика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Page QR code


Перепечатка материалов сайта без активной ссылки запрещена. Следить за RSS
(c) hermitlair.ucoz.com 2009-2024
Лучший браузер!
Блокировка рекламы