Шифрование в Linux: Стеганография



22 коммент.
Задача: требуется скрыть сам факт передачи важных данных по открытым каналам связи.
Решение: несколько стеганографических утилит, доступных по лицензии GNU GPL и имеющихся в Debian, помогут решить проблему.

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

Стеганография
- в переводе с греческого дословно означает «тайнопись». Это наука о скрытой передаче информации путём сохранения в тайне самого факта передачи. В отличие от криптографии, которая скрывает содержимое секретного сообщения, стеганография скрывает само его существование.

О программе steghide и пойдёт речь далее.

Установка и работа
Для того, чтобы поставить все стеганографические утилиты, что есть в Дебиан, мне потребовалось 4Мб и несколько секунд ожидания. При помощи друга всех дебианщиков, команды apt-get install, было установлено:
outguess - Universal Steganographic tool
stegdetect - Detect and extract steganography messages inside JPEG
steghide - A steganography hiding tool
snowdrop - plain text watermarking and watermark recovery
Чего с лихвой хватит для любых параноидально одержимых приватностью своих данных граждан.

Сокрытие данных
Хотелось бы отметить чрезвычайно подробный и толковый мануал steghide - увлекательнейшее чтиво, где подробно расписываются параметры и рассказывается вкратце, как программа работает и какие алгоритмы использует.
Вдоволь насладившись чтением, приступаем к непосредственно скрыванию своих сокровенных данных в какой-нибудь безобидный рисунок. Например, такой:


Когда я оформлял трудовой контракт, меня попросили написать свою краткую автобиографию - чем не конфиденциальные данные? Файл сохранился, вот его и внедрю в картинку - благо это простой текст, форматирования нет.
Для этого нужно набрать команду:
$ steghide embed -ef autobio.txt -cf MacOS.jpg -sf MacOShide.jpg
То есть внедряем файл autobio.txt (ключ -ef, embed file) внутрь рисунка MacOS.jpg (ключ -cf, cover file), в результате чего имеем рисунок со внедрённым стего под названием MacOShide.jpg (ключ -sf, stego file). При этом прогамма спросит дважды пароль:
Enter passphrase:
Re-Enter passphrase:
embedding "autobio.txt" in "MacOS.jpg"... done
writing stego file "MacOShide.jpg"... done
Всё готово, вот в этом рисунке весь мой жизненный путь за четверть века :-)

Для того, чтобы снова иметь возможность прочесть скрытый текст, извлекаем его оттуда:
$ steghide extract -sf MacOShide.jpg -xf autobio2.txt
То есть извлечь из стего-файла MacOShide.jpg скрытую информацию в файл autobio2.txt (ключ -xf, extract file). Утилита будет лаконична:
Enter passphrase:
wrote extracted data to "autobio2.txt".
Готово, файл записан.

Небольшое исследование
Кто умеет читать маны, мог почерпнуть тоже, читая пример в коце man steghide. Но мне стало интересно, насколько изменился рисунок не визуально, а количественно. Для этого люди, занимающиеся обработкой изображений, традиционно применяют среднеквадратическое отклонение между двумя изображениями. Вооружившись исчерпывающий статьёй Финапа [1] и реализовав её в MATLAB, вычисляем разницу:
>> kmvRMSandnorm('MacOS.jpg', 'MacOShide.jpg')

ans =

0.0032
Да, ну разумеется, такую разницу в изображении мы не увидим, даже если будем пристально вглядываться: всего отличие всего лишь на 0.32%! Отличия между изображениями можно увидеть, не сильно напрягаясь, где-то при 3-5%.
Ну и разумеется, что контрольная сумма файла изменилась:
$ md5sum MacOS.jpg
da6d7d25d5560fb22eb9d2f6ca09417f MacOS.jpg

$ md5sum MacOShide.jpg
87a02d9714ed43f49d2aeb37c4e75d94 MacOShide.jpg
Так что изменения, конечно, есть, но очень небольшие - на глаз не заметить, так что можно смело переправлять личную информацию по электронной почте, даже если её просматривает злобный админ.

Литература
[1] Fienup, J. Invariant error metrics for image reconstruction, Applied Optics, 32, 1997, 36, 8352-57
[2] Стеганография. Прячем секреты Dru Lavigne
Читать далее

Странная ошибка записи DVD-дисков...



20 коммент.
Может быть, кому-то пригодится: есть странная, редко всплывающая ошибка при записи DVD-дисков, на которую я время от времени натыкаюсь (палю диски часто, особенно при рассылке их по почте). Приведённый ниже рецепт прост, как грабли, но тем не менее...



