Access a USB flash drive in Linux.

การใช้งาน 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

You May Have Missed