Access a USB flash drive in Linux.

Posted In Storage, System - By Tum. On Wednesday, April 23rd, 2008 With 0 Comments

การใช้งาน USB flash หรือ thumbdrives ในระบบปฏิบัติการ Linux นั้นโดยทั่วไปแล้วเมื่อเราเสียบเจ้าตัว USB flash หรือ thumbdrives เข้าไป Linux จะ auto mount ให้เอง แต่ในบางครั้งก็ไม่มีการ auto mount เจ้า USB flash หรือ thumbdrives ดังนั้นผู้ใช้งานมือใหม่ทั้งหลายอาจจะเกิดอาการเซ็งขึ้นมาเนื่องจากการใช้งานที่ยุ่งยาก และไม่รู้ว่าจะทำอย่างไรถึงจะสามารถใช้งานได้ ในบทความนี้ผมจะได้กล่าวถึงการทำให้เราสามารถใช้งาน USB flash หรือ thumbdrives ได้ในกรณีที่ Linux ไม่ทำการ auto mount ให้

ขั้นแรกให้พิมพ์คำสั่ง

#tail -f /var/log/messages

เพื่อตรวจสอบดูว่า USB flash หรือ thumbdrives ที่เสียบเข้าไปนั้นตัว linux เห็น Hardware นี้หรือปล่าว จากนั้นให้้ทำการเสียบ USB flash หรือ thumbdrives เข้าไปแล้วจะมีข้อความขึ้นมาดังข้างล่าง

Jun 27 12:18:09 localhost kernel: usb 1-5: new high speed USB device using ehci_hcd and address 9
Jun 27 12:18:10 localhost kernel: Initializing USB Mass Storage driver…
Jun 27 12:18:10 localhost kernel: scsi2 : SCSI emulation for USB Mass Storage devices
Jun 27 12:18:10 localhost kernel: usbcore: registered new driver usb-storage
Jun 27 12:18:10 localhost kernel: USB Mass Storage support registered.
Jun 27 12:18:15 localhost kernel: Vendor: 256MB Model: USB2.0FlashDrive Rev: 2.00
Jun 27 12:18:15 localhost kernel: Type: Direct-Access ANSI SCSI revision: 02
Jun 27 12:18:15 localhost kernel: sda: Unit Not Ready, sense:
Jun 27 12:18:15 localhost kernel: : Current: sense key: Unit Attention
Jun 27 12:18:15 localhost kernel: Additional sense: Not ready to ready change, medium may have changed
Jun 27 12:18:15 localhost kernel: sda : READ CAPACITY failed.
Jun 27 12:18:15 localhost kernel: sda : status=1, message=00, host=0, driver=08
Jun 27 12:18:15 localhost kernel: sd: Current: sense key: Unit Attention
Jun 27 12:18:15 localhost kernel: Additional sense: Not ready to ready change, medium may have changed
Jun 27 12:18:15 localhost kernel: sda: Write Protect is off
Jun 27 12:18:15 localhost kernel: sda: assuming drive cache: write through
Jun 27 12:18:15 localhost kernel: SCSI device sda: 512000 512-byte hdwr sectors (262 MB)
Jun 27 12:18:15 localhost kernel: sda: Write Protect is off
Jun 27 12:18:15 localhost kernel: sda: assuming drive cache: write through
Jun 27 12:18:15 localhost kernel: sda: sda1
Jun 27 12:18:15 localhost kernel: Attached scsi removable disk sda at scsi2, channel 0, id 0, lun 0
Jun 27 12:18:15 localhost scsi.agent[3965]: disk at /devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0/host2/target2:0:0/2:0:0:0
Jun 27 12:18:15 localhost fstab-sync[3989]: added mount point /media/usbdisk for /dev/sda1

จากตัวหนังมือสีแดงสามารถอธิบายคร่าวๆได้ว่า เห็น USB flash หรือ thumbdrives แล้วชื่อว่า sda และมี partition อยู่ 1 partition ชื่อว่า sda1

ขั้นตอนตัวหนังสือสีเขียวข้างล่างนี้อาจไม่ต้องทำก็ได้
ทำการตรวจสอบดูว่า module usb_storage ได้ถูกโหลดขึ้มมาหรือยัง ด้วยคำสั่ง

#lsmod
Module Size Used by
usb_storage 74761 0
sd_mod 22977 0
scsi_mod 136457 2 usb_storage,sd_mod

ทำการตรวจสอบ ID ของ flash drive โดยใช้คำสั่ง

#lsusb
Bus 001 Device 009: ID 0ea0:2168 Ours Technology, Inc. Transcend JetFlash 2.0 / Astone USB Drive

เมื่อทำการตรวจสอบดูเรียบร้อยแล้วว่าระบบสามารถพบ USB flash หรือ thumbdrives แล้วขั้นต่อไปเป็นการนำ USB flash หรือ thumbdrives มาใช้งานครับ ด้วยการใช้คำสั่ง

# mkdir /mymountpoint                                // สร้าง directory เพื่อรองรับการ mount
# mount /dev/sda1 /mymountpoint           // ทำการ mount USB flash หรือ thumbdrives ขึ้นมาใน directory ที่ชื่อ mymountpoint

เมื่อทำครบตามขั้นตอนข้างต้นแล้วยังไม่สามารถใช้งานได้ให้ลองใช้คำสั่ง

#modprobe usb-storage

เพื่อทำการโหลด module usb-storage ขึ้นมาและให้ทำตามขั้นตอนข้างต้นใหม่หมด

ในกรณีที่ไม่สามารถใช้งานได้เลย (worst case) ให้ทำการ Restart เครื่องใหม่ครับ

เสริม: เมื่อเราไม่ได้ใช้งาน USB flash หรือ thumbdrives นานๆระบบจะทำการ unplug ให้เราโดยอัตโนมัติ และเราสามารถดูได้ว่าระบบทำการ unplug ให้เราแล้วหรือยังโดยให้เราเข้าไปดูที่ไฟล์ /var/log/messages จะมีข้อความข้างล่างปรากฏอยู่แสดงว่าระบบได้ทำการ unplug USB flash หรือ thumbdrives แล้ว

Jun 27 12:35:14 localhost kernel: usb 1-5: USB disconnect, address 9

คำค้นยอดนิยม: linux usb