Что происходит
При записи DVD-диска growisofs, хотя и очень редко (примерно раз в 20-30 дисков) вываливается с таким сообщением:
Executing 'builtin_dd if=debian-40r0-i386-DVD-1.iso of=/dev/cdrom obs=32k seek=0'
/dev/cdrom: "Current Write Speed" is 16.4x1385KBps.
0/4698417152 ( 0.0%) @0x, remaining ??:??
0/4698417152 ( 0.0%) @0x, remaining ??:??
0/4698417152 ( 0.0%) @0x, remaining ??:??
0/4698417152 ( 0.0%) @0x, remaining ??:??
0/4698417152 ( 0.0%) @0x, remaining ??:??
1671168/4698417152 ( 0.0%) @0.4x, remaining 1077:20
:-[ WRITE@LBA=330h failed with SK=3h/ASC=0Ch/ACQ=00h]: Input/output error
builtin_dd: 816*2KB out @ average 0.0x1385KBps
:-( write failed: Input/output error
/dev/cdrom: flushing cache
/dev/cdrom: closing track
:-[ CLOSE TRACK failed with SK=3h/ASC=0Ch/ACQ=00h]: Input/output error
/dev/cdrom: closing session
:-[ CLOSE SESSION failed with SK=5h/ASC=72h/ACQ=03h]: Input/output error
/dev/cdrom: reloading tray
При этом в dmesg появляются следующие сообщения:
attempt to access beyond end of device
hda: rw=0, want=68, limit=4
isofs_fill_super: bread failed, dev=hda, iso_blknum=16, block=16
attempt to access beyond end of device
hda: rw=0, want=68, limit=4
isofs_fill_super: bread failed, dev=hda, iso_blknum=16, block=16
cdrom: open failed.
attempt to access beyond end of device
hda: rw=0, want=68, limit=4
isofs_fill_super: bread failed, dev=hda, iso_blknum=16, block=16
cdrom: open failed.
attempt to access beyond end of device
hda: rw=0, want=68, limit=4
isofs_fill_super: bread failed, dev=hda, iso_blknum=16, block=16
attempt to access beyond end of device
hda: rw=0, want=68, limit=4
isofs_fill_super: bread failed, dev=hda, iso_blknum=16, block=16
attempt to access beyond end of device
hda: rw=0, want=68, limit=4
isofs_fill_super: bread failed, dev=hda, iso_blknum=16, block=16
Собственно, диспозиция:

Версия софта:
growisofs 5.20 15 July 2004
$ uname -a
Linux penta4rce 2.6.15.7 #1 SMP PREEMPT Tue Jul 4 15:26:05 MSD 2006 i686 GNU/Linux

Пишущий привод:
Device type : Removable CD-ROM
Version : 0
Response Format: 2
Capabilities :
Vendor_info : '_NEC '
Identifikation : 'DVD_RW ND-3550A '
Revision : '1.06'

Выход из положения
Когда это произошло в первый раз, я подумал: ну всё, запорол болванку. Но потом решил из хулиганских побуждений запустить прожиг того же образа ещё раз - как будто там чистый диск. После этого образ прожигается нормально, и md5-суммы сходятся.

По крайней мере, если кто-то ещё встречался с подобным финтом growisofs, попробуйте просто повторить процесс заново. Если уважаемые комментаторы встречались с подобным, просьба не стесняться и комментировать.

Обновлено: Что выяснилось по материалам комментариев
В ходе плодотворного обсуждения поста с уважаемыми комментаторами выяснилось, что проблема достаточно распространена. Ошибки возникают на разных платформах (Линукс и оффтопик) и под разным программным обеспечением (growisofs, k3b / Nero).

Обсуждались по большому счёту только приводы NEC, причём имелись отзывы, что на "_NEC DVD_RW ND-3500AG" подобных шибок нет. Возможно, стоит обратить внимание на такую прошивку.

Однако на 'DVD_RW ND-3540A ' наблюдаются сходные ошибки, проявляющие себя очень редко:
прошлой ночью на работе крутил свой привод через nero на xp по принципу записать-стереть-записать диск 25 раз. На 19 диске ошибка... притом 20 и так далее записался
Обсуждение подытожено вполне правдоподобным заявлением тов. mczim о том, что:
Дело в прошивках NEC. Они года с 2002 стали делать плохие прошивки, такие же ошибки записи происходили и под вендой и не только в неро <...>
Скорее всего, проблема всё-таки в прошивках.
И тем не менее, так как ошибки проявляют себя весьма редко и не приводят к порче болванок (по крайней мере в моём случае), привод вполне себе достойный. По крайней мере свою стоимость он оправдывает сполна.

Кроме того, имеется весьма ценный материал: Расшифровка кодов ошибок growisofs за что огромное спасибо комментатору, пожелавшему остаться неизвестным.
Читать далее

Восстановление данных с помощью Knoppix Linux: руководство к действию



65 коммент.
Это краткое руководство призвано помочь восстановить данные с винчестера при невозможности штатного запуска операционной системы. Изложение подразумевает, что данные находятся на файловой системе FAT или NTFS (а также будет полезно обладателям других ФС) и содержат русские имена.


На всякий случай: чтобы добыть этот самый Кноппикс, можно написать мне и я его вышлю почтой. Либо скачать совершенно бесплатно и абсолютно законно с одного из зеркал

1 Подготовка

Для восстановления данных нужен Knoppix Linux версии 5.1 и выше. Для того, чтобы загрузить Knoppix Linux, надо выставить в BIOS загрузку с CD. Для этого при загрузке компьютера и до загрузки операционной системы отчаянно нажимаем на кнопки Esc, F1, F2, F8 и DEL. Иногда при старте компьютера достаточно посмотреть внимательно на экран: где-нибудь будет строчка типа "Hit DEL to enter setup". Если повезёт, должно показаться что-то вроде:



Рисунок 1: Так выглядит BIOS на ноутбуке ASUS M5200AE - но идея должна быть сходной.

Дальше описание может сильно варьироваться в зависимости от названия BIOS - ваша задача, не меняя по ходу действия неизвестные вам параметры, поменять очерёдность загрузки. Делается это в меню с названиями Boot, Advanced configuration или что-нибудь в этом роде. Выглядеть это может так:



Рисунок 2: Меняем очерёдность загрузки устройств: CD-ROM первый.

Ещё раз: задача - выставить в BIOS загрузку с CD. Положим, нужные настройки вы нашли, очерёдность загрузки поставили (загрузка с компакт-диска - на первом месте), теперь сохраняем изменения в BIOS. Для этого ищем меню с надписью Exit и/или Save Changes и сохраняем установки.

Не бойтесь куда-нибудь не туда нажать, ничего страшного произойти не должно. Для экстренного выхода всегда можно нажать на RESET и попробовать снова. Неправильными установками BIOS (особенно для современных компьютеров) поломать железо компьютера практически невозможно.
Всё, сохранили изменения в BIOS, вставляем диск с Кноппиксом в лоток CD-привода (если это ещё не сделано), и загружаемся.

2 Загрузка

При загрузке вы увидите какую-нибудь красивую картинку со словом KNOPPIX в главной роли - например такую:



Рисунок 3: Заставка загрузочного диска Knoppix.

Картинка может быть другой - не важно, даже если вы ничего делать не будете, через некоторое время пойдёт загрузка. Если у вас на жёстком диске есть файлы с русскими именами (а они почти наверняка есть), сразу жмём клавишу F3 и видим экран с возможными параметрами загрузки.


Рисунок 4: Загрузочные параметры диска Knoppix.

Читаем подсказки - нас интересует включение русского языка (по умолчанию идёт английский). Для включения отображения русского набираем:
knoppix lang=ru dma noswap

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



Рисунок 5: Загрузка Кноппикса: распознавание и настройка оборудования.

Ещё раз: не бойтесь, Кноппикс ничего вашему компьютеру не сделает, всё по умолчанию в режиме только-чтение. После настройки оборудования должен появиться графический режим: всё должно пройти в автоматически. Экран на некоторое время погаснет, помелькает, на нём появится на короткое время серая сеточка с крестиком, в процессе загрузки из колонок может доноситься музыка или голоса, а потом всё это заиграет яркими красками:



Рисунок 6: Загрузка Кноппикса: графический режим.


Если по каким-то причинам экран так и остался чёрным, диск в приводе не подаёт признаков жизни и ничего не меняется - идём в раздел 5.6 "Возможность запуска графической оболочки".


3 Кратко об интерфейсе

Интерфейс, который называется KDE, достаточно прост и очевиден. Смотрим на левую сторону монитора и видим иконки с маленьким прямоугольником (винчестер) с надписью под ним "Hard Disk [hda1]" или [sda1]. Таких иконок может быть не одна - это ваши разделы с бесценными данными. Сочетания hda1, hda2 ... или sda1, sda2 ... - обозначения разделов в
Linux, это нам скоро может потребоваться. Для того, чтобы русские символы имён файлов были видны в правильной кодировке, нужно указать это при монтировании. Монтирование - подключение логического раздела для работы с ним. После всех операций раздел следует размонтировать, чтобы данные на него записались из памяти - точно так же, как при работе с флешками.


4 Доступ к данным

Есть два варианта: данные на разделе с файловой системой FAT или NTFS. Дело в том, что кодировка символов имён файлов для этих файловых систем в ОС Windows различная. Это касается не только жёстких дисков, но и флешек, что в общем не проблема -
Linux прекрасно поддерживает все кодировки, только при обращении к разделам с FAT потребуется кое-что набрать в консольке1. Если вы не знаете, в какой файловой системе данные - просто нажмите на иконку диска (раздела с данными) и побродите по нему.
Если вместо кириллических символов увидите непонятные значки или знаки вопроса, значит файловая система FAT, если нормальную кириллицу - NTFS.

4.1 Если данные на NTFS

Здесь всё проще: параметры, указанные при загрузке, позволяют ничего не менять. Нажимаем на значок с диском и ищем свои данные.

4.2 Если данные на FAT

Это хотя бы раз будет именно так: если данные будут копироваться на флешку, скорее всего на флешке файловая система FAT. Ничего страшного в этом нет, просто при монтировании флешки или диска надо будет написать предварительно в консольке параметры кодировки (об этом ниже), чтобы файлы с кириллицей записались с нормальными именами.
Для этого, как говорилось в разделе 3, запоминаем или записываем название раздела, где наблюдаются знаки вопроса в именах файлов или другие искажения кириллицы. Названия вида hda1, hda2 ... или sda1, sda2 .... После этого на иконке с таким разделом жмём правой кнопкой мыши и выбираем Unmount. Если броузеры с этим диском были открыты, содержимое каталогов в них перестанет отображаться, так как раздел размонтирован.
После этого запускаем консольку, которая есть на панели задач внизу и называется, как правило, Konsole.



Рисунок 7: Запуск консольки для указания параметров монтирования.

После этого переключаемся на английский язык (правый нижний угол, нажимаем на значок языка до появления английского) и набираем в консольке:
sudo mount -t vfat /dev/XX /media/XX -o iocharset=koi8-r,codepage=866

где XX заменяем на название в квадратных скобках под иконкой диска. Например, в моём случае это hda1, поэтому команда выглядит так:
sudo mount -t vfat /dev/hda1 /media/hda1 -o iocharset=koi8-r,codepage= 866

То же самое будет и для флешек - там такая же кодировка. Всё, снова нажимаем на значок диска и русские имена файлов должны читаться нормально.

4.3 Если данные на Ext2,3,4 / ReiserFS / XFS / JFS

Здесь всё проще: кириллические имена файлов хранятся либо в KOI8-R, либо (что чаще) в UTF8. Кноппикс поддерживает все линуксовые файловые системы прекрасно.

4.4 Где искать данные?

В альтернативных системах Windows у пользователей есть привычка раскидывать свои данные по дискам и каталогам - так что монтируйте все доступные разделы и ориентируйтесь по именам каталогов. Если ваши документы лежат на десктопе, ищем их тут:
Windows 2000: Documents and Settings/your username/Desktop/
Windows XP: Documents and Settings/Owner/Desktop/
Windows 2000: Documents and Settings/Administrator/Desktop/
Windows 95, 98, ME: windows/Desktop/
С пользователями *nix-систем всё, как всегда, гораздо проще: данные лежат в домашнем каталоге пользователя вместе со всеми его настройками:
GNU/Linux: /home/your username/

5 Спасение данных

Теперь снова появляется несколько вариантов в зависимости от возможностей вашего компьютера: копирование данных на флешку, CD/DVD-диск, по сети через расшаренные каталоги или на дискеты.

5.1 Копирование данных на флешку

Вставляем флешку в USB-порт и смотрим на левую часть экрана - там должна появиться иконка флешки. Под ней будет подпись в квадратных скобках типа [sdXN], где X - буква, N - номер раздела на флешке. Чтобы русские имена файлов на флешке отображались нормально, согласно разделу 4.2 пишем в консольке:
sudo mount -t vfat /dev/sdXN /media/sdXN -o iocharset=koi8-r,codepage=cp866

заменяя теперь sdXN на надпись в квадратных скобках под флешкой.
Жмём на иконку флешки правой кнопкой, выбираем "Change Read/Write mode", отвечаем утвердительно. Теперь открываем флешку, нажав на иконку, и можно копировать свои файлы.
После того, как вы закончили работать с флешкой, её нужно размонтировать. Для этого закрываем все программы, которые с флешкой работали и щёлкаем правой кнопкой мыши по значку флешки - выбираем пункт Unmount.



Рисунок 8: Размонтирование раздела - обязательно дождитесь, пока данные будут записаны на диск или флешку!

Обязательно дождитесь, пока данные запишутся на флешку: нельзя выдирать флешку сразу после того, как последний файл скопировался.

5.2 Копирование данных на другой раздел или диск

Этот процесс ничем не отличается от копирования данных на флешку: подключаем раздел жёсткого диска, на который требуется перебрасывать данные, и нажимаем на значок диска. Дальше, думаю, объяснять особо не надо. О том, как включить нормальное отображение кириллицы, говорилось в разделе 5.1.
Есть один тонкий момент: как говорилось в самом начале, Кноппикс монтирует разделы и диски по умолчанию в режим только-чтение. Так что перед тем, как писать данные с раздела на раздел, следует сначала примонтировать тот раздел, на который будем писать (то есть щёлкнуть по значку диска), затем щёлкнуть правой кнопкой мыши по значку того раздела, на который будем писать и выбрать пункт "Change read/write mode". Изменять режим чтения/записи можно только на примонтированном разделе - если его не монтировать, будет выдано соответствующее предупреждение.


Изменение режима чтения-записи раздела диска или флешки.

Как и прежде, следует размонтировать раздел после того, как данные на него записаны и работать с ним больше не требуется. Для этого щёлкаем правой кнопкой мыши по значку раздела - выбираем пункт Unmount.

5.3 Копирование данных на компакт-диск

Этой возможностью могут воспользоваться те, чьи машины имеют либо более 1Гб оперативной памяти, либо второй привод для компакт-дисков. При старте Кноппикса, когда появляется заставка (как на рис. 1), нажимаем F3 и пишем:
knoppix toram lang=ru

Диск с Кноппиксом в память загружается минут 3-5. Зато потом диск можно вытащить и работать только из памяти (что намного быстрее). После этого записываются данные на диски очень просто. Согласно разделу 4, монтируем ваши разделы с бесценными данными, после чего запускаем программу по записи дисков: идём в K - Multimedia - K3b. Запустится что-то вроде


Рисунок 9: Копирование данных на CD/DVD диск посредством программы k3b.

После этого добавляем данные в проект - в окне программы k3b слева идём в /root/media/диски_с_данными и наполняем новый образ данными, перетаскивая оттуда данные мышью. Можно записывать на CD-R/RW или DVD ±R/RW носители - словом, на любые диски. Всё происходит достаточно прозрачно, понятно и с графическим интерфейсом. Добавляем файлы в проект и жмём Записать в нижнем окошке, где формировался образ будущего диска. После этого появится окно с настройками параметров прожига (в большинстве которых будет стоять "Автоматически") и тут тоже жмём на Записать.

5.4 Копирование данных по сети на другой компьютер

Это уже не такая простая процедура, как предыдущие - для этого надо хотя бы отдалённо представлять себе, что такое IP-адрес и где его узнать. Для копирования данных по сети, кроме того, требуется второй компьютер (назовём его резервный), в котором есть сетевая карта и сетевой провод с двумя разъёмами RJ45 на обеих концах, обжатых под "cross-over"2.

5.4.1 Настройка сетевого соединения

В левом нижнем углу видим кнопку К и жмём:
K - KNOPPIX - Network/Internet - Netcard configuration.
Вас спросят, стоит ли пробовать получить сетевой адрес автоматически. Если вы твёрдо не уверены в том, что знаете сетевые настройки другой машины - попробуйте. После этого можно попробовать перейти к разделу 5.4.2 и попытаться что-нибудь скопировать. Если не удаётся и вы не видите расшаренных каталогов - возвращайтесь сюда и читайте далее.
Если отказаться от настройки по DHCP, придётся вводить адреса вручную - это облегчается автоматическим скриптом. Итак, будет появляться ряд диалоговых окон, в которых вас попросят ввести: IP-адрес (IP-address), маску подсети (netmask), широковещательный адрес (broadcast), адрес шлюза (gateway) и адрес сервера имён (nameserver).



Рисунок 10: Настройка сетевого соединения.

Предположим, что на резервной машине сетевые адреса вида 192.168.0.* - вместо звёздочки любая цифра. Важно, чтобы в одной сети не было двух одинаковых IP-адресов. Итак, пишем:
на вопрос Ip-адрес: правим на 192.168.0.49
на вопрос netmask: оставляем 255.255.255.0
на вопрос broadcast: оставляем 192.168.0.255
на вопрос nameserver: пишем адрес второй машины.
Всё готово, теперь можно использовать расшаренные ресурсы.

5.4.2 Копирование данных через расшаренные каталоги

Здесь могут возникнуть проблемы с русскими именами файлов3. Запускаем Konqueror, щёлкаем Network folders и заходим в свои расшаренные каталоги на другой машине, щёлкая по Samba Shares.



Рисунок 11: Копирование данных через сетевые каталоги.

После этого в графической оболочке копируем свои данные на разделах, примонтированные согласно разделу 5.1.

5.5 Копирование данных на дискеты

Несмотря на то, что дискеты продолжают стремительно вымирать и многие новые компьютеры не комплектуются дисководами, они ещё продолжают использоваться в качестве носителей информации. Если дисковод в системе присутствует и правильно подключён, то воспользоваться им можно, нажав на значок в левом верхнем углу десктопа. Работа с дискетами также не отличается от флешек: если нужно записывать и читать данные с русскими именами, согласно разделу 4.2 пишем в консольке:
sudo mount -t vfat /dev/fd0 /media/fd0 -o iocharset=koi8-r,codepage=cp866

Если дисководов в системе два, то вместо fd0 можно попробовать написать fd1. И далее, через графический интерфейс, копируем данные, как описывалось в разделе 5.1.

5.6 Возможность запуска графической оболочки

В графическом сервере новых версий Knoppix Linux сбрасывается поддержка очень старых графических карт - так что ваш экран, вместо графического великолепия, может так и остаться чёрным. Это можно попытаться исправить.
Есть несколько путей. Самый простой - разыскать старую версию Кноппикса (например, 4.0.2). Там старый графический сервер XFree86, который должен поддерживать старые карты. Но если Кноппикс только свежий, а графического режима хочется (хотя можно и без него обойтись), делаем так: нажимаем CTRL+ALT+DEL (ваша любимая комбинация клавиш) и при новой загрузке, после появления графической заставки, пишем:
knoppix lang=ru 2

Всё будет то же самое - только после всего вас поприветствует консоль:
root#root1:_

Не пугаемся. Пишем mc, смотрим на перечень каталогов. Нам нужен каталог /etc
Наводим выделение на него клавишами стрелок на клавиатуре и жмём Ентер. Это очень похоже на Нортон Командер, если кто его ещё помнит. Дальше, передвигаясь таким же методом, ищем каталог X11, наводим и снова жмём Ентер. В этой директории ищем файл xorg.conf. Открываем его на редактирование кнопкой F4. Ищем там раздел "Graphics device section", чуть ниже ищем и находим Section "Device". Отлично, там совсем рядышком должно стоять Driver. После этого слова в кавычках - название драйвера, и его надо изменить на vesa. То есть после всего должно появиться:
Device "vesa"

Всё, нажимаем F2, выходим кнопкой F10, пишем startx и загружаемся в графическую оболочку.


6
Разметка и восстановление партиций

Для того, чтобы переразметить или переместить разделы жёсткого диска, вовсе не нужно воровать варёз (часто сомнительного качества) - есть замечательная графическая утилита gparted. Для того, чтобы ей воспользоваться, открываем консольку (см.рис. ), пишем:
su
жмём ентер и далее пишем:
gparted
Запустится программа gpated в графическом режиме:


Графический режим программы gparted.


Урезаем диск до нужного размера (правая кнопка мыши - Move/Change size). Главное - не забываем нажать на кнопку Apply для того, чтобы изменения вошли в силу, и дождаться того, пока все операции выполнятся.


6.1
Восстановление партиций

Для этих целей в Knoppix Linux имеется программа testdisk, открываем консольку и пишем:
testdisk

Программа работает в интерактивном режиме, выводя все партиции. Интерфейс у testdisk прост - даже тогда, когда вы немного волнуетесь по поводу сохранности ваших данных. Указываем на устройство с повреждённой партицией. Программа напишет, что повреждение имеет место быть и предложит проанализировать таблицу разделов.


Анализ таблицы разделов при помощи testdisk.


Естественно, соглашаемся. Работать testdisk может долго, тем дольше, чем больше объём винчестера: будет произведён поиск резервных копий информации о структуре данных. Если вам повезёт, то копии будут найдены и будет предложено записать на диск изменения. Записываем. После этого предлагается перезагрузиться, чтобы изменения
вступили в силу.


6.2
Копирование образа диска или партиции

Чтобы получить бинарный образ диска или партиции (байт-в-байт), есть на Кноппиксе утилита dd_rescue. Она позволяет получать бинарные образы для последующей работы (восстановление данных) или для резервного копирования. Так как образ диска будет, скорее всего, достаточно большим, сохранять его можно на флешку (если умещается), на другую партицию / другой винчестер или по сети через расшаренные каталоги.
Теперь определяемся, что будем копировать: весь диск или только одну партицию. Как говорилось ранее, в графическом интерфейсе можно выяснить название вашего винчестера (например, hda - первый IDE-винчестер или sda - первый SATA/SCSI винчестер) и партиции (hdaХ и sdaX соответственно) в линуксовых обозначениях. После этого определяемся куда копировать - на другой винчестер, например.

Определившись, пишем, например:

dd_rescue /dev/sdf /mnt/hdb/flash.img

То есть: спасти данные с SATA-диска (или флешки) и перекопировать образ в корневой каталог второго винчестера на IDE. После нажатия на ентер в консольке побегут цифры, обозначающие прогресс копирования и количество найденных ошибок (если они есть).

Будьте осторожны! В качестве выходного устройства следует указывать каталог, а не устройство (только если вы знаете, что делаете). При этом в указанном выходном каталоге появится файл (в данном примере flash.img), который содержит всё то, что есть на вашем винчестере.

7 Восстановление данных с повреждённых носителей

Для восстановления данных с повреждённых носителей (сбойные винчестеры /
флешки или поцарапанные оптические диски) есть специальные утилиты судебного анализа. На DVD-версии Кноппикса есть утилита foremost, являющаяся одной из самых мощных программ подобного класса.
Для задания типа восстанавливаемых файлов служит ключ -t, а если заранее не известно, какие типы файлов следует восстанавливать, просто напишите -t all.
Кроме того, следует задать каталог, куда эти файлы будут складываться. Например, на флешку (как определить путь к флешке - см.выше). Например, для спасения всех вордовых файлов требуется набрать в консольке:
foremost -t doc -o /mnt/sdb1/my -i /dev/sd

После чего идём в указанный подкаталог и наблюдаем радостную картину - файлик обнаружился. А вот и отчёт программы:

    Foremost version 1.3 by Jesse Kornblum, Kris Kendall, and Nick Mikus
Audit File

Foremost started at Sat Dec 16 21:48:07 2006
Invocation: foremost -t doc -o /opt/foremost-1.3/output/ -i /dev/sdf
Output directory: /mnt/sdb1/my
------------------------------------------------------------------
File: /dev/sdf
Start: Sat Dec 16 21:48:07 2006
Length: 15 MB (16121856 bytes)

Num Name (bs=512) Size File Offset Comment

0: 129.jpg 155 KB 66048
Finish: Sat Dec 16 21:48:12 2006

1 FILES EXTRACTED

doc:= 1
------------------------------------------------------------------

Имена не сохраняются, но содержимое в порядке. Точно так же можно восстанавливать файлы изображений, фильмы, архивы и многие другие. Вместо устройства может выступать бинарный образ устройства (что для юникс-систем одно и то же). Например, образ, сделанный dd_rescue, можно прочесать на наличие необходимых файлов.



8 Временная работа с документами

Чаще всего требуется не столько восстановление системы, а срочная
работа с документами в более или менее привычной среде. Кноппикс
прекрасно справляется и с этой работой: в его состав (особенно в
DVD-версии) входит огромное количество прикладных программ. Они
позволяют нормально работать с практически любыми документами и
устройствами.

В составе Кноппикса есть:
  • офисный пакет OpenOffice.org, способный читать документы Микрософт Офиса;

  • графический редактор GIMP, способный читать документы Фотошопа;

  • простой текстовый редактор Kate и KWrite (и множество других) для работы с простым не форматированным текстом;

  • оболочка Kile для системы научных документов;

  • аудиоплееры и звуковые редакторы - чтобы в процессе не было скучно;

  • возможность сканирования изображений и печати на принтеры, в том числе удалённые (по сети);

  • и многое, многое другое.


8.1 Работа с офисными документами

Если нужно редактировать офисные документы - соответственно: кнопка К -
Офис - OpenOffice.org Writer (для вордовых файлов) / Calc (для экселевских) / Impress (для презентаций).

Работа с офисными документами в комментариях не нуждается, но если нужно их распечатать на локальный принтер - это делается средствами подсистемы CUPS, которая также присутствует в Knoppix Linux. CUPS поддерживает большинство принтеров, и
настройка производится в веб-форме.

Чтобы добавить подключённый к компьютеру принтер, сначала нужно активировать CUPS на Кноппиксе. Открываем консольку, пишем:

su

далее пишем:

cupsenable


и после этого:

cupsd


Всё, теперь нужно добавить принтер. Для этого запускаем Konqueror, который находится на нижней панели, и в строке адреса набираем:

localhost:631

После этого, следуя инструкциям на экране, добавить принтер. Жмём Add Printer, даём ему какое-нибудь имя, далее в списке ищем свой принтер (который подключён к компьютеру), выбираем его. Далее попросят выбрать драйвер для принтера - скорее всего, он уже будет подсвечен.


Добавление принтера через веб-форму CUPS

Выбираем, жмём Далее. Если всё пройдёт успешно, вас поздравят с этим подвигом и предложат настроить параметры. Если параметры настраивать не надо - закрываем броузер и запускаем OpenOffice.
Дальше всё просто: открываем нужный документ и жмём File - Print. В списке принтеров
должен быть виден принтер, который вы только что подключили и настроили, а если настроена сеть - то и расшаренные принтеры тоже.


Печать на принтер в OpenOffice.org с Кноппикса






8.2
Работа со сканерами и графическими файлами

Используя "живой" дистрибутив Linux, можно полноценно работать с
компьютером - в том числе используя сканер или редактируя изображения.
Для этого на Кноппиксе есть графический редактор GIMP и подсистема
работы со сканерами SANE.

Если требуется сканировать и редактировать изображение, запускаем K -
Графика - GIMP. Далее идём в меню Файл - Захватить - XSANE - Device
dialog. Сканер к тому моменту, естественно, уже должен быть подключён.
Появится несколько диалоговых окон, в которых вы выбираете сканер (если
он обнаружится), и можно сканировать:


Сканирование при помощи SANE и графического редактора GIMP



У системы XSANE очень простой и удобный диалог сканирования. Отсканированное изображение можно редактировать в GIMP, применять к нему фильтры повышения контрастности, устранения шумов и прочее.

8.3 Работа с другими типами документов и мультимедиа возможности Кноппикс

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


Слушаем любимую музыку с помощью audacious



Перед запуском плеера неплохо убедиться, что звуковой канал не заглушен. Щёлкаем два раза по микшеру (иконка динамика в правом нижнем углу) и включаем все каналы. После чего идём в K - Мультимедиа и выбираем какой-нибудь плеер, например audacious или
amaroK. Добавляя музыкальные файлы с флешки или другого раздела, создаём непринуждённую атмосферу. Если она так понравится, что захочется поставить её на винчестер вместо вечно падающей и ненадёжной операционной системы - это легко сделать. Но это уже другая история...


9 Окончание процесса восстановления

После того, как вы успешно (очень надеюсь) скопируете ваши данные, нужно выгрузить Кноппикс. Для этого, не извлекая флешки и не выдёргивая провода из компьютера, нажимаем Log Out... в меню KDE.
После этого графический режим закроется и по экрану снова побегут разноцветные строчки. Обязательно дождитесь окончания процесса: должна появиться надпись "Please remove CD" и / или "Knoppix halted". При этом диск должен выехать из привода.

Сноски:

1Попутно отвыкаем от мысли, что консоль - убогий пережиток старого: через меню можно сделать только то, что указано в меню, в консоли можно сделать всё, что угодно
2Если чувствуете, что для вас это уж слишком - выбирайте другие методы из перечисленных выше.
3Русские имена передаются кракозяблами, а заставлять править конфиг самбы будет уже через край.
Читать далее

Набор математических формул в OpenOffice.org



35 коммент.
Каждый студент технического ВУЗа с ужасом ждёт момента, когда нужно набирать в текстовом процессоре какой-нибудь крупный научный документ: пояснительную записку к дипломному проекту, отчёт о практике или что-нибудь с большим количеством формул, ссылок и библиографии. И если со ссылками, библиографией и оглавлением можно как-то совладать, то формулы – настоящее бедствие.

Введение
Для начала рассмотрим ситуацию в альтернативном офисном пакете. Хотя слова «научная документация» и «офисный пакет» несколько контрастируют, это, похоже, мало кого смущает. И тем не менее: формулы набираются в «визуальном» режиме, с сильно ограниченным набором возможностей, при этом формулы имеют свойство «прыгать» по всему документу. В типичной пояснительной записке к дипломному проекту формул не меньше нескольких десятков – но все считают, что подобные мучения являются кармой и проклятием. Пока не увидят OpenOffice.org...

OpenOffice.org представляет совершенно иной подход к набору формул: для этих целей имеется LaTeX-подобный язык разметки научных документов, который не отменяет визуальной вставки математических символов. Сначала будет нелегко привыкнуть к такому стилю набора формул, но потом, по мере понимания всего удобства языков разметки, Equation Editor воспринимается как средневековая камера пыток.


Думаем иначе при наборе формул
На самом деле, способ набора формул при помощи языка разметки, совмещённого с подсказками по тэгам, позволяет достичь нужного результата быстрее и с большим уровнем контроля. Это требует некоторого привыкания, однако в дальнейшем сильно экономит время и нервы.

Например, когда мы открываем броузер и загружаем страницу, она отображается по мере загрузки – HTML так же является языком разметки. Это значит, что оформление передаётся с помощью достаточно простых тэгов или меток: например <b> делает текст полужирным, <i>- курсивным и так далее.

Эта же самая идея лежит в основе языка разметки математических текстов – LaTeX: пользователь создаёт логическую структуру документа и при помощи специальных тэгов указывает системе набора, чтобы определённый участок текста был заголовком, имел полужирное начертание или любой другой вид оформления.

Нет ничего удивительного, что в OpenOffice.org было принято на вооружение именно этот метод оформления – тем более, что сам по себе он уже отточен и отшлифован в LaTeX годами. Например, формула Фурье-преобразования:


на самом деле выглядит как последовательность управляющих меток и собственно данных:

F(u,v) = iint_{-infinity}^{+infinity} {f(x,y) exp(2 %pi i (ux + vy)) dx dy }

Читаем: функция F(u,v) есть двойной интеграл с бесконечными пределами от f(x,y) экспонеты 2 пи i ux + vy по dx и dy

Всё довольно просто: перед названием переменной ставится процент, названия самих переменных и меток математических символов весьма логичны, а там, где нужно разделить действия меток – ставятся фигурные скобки. Кроме того, в процессе набора формул всегда можно обратиться к визуальному помощнику и выбрать метки математических символов оттуда:



После сохранения в формат альтернативного офисного пакета формулы так же будут читаемы – и наоборот.

Через некоторое время набора математических символов в OpenOffice.org вы постепенно привыкните к такому способу и, скорее всего, запомните нехитрые обозначения математических символов. Это особенно оценят пользователи свободных операционных систем: набор формул в OpenOffice.org и LaTeXе есть ни что иное, как программирование на простом скриптовом языке. На мой взгляд, это важный момент, так как он позволяет опереться на что-то знакомое.

И не стоит бояться, что таких меток нужно учить слишком много и вы их не запомните: наоборот, можно запутаться в дебрях Equation Editor. Даже для набора сложных физико-математических статей потребуется помнить не более дюжины основных меток – и вы легко и просто сможете набирать статьи и работы.

Схема набора формул в OpenOffice.org может стать шагом к LaTeX: там вы встретите всё тоже самое – скриптовой язык и конструирование с его помощью формул. Навыки, приобретённые в OpenOffice.org, сослужат добрую службу и в LaTeX, поскольку синтаксис отличается не сильно. Например:

Элемент формулы

OpenOffice.org

LaTeX

Интеграл

int <>

\int{}

Произведение

prod <>

\prod{}

Сумма

sum <>

\sum{}

Переменная

%alpha %omega

\alpha \omega

Нижний индекс

_{}

_{}

Верхний индекс

^{}

^{}

Дробь

<числитель> over <знаменатель>

\frac{числитель}{знаменатель}


Как видите, переход от OpenOffice.org к LaTeX при наборе научных документов сильно облегчён: общую идею вы поймёте, и команды останутся практически теми же. Разумеется, LaTeX предоставляет много большие возможности для набора научных документов – но это уже другая история.
Читать далее

Если устройство в Linux работать не хочет: где скачать драйвера для линукс?



18 коммент.
Если устройство в Linux работать не хочет, то не надо пытаться скачать где-то драйвера для Linux и сразу кричать "Linux - отстой, Windows рулит", потому как часто решение - в шаге от вас. Немного терпения, и всё скорее всего получится.

Устройство в Линукс не работает - что делать?
Для того, чтобы попробовать решить проблему, требуется:

1. Точно узнать название устройства и подробности его работы. Лучший способ - посмотреть логи, большинство которых находится в каталоге /var/log (они доступны для просмотра только пользователю root)
  • Если устройство подключается к USB - пишем в консоли lsusb > lsusb.txt
  • Если это встроенное устройство или подключено к ISA/PCI, пишем lspci > lspci.txt
  • Так же для обращения в поиск и форум потребуется вывод команды dmesg
  • Если проблема с видеокартой или вообще видеоподсистемой - сохраняйте /var/log/X.org.conf или /var/log/XFree86.conf (у кого он остался)

2. Учитесь читать и анализировать логи - в них часто не только ответ на ваш вопрос, но и путь к его решению. Это приходит с опытом, но надо же с чего-то начинать...
Пример: пользователь жалуется, что в ноутбуке при подключении USB-мыши Линукс зависает. Это в общем не характерное для Линукс поведение, тем более в случае USB-шины, может быть вызвано:
а) кривым драйвером (что редко) или
б) кривым оборудованием (что чаще).

