Für alle Blockdevices kannst du den scheduler per Kernelparameter (an die kernel-Zeile im Botloader anhängen) ändern:
elevator=deadline
(wechselt vom default cfq auf deadline).
Du kannst die IO-Scheduler auch per Blockdevice wechseln. verfügbar sind noop, deadline und cfq(default).
Siehe:
zgrep -i sched /proc/config.gz
Für jedes Blockdevice (evtl. mal konzentrieren auf das USB-Device und die Zielplatte) kannst du den Scheduler erfahren/wechseln:
# < /sys/block/sdc/queue/scheduler
noop deadline [cfq]
# echo deadline > /sys/block/sdc/queue/scheduler
# < /sys/block/sdc/queue/scheduler
noop [deadline] cfq
Eine Übersicht über die IO-Scheduler sollte sich in der kernel-Dok finden, einen Artikel auf Deutsch(von 2005!) habe ich für den 2.6er gefunden (Als Einstieg sicher noch ok):
http://www.linux-magazin.de/Heft-Abo/Ausgaben/2005/04/Kern-Technik2
und ggf.
http://forums.gentoo.org/viewtopic-t-619496.html
//Edit: der Anticipatory-Schedulerb ist seit 2.6.33 nicht mehr im Kernel, für langsamere Flah-Medien(evtl. dein Problem mit Sticks) soll der "dumme" noop evtl. der bessere sein...
//Edit2: Selbst mit "langsameren" U/SB-Flashmedien habe ich hier (selbe testumgebung wie oben) keine Probleme - weder lesend noch schreibend. Auch an Intel Atoms nicht, allerdings habe ich dort kein Video+Sound zum testen. kann es gerne heute abend nochmal an einem T60 probieren...