Linux - the Best!

Your Explorer by Linux links...

Денис Колисниченко

Linux Советы

http://www.dkws.org.ua/

Совет №11. Linux и Flash-диск

Flash-диски становятся все более популярными. Это есть вполне логичное объяснение: Flash-диски очень удобны - вы можете купить себе Flash-диск в виде брелока, Flash может быть встроен в обычные часы или в цифровой фотоаппарат. Вам не нужно больше носить с собой громоздкие компакт-диски - вы можете купить Flash-диск объемом 1 Гб - места будет даже больше, чем на компакт-диске - с работы не только документы можно прихватить, но свежескачанный фильм. К тому же цены на Flash-диски постоянно падают и сейчас они вполне доступны каждому пользователю. В Windows 2000/XP работать с диском очень просто: достаточно подключить его к USB, а там Windows сама разберется, что с ним делать. А как дело с Flash обстоит в Linux? В Linux вам нужно, как всегда, один раз настроить и забыть - дальше вы можете спокойно пользоваться вашим Flash-диском. Для поддержки USB-накопителей используется модуль usb-storage. Лучше всего загрузить все необходимое с помощью команды:

service usb start

Но если сервиса usb у вас нет, вам придется вручную загружать этот модуль с помощью команды modprobe, но перед этим вам нужно загрузить модуль USB-контроллера. Имя этого модуля может отличаться в зависимости от производителя контроллера. Для Intel-контроллеров данный модуль называется uhci-hcd (или usb-uhci для ядра 2.4):

modprobe uhci-hcd

modprobe usb-storage

Если все будет работать правильно, вам нужно прописать загрузку этих модулей в файл /etc/modules.conf, чтобы каждый день не загружать эти модули вручную. В моей системе поддержка USB в /etc/modules.conf обеспечивается строкой:

probeall usb-interface usb-uhci ehci-hcd

После загрузки модулей вам нужно установить программу hotplug, если она до сих пор не установлена в вашей системе. При подключении нового Flash-диска программа hotplug автоматически найдет его и ассоциирует со SCSI-устройством (для Flash-дисков выполняется эмуляция SCSI). Обычно Flash-диск ассоциируется с устройством /dev/sda, но если у вас уже есть SCSI-диск, то Flash-диск может стать устройством /dev/sdb и т.д. Как узнать, каким устройством стал Flash-диск? Очень просто - загляните в системный журнал (/var/log/messages), там должны появиться соответствующие записи, в которых ясно указывается, с каким устройством ассоциирован Flash-диск:

kernel: usb 1-2: new full speed USB device using address 2

kernel: scsi0 : SCSI emulation for USB Mass Storage devices

kernel: Vendor: PQI Model: JoyTone U800 Rev: 1.00

kernel: Type: Direct-Access ANSI SCSI revision: 02

kernel: SCSI device sda: 502528 512-byte hdwr sectors (257 MB)

kernel: sda: assuming Write Enabled

kernel: /dev/scsi/host0/bus0/target0/lun0: p1

kernel: Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0

kernel: USB Mass Storage device found at 2

В данном случае видно, что мы подключили Flash-диск объемом 256 Мб, и он ассоциируется с устройством /dev/sda. Теперь нам осталось только подмонтировать это устройство как обычный диск. На Flash-диске будет всего один раздел sda1 (или sdb1), который мы и будем использовать:

mount /dev/sda1 /mnt/flash-disc

Правда, иногда на Flash-диске вообще нет разделов, тогда нужно монтировать весь /dev/sda. После монтирования Flash-ки с ней можно работать. Каталог /mnt/flash-disc у вас должен существовать.

Вы также можете добавить следующую строчку в fstab:

/dev/sda1 /mnt/flash-disc vfat rw,users,noauto,iocharset=koi8-r,codepage=866,sync,umask=0 0 0

Это строкой мы задаем, что наш Flash-диск будет содержать файловую систему VFAT, как в Windows, поэтому для него нужно задать кодировки iocharset=koi8-r,codepage=866, как для обычного Windows-раздела. Файловая система Flash-ки монтируется в режиме чтение/запись (rw), опции users и noauto, соответственно, разрешают монтирование Flash-ки обычным пользователям и запрещают автоматическое монтирование. Опция sync запрещает кэширование записи во избежание ситуации, когда вы Flash-ку уже вытащили, а данные физически еще на нее не записались.