Опытный факт: если в оборудование работает неправильно, ядро об этом будет сыпать сообщениями типа Warning и FATAL часто, пока проблема не решится.

Смотрим логи dmesg: одна из строк выглядит так

PCI: BIOS Bug: MCFG area at e0000000 is not E820-reserved
Кто владеет английским на уровне школы, тот может догадаться, что в BIOS какая-то ошибка. Смотрим дальше:

PCI: Bus #03 (-#06) is hidden behind transparent bridge #02 (-#03) (try 'pci=assign-busses')
Please report the result to linux-kernel to fix this permanently
Так и есть: а вот и возможное решение нашей проблемы! Об этой проблеме ядро "скажет" ещё не раз:

PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report
PCI: Cannot allocate resource region 3 of device 0000:00:00.0
Какой-то регион 3, какие-то устройства... не сразу можно понять. Интересно, где это себя проявляет?

ACPI: PCI Interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 17
ehci_hcd 0000:00:13.2: EHCI Host Controller
ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1
Это USB-устройства - всё сходится. Зависание Линукса при втыкании USB-мыши происходит благодаря кривизне рук программистов, написавших BIOS. Теперь понятно не только кто в этом виноват и куда копать, но и один из возможных методов решения.

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

3. Локализуем проблему. Что именно не работает?
  • Если это принтер, за это отвечает подсистема CUPS, поэтому официальный сайт в помощь: проверьте, поддерживается ли ваш принтер и если да, то в какой степени. Попробуйте установить более свежую версию CUPS, походите по форумам - желательно с логами, версией ядра и подробным описанием проблемы.
  • Если это сканер - наш рулевой это подсистема SANE и гугление по словам sane linux _модель_сканера_.
  • Работу звуковых карт обеспечивает проект ALSA, где можно так же узнать о поддержке оборудования. Для этого имеет смысл так же попробовать установить или собрать самому более свежее ядро Линукс (в ядре содержится большое количество драйверов).
  • За сенсоры и термодатчики на материнских платах отвечает проект lm85, который состоит из драйверов ядра и утилит работы с ними.
  • Источники бесперебойного питания (UPS) поддерживаются пакетом apcups.

