วันนี้เรามาลองเอา External Hard Disk Drives มาต่อกับ Raspberry Pi เพื่อเอามาใช้ทำ File Server กันดูบ้างครับ แต่ว่าตัวพอร์ต USB ของ Raspberry Pi ไม่สามารถจ่ายกระแสได้มากพอที่จะขับตัว External HDD ฉะนั้นเราต้องใช้ USB Hub แบบที่มีสายเพาเวอร์แยกต่างหากมาช่วยจ่ายกระแสไฟให้กับ External HDD หรือถ้าใครมี External HDD แบบที่มีสายเพอเวอร์แยกต่างหากก็สามารถที่จะใช้งานได้เลยโดยไม่ต้องหาอุปกรณ์อะไรเพิ่มเติม หลักการทำงานของระบบที่เราจะทดลองวันนี้ก็คือ เราจะทำการ Mount External HDD จากนั้นใช้ SAMBA เป็นซอฟแวร์ในการจัดการระบบ File Server เพื่อให้เครื่องต่างๆ ในเน็ทเวิร์คของเราสามารถล็อกอินเข้ามาใช้งานไฟล์ต่างๆ ที่อยู่ใน External HDD ได้
อย่างแรกก็ต่อสายทุกอย่างให้เรียบร้อยครับ
ตรวจสอบชื่อ Device ของ External HDD ที่เราเสียบเพิ่มเข้าไป จากรูปจะเห็นว่ามี /dev/sda1 เพิ่มขึ้นมา
1 | sudo fdisk -l |
จากนั้นติดตั้ง Tools เพื่อใช้ในการอ่านข้อมูลจาก FAT ในแบบต่างๆ อันนี้ผมจะติดตั้งไปหมดทุกตัวเลยนะครับ แต่ว่าตัว External HDD ที่ผมใช้จะเป็น FAT32 นะครับ
ติดตั้ง dosfstools สำหรับอ่านข้อมูลจาก FAT32 (Windows)
1 | sudo apt-get install dosfstools |
ติดตั้ง ntfs-3g สำหรับอ่านข้อมูลจาก NTFS (Windows)
1 | sudo apt-get install ntfs-3g |
ติดตั้ง hfsutils hfsprogs hfsutils สำหรับอ่านข้อมูลจาก HFS+ (MAC OS X)
1 | sudo apt-get install hfsutils hfsprogs hfsutils |
ทำการสร้างโฟลเดอร์ /mnt/usbdrive สำหรับ mount ข้อมูลจาก /dev/sda1 โดยกำหนดให้ user ชื่อ pi เป็นเจ้าของโฟลเดอร์นี้ (เราจะใช้ user นี้ในการ login เข้า File Server)
1 2 | sudo mkdir /mnt/usbdrive sudo chown -R pi:pi /mnt/usbdrive |
ทำการ mount ข้อมูลจาก device /dev/sda1 ไปที่ /mnt/usbdrive
1 | sudo mount /dev/sda1 /mnt/usbdrive |
ตรวจสอบดูหน่อยว่าเห็นข้อมูลใน External HDD แล้ว
1 2 | cd /mnt/usbdrive ls -al |
เปิดไฟล์ /etc/fstab และทำการเพิ่มคำสั่งสำหรับ Mount External HDD ลงไป เพื่อให้ทำการ Mount ทุกครั้งที่เปิดเครื่อง
เปิดไฟล์ /etc/fstab
1 | sudo nano /etc/fstab |
เพิ่มคำสั่งต่อไปนี้ลงไป
1 | /dev/sda1 /mnt/usbdrive auto uid=pi,gid=pi 0 0 |
ขั้นตอนถัดไปติดตั้ง SAMBA File Server
1 | sudo apt-get install samba samba-common-bin |
แก้ไขไฟล์ smb.conf ค้นหาบรรทัด security = user และเอา comment ข้างหน้าออก
1 | sudo nano /etc/samba/smb.conf |
และเพิ่มบรรทัดคำสั่งต่อไปนี้ลงท้ายไฟล์ /etc/samba/smb.conf
1 2 3 4 5 6 7 8 | [Raspberry Pi Backup] comment = Raspberry Pi Backup Folder path = /mnt/usbdrive valid users = @users force group = users create mask = 0660 directory mask = 0771 read only = no |
ทำการตั้ง password สำหรับ user pi ที่จะใช้ในการล๊อกอินเข้า SAMBA
1 | sudo smbpasswd -a pi |
สั่ง Restart SAMBA File Server
1 | sudo service samba restart |
จากนั้นกลับมาที่เครื่อง Windows ของเรา คลิกที่ Start และพิมพ์ IP ของ Raspberry Pi ลงไปครับ ตัวอย่างของผมก็จะเป็น \\192.168.8.102
เราจะเห็นโฟลเดอร์ชื่อ Raspberry Pi Backup ที่เราแชร์ไว้
ดับเบิลคลิกที่โฟลเดอร์ Raspberry Pi Backup และเลือก Use another account จากนั้นทำการใส่ User และ Password ในทีนี้ user คือ pi และ password คือ password ที่เราตั้งในขั้นตอนที่แล้วนะครับ
เรียบร้อยแล้วครับ เราสามารถใช้งานให้ Raspberry Pi เป็น File Server ได้แล้วครับ
และหากว่าต้องการ unmount ตัว External HDD ออกจากระบบก็ใช้คำสั่งต่อไปนี้ และทำการ comment บรรทัดที่เราเพิ่มในไฟล์ /etc/fstab ด้วยนะครับ
1 | sudo umount /mnt/usbdrive |