| Your Explorer by Linux links... |
|
Совет №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-ку уже вытащили, а данные физически еще на нее не записались.