Попытаться устранить проблему при помощи гугления по методу _имя_проекта_ linux _название устройства_. Очень и очень часто решение есть и ждёт своего часа. Если гугление и прочие методы не принесли желаемого результата - остаётся подождать, пока проблему решат и / или добавят драйвер устройства в ядро или программы связанных с устройством проектов. В конце концов, двойную загрузку (dual boot) с другими операционными системами никто не отменял.

Ссылки и благодарности

Пост был вдохновлён комментарием _Yuriy_ на opennet, в котором говорилось, что "написать обзор может каждый дурак, а вот что делать, когда устройство не пашет?" Насчёт первой части утверждения можно и поспорить, а во второй части есть сермяжная правда - надеюсь, кому-нибудь этот пост пригодится.
Читать далее

Лог-файлы в Linux: зачем они нужны и как их достать



10 коммент.
Так как это постоянный вопрос новых пользователей на Линукс-форумах, им посвящается этот пост.

Новичку на форуме Линукс.
// читается скороговоркой//

Помогите телепатам!
Сообщите про железо,
Расскажите о системе,
Не скрывая ничего.

В этом деле благородном
Да поможет вам дэмэседж*
Вместе с эльэсписиаем**
Не забудьте про унэйм***

Не скрывайте ваши логи,
И конфиги, кстати, тоже,
А запостите на форум
Со скриншотами на пару.

