2004 г.
Использование USB Flash под Linux
Николай Ткаченко, Издательский
Дом "КОМИЗДАТ"
Устройства хранения данных по технологии Flash все настойчивее "стучат" в
дверь, пытаясь побыстрее проникнуть в нашу компьютерную жизнь. Народ быстренько окрестил
эти устройства "флэшками" и начал интенсивно приобретать - все-таки очень удобно. Действительно,
использовать их под Windows 2000 и XP просто - поддержка встроена в саму ОС.
Но представим, что вы - продвинутый админ, пользуетесь только Linux,
а тут пришел к вам знакомый с серебристым флэш-брелком на груди: "Эй! Я тут увальную музычку
на флэшке приволок. Послушаем?".
Как быть дальше? Понимает ли Linux такое устройство? Сможете ли вы
не ударить перед "модным юзером" лицом в грязь? На самом деле все просто. Надо лишь уметь
пользоваться утилитой mount и знать, что flash рассматривается этой ОС (Linux) как SCSI-диск.
Итак, включаем "флэшку" в USB-порт. Если у вас RH 8-9, можно воспользоваться
программой поиска устройств - hwbrowser. Она просканирует системную шину и найдет все
подключенные к ней устройства. Обнаружит, конечно же, и флэш-карту.
Видим (рис. 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
И не забудьте, что fstab должен иметь одну пустую строку в конце (то есть завершаться
символом новой строки - \n). Формат этого файла прост. Каждая строка описывает одну точку
монтирования. Поля в ней разделяются пробелом. Первое указывает на блочное устройство
(/dev/sda1), второе - на точку монтирования (/mnt/usbflash), третье - это тип файловой
системы (в нашем случае - vfat); далее следуют опции. С двумя вы знакомы, опция же user
означает, что выполнять команду mount /mnt/usbflash может любой пользователь, а не только
root.