Использование USB Flash под Linux

Устройства хранения данных по технологии Flash все настойчивее «стучат» в
дверь, пытаясь побыстрее проникнуть в нашу компьютерную жизнь. Народ быстренько окрестил
эти устройства «флэшками» и начал интенсивно приобретать — все-таки очень удобно. Действительно,
использовать их под Windows 2000 и XP просто — поддержка встроена в саму ОС.

Но представим, что вы — продвинутый админ, пользуетесь только Linux,
а тут пришел к вам знакомый с серебристым флэш-брелком на груди: «Эй! Я тут увальную музычку
на флэшке приволок. Послушаем?».

Как быть дальше? Понимает ли Linux такое устройство? Сможете ли вы
не ударить перед «модным юзером» лицом в грязь? На самом деле все просто. Надо лишь уметь
пользоваться утилитой mount и знать, что flash рассматривается этой ОС (Linux) как SCSI-диск.

Итак, включаем «флэшку» в USB-порт. Если у вас RH 8-9, можно воспользоваться
программой поиска устройств — hwbrowser. Она просканирует системную шину и найдет все
подключенные к ней устройства. Обнаружит, конечно же, и флэш-карту.

Рис. 1. Диспетчер устройств обнаружил USB Flash

Видим (рис. 1), что в системе появился диск /dev/sda1 размером
62 Mб (вообще объем флэш-карты составляет 64 Mб, но в результате форматирования
получилось два пустых места). Файловая система, автоматически распознанная этой ОС,- fat16.

Все необходимые данные получены — теперь можно приступить к монтированию
устройства в файловую систему. Делается это, как обычно, утилитой mount. А последовательность
действий такова. Во-первых, создаем директорию usbflash в папке /mnt (вообще, не обязательно
именно в ней — просто так принято). И выполняем команду:

#mount /dev/sda1 /mnt/usbflash

Заходим в эту директорию и читаем:

#ls /mnt/usbflash
>alcotable.doc Driver pyngvin.gif retal.rar wb2000s.zip
>diskasis.zip m-35-060.jpg!readme.txt??????.rtf

Что имеем? Устройства смонтировано. Но что это за странный файл «???????.rtf»? Дело,
конечно, в различных кодовых страницах. Ведь файлы писались под Windows, в кодировке cp866,-
а читаем мы их в koi8-r (как правило). Попробуем скорректировать проблему. Использование
опций iocharacterset и codepage должно исправить ошибку:

#umount /mnt/usbflash
#mount -t vfat /dev/sda1 /mnt/usbflash -o
iovharset=koi8-r,codepage=866
#ls /mnt/usbflash
>alcotable.doc Driver pyngvin.gif retal.rar wb2000s.zip
>diskasis.zip m-35-060.jpg!readme.txt
Гарантийное письмо.rtf

Если вы планируете часто подключать flash-карты к компьютеру, имеет смысл сделать запись
в системном файле /etc/fstab. Вот такую:

/dev/sda1 /mnt/usbflash vfat iocharset=koi8-r,
codepage=866,user
Рис. 2. Теперь видны русские названия файлов

И не забудьте, что fstab должен иметь одну пустую строку в конце (то есть завершаться
символом новой строки -
). Формат этого файла прост. Каждая строка описывает одну точку
монтирования. Поля в ней разделяются пробелом. Первое указывает на блочное устройство
(/dev/sda1), второе — на точку монтирования (/mnt/usbflash), третье — это тип файловой
системы (в нашем случае — vfat); далее следуют опции. С двумя вы знакомы, опция же user
означает, что выполнять команду mount /mnt/usbflash может любой пользователь, а не только
root.