И тогда уж стопудово
Аксакалы юниксвея
Вам помогут и подскажут,
Как систему починить.

----------------------
* имеется в виду dmesg
** вывод команды lspci
*** команда uname -a



Зачем нужны лог-файлы и почему они важны

Нормальные [?] операционные системы ведут подробный протокол собственных действий, записывая всё происходящее в текстовые файлы, log-файлы, лог-файлы или логи. Это обычные текстовые файлы, которые можно прочесть любым текстовым редактором (или средствами самой операционной системы), хотя многие логи доступны на чтение только пользователю root.
Главное: по логам можно восстановить почти полную картину неполадки, попутно выяснив особенности вашего железа и степени его поддержки.

Вот как выглядят лог-файлы в Linux:
usbcore: registered new interface driver hiddev
input: Logitech USB Receiver as /class/input/input1
input: USB HID v1.11 Mouse [Logitech USB Receiver] on usb-0000:00:1d.0-1
input: Logitech USB Receiver as /class/input/input2
input,hiddev96: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:1d.0-1
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
usb 1-5: new high speed USB device using ehci_hcd and address 3
usb 1-5: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
scsi 0:0:0:0: Direct-Access ChipsBnk SD/MMCReader 4081 PQ: 0 ANSI: 2
sd 0:0:0:0: [sda] 499712 512-byte hardware sectors (256 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 0b 00 00 08
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] 499712 512-byte hardware sectors (256 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 0b 00 00 08
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI removable disk
sd 0:0:0:0: Attached scsi generic sg0 type 0
usb-storage: device scan complete
Из этого куска лога видно, что произошло два события:
  • подключилась мышь (выделено фиолетовым): input: USB HID v1.11 Mouse [Logitech USB Receiver] on usb-0000:00:1d.0-1 и скорее всего эта мышь беспроводная (об этом говорит USB Receiver)
  • подключили USB-накопитель (выделено зелёным): usb 1-5: new high speed USB device using ehci_hcd and address 3, который опознан как USB-диск scsi0 : SCSI emulation for USB Mass Storage devices ёмкостью 256Мб sd 0:0:0:0: [sda] 499712 512-byte hardware sectors (256 MB) и содержащий две партиции (два раздела с данными) sda: sda1 sda2.
Как видите, из лог-файлов можно выудить огромное количество подробностей о работе аппаратуры. Другие лог-файлы могут содержать сообщения об ошибках и часто рецепты, что можно попробовать для их исправления.

Где хранятся лог-файлы в Linux

Все лог-файлы должны лежать в одном каталоге, который находится тут:
/var/log/
В общем, довольно логично. Но заходить туда не обязательно: вспоминаем, что консоль - наш друг и мощное оружие в умелых руках. Для того, чтобы быстро получить логи и прикрепить их к посланию на форум / опубликованию / пересылке по почте делаем так:
  1. Из консоли:
    1. в графическом режиме - в меню программ она может называться xterm, terminal, konsole, bash.
    2. в консольном режиме - если видите перед собой чёрный экран со словами типа penta4@penta4rce:~$ ничего пока делать не надо - вы и так в консоли :-)
  2. Далее пишем:
    1. dmesg > dmesg.txt
    2. lspci -v > lspci.txt
    3. cp /var/log/X.org.0.log ~/
  3. Далее видим в своём домашнем каталоге файлы dmesg.txt и lspci.txt и X.org.0.log
Вот этих файлов от вас так настойчиво добиваются на форумах. Наличие логов, вместе с подробным описанием проблемы и разумным количеством скриншотов способны радикально быстрее получить грамотный и исчерпывающий ответ (а ещё чаще - прямую ссылку на решение).

Для более подробного изучения неполадки и выяснения особенностей работы аппаратуры можно использовать приёмы работы, замечательно описанные здесь.
Читать далее