Skip to Content

Samba – แชร์ไดรฟ์ Linux ให้ Windows มองเห็น

29 ตุลาคม ค.ศ. 2025 โดย
OLlama
| ยังไม่มีความคิดเห็น

สวัสดีครับ! วันนี้เราจะมาพูดถึงสถานการณ์คลาสสิกที่หลายคนน่าจะเคยเจอ โดยเฉพาะชาว DIY ที่ใช้ Raspberry Pi (ในที่นี้คือ RPi 5 ตัวแรง) ครับ

สถานการณ์: ผมมีฮาร์ดดิสก์ที่ฟอร์แมตเป็นระบบไฟล์ Linux (เช่น ext4) ซึ่งเต็มไปด้วยไฟล์งานหรือแบ็คอัพ แต่ผมต้องการโอนไฟล์รูปภาพจำนวนมากจากคอมพิวเตอร์ Windows (Backup files) ของผมไปยังฮาร์ดดิสก์ลูกนั้น ปัญหาคือ Windows อ่านไดร์ว ext4 โดยตรงไม่ได้

ทางออกที่ยอดเยี่ยมคือการใช้ Raspberry Pi 5 ที่ต่อกับฮาร์ดดิสก์ USB ลูกนั้นเป็น "ตัวกลาง" หรือ "NAS ขนาดย่อม" (Network Attached Storage) ครับ

ในบรรดาซอฟต์แวร์โอเพ่นซอร์สหลายตัวที่ทำงานนี้ได้ ตัวที่เหมาะที่สุดสำหรับการ "แชร์ไดร์ว" ให้ Windows มองเห็นแบบแนบเนียนที่สุดคือ Samba ครับ

🧰 Samba – สร้าง Network Drive ให้ Windows ใช้งาน

Samba คือซอฟต์แวร์ที่ใช้โปรโตคอล SMB/CIFS ซึ่งเป็นโปรโตคอลเดียวกับที่ Windows ใช้ในการแชร์ไฟล์และพรินเตอร์ในเครือข่าย (Network Neighborhood)

  • เหมาะสำหรับ: การทำให้ฮาร์ดดิสก์ที่ต่อกับ Pi ของคุณปรากฏเป็น "Network Drive" ใน File Explorer ของ Windows เลย

  • ข้อดี: ใช้งานง่ายมากจากฝั่ง Windows, ไม่ต้องติดตั้งโปรแกรมอะไรบน Windows เพิ่มเติม, สามารถ Map Network Drive (เช่น Z:) ให้เป็นไดร์วถาวรใน "This PC" ได้เลย

ขั้นตอนการติดตั้งและตั้งค่า Samba บน Raspberry Pi 5

เราจะมาเริ่มกันทีละขั้นตอนครับ สมมติว่าคุณเสียบฮาร์ดดิสก์ USB เข้ากับ RPi 5 ของคุณเรียบร้อยแล้ว

ขั้นตอนที่ 1: ตรวจสอบและ Mount ฮาร์ดดิสก์

ก่อนอื่น เราต้องทำให้ RPi รู้จักและพร้อมใช้งานฮาร์ดดิสก์ลูกนี้ก่อน

  1. หาชื่อไดร์ว:

    Bash

    lsblk
    

    คุณจะเห็นรายการไดร์วต่างๆ มองหาไดร์ว USB ของคุณ (เช่น /dev/sda1 หรือ /dev/sdb1)

  2. สร้างจุด Mount: เราจะสร้างโฟลเดอร์ว่างๆ เพื่อใช้เป็น "ประตู" เข้าสู่ฮาร์ดดิสก์

    Bash

    sudo mkdir /media/sharedrive
    
  3. Mount ไดร์ว: (แทนที่ /dev/sda1 ด้วยชื่อไดร์วที่คุณหาเจอ)

    Bash

    sudo mount /dev/sda1 /media/sharedrive
    
  4. (สำคัญ) ทำให้ Mount อัตโนมัติทุกครั้งที่เปิดเครื่อง: เราต้องแก้ไขไฟล์ fstab เพื่อที่ว่าเมื่อ RPi รีบูต ไดร์วนี้จะถูกเชื่อมต่ออัตโนมัติ

    • หา UUID (รหัสประจำตัวไดร์ว) ซึ่งปลอดภัยกว่าการใช้ /dev/sda1:

      Bash

      sudo blkid /dev/sda1
      

      จดค่า UUID="..." ของคุณไว้

    • แก้ไขไฟล์ fstab:

      Bash

      sudo nano /etc/fstab
      
    • เพิ่มบรรทัดนี้เข้าไปท้ายไฟล์ (เปลี่ยน YOUR_UUID เป็นค่าที่คุณจดไว้ และเปลี่ยน ext4 หากไดร์วคุณเป็นฟอร์แมตอื่น):

      UUID=YOUR_UUID  /media/sharedrive  ext4  defaults,auto,users,rw,nofail  0  0
      
    • กด Ctrl+O เพื่อบันทึก และ Ctrl+X เพื่อออก

ขั้นตอนที่ 2: ติดตั้ง Samba

อัปเดตระบบและติดตั้ง Samba:

Bash

sudo apt update
sudo apt install samba samba-common-bin -y

ขั้นตอนที่ 3: ตั้งค่า Samba (smb.conf)

นี่คือหัวใจสำคัญ เราจะบอก Samba ว่าจะแชร์โฟลเดอร์ไหน

  1. สำรองไฟล์ตั้งค่าเดิม:

    Bash

    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
    
  2. แก้ไขไฟล์ตั้งค่า:

    Bash

    sudo nano /etc/samba/smb.conf
    
  3. เพิ่มการตั้งค่า Share: เลื่อนไปที่ล่างสุดของไฟล์ แล้วเพิ่มส่วนนี้เข้าไป:

    Ini, TOML

    [RPi_Share]
    comment = Raspberry Pi 5 Shared Drive
    path = /media/sharedrive
    browseable = yes
    writable = yes
    guest ok = no
    read only = no
    create mask = 0775
    directory mask = 0775
    
    • [RPi_Share]: นี่คือชื่อ "Share" ที่จะปรากฏใน Windows

    • path: คือตำแหน่งโฟลเดอร์ที่เรา Mount ไดร์วไว้

    • guest ok = no: เราจะไม่อนุญาตให้ใครก็ได้เข้ามา (ต้องใช้รหัสผ่าน)

ขั้นตอนที่ 4: สร้างผู้ใช้งานและรหัสผ่านสำหรับ Samba

เพื่อความปลอดภัย เราจะไม่ใช้รหัสผ่านของระบบ Linux โดยตรง แต่จะสร้างรหัสผ่าน "Samba" แยกต่างหากให้กับผู้ใช้ Linux ของเรา (เช่น ผู้ใช้ pi หรือผู้ใช้หลักที่คุณใช้ Login)

  1. สร้างรหัสผ่าน Samba: (แทนที่ pi ด้วย username ของคุณ ถ้าคุณไม่ได้ใช้ pi)

    Bash

    sudo smbpasswd -a pi
    

    ระบบจะถามให้คุณตั้งรหัสผ่านใหม่ รหัสผ่านนี้คือสิ่งที่คุณจะใช้เชื่อมต่อจาก Windows (ไม่จำเป็นต้องเหมือนกับรหัสผ่าน Linux)

ขั้นตอนที่ 5: ตั้งค่าสิทธิ์ (Permission)

เราต้องแน่ใจว่าผู้ใช้ pi (หรือผู้ใช้ของคุณ) มีสิทธิ์เขียนไฟล์ลงในไดร์วที่เรา Mount ไว้

Bash

sudo chown -R pi:pi /media/sharedrive
sudo chmod -R 775 /media/sharedrive

ขั้นตอนที่ 6: รีสตาร์ท Samba

เพื่อให้การตั้งค่าใหม่มีผล:

Bash

sudo systemctl restart smbd
sudo systemctl restart nmbd

🚀 สาธิตการโอนย้ายไฟล์ (เชื่อมต่อจาก Windows)

ตอนนี้ Raspberry Pi 5 ของคุณพร้อมแล้ว กลับมาที่คอมพิวเตอร์ Windows ครับ

  1. หา IP Address ของ RPi 5: กลับไปที่ RPi 5 (หรือ SSH) แล้วพิมพ์:

    Bash

    ip a
    

    มองหา IP ของคุณในส่วน wlan0 (ถ้าใช้ Wi-Fi) หรือ eth0 (ถ้าใช้สาย LAN) เช่น 192.168.1.50

  2. เชื่อมต่อจาก Windows File Explorer:

    • เปิด File Explorer (กด Win + E)

    • ในช่อง Address Bar ด้านบน พิมพ์ \\ ตามด้วย IP ของ RPi 5 เช่น: \\192.168.1.50 แล้วกด Enter

  3. ใส่รหัสผ่าน:

    • Windows จะถามหา Username และ Password

    • Username: pi (หรือชื่อผู้ใช้ที่คุณตั้งค่า smbpasswd)

    • Password: รหัสผ่านที่คุณตั้งค่าด้วยคำสั่ง smbpasswd (ไม่ใช่รหัสผ่าน Linux)

    • ติ๊ก "Remember my credentials" เพื่อความสะดวก

  4. เข้าถึงไฟล์: คุณจะเห็นโฟลเดอร์ชื่อ RPi_Share (หรือชื่อที่คุณตั้งใน smb.conf) เมื่อดับเบิลคลิกเข้าไป... นั่นคือฮาร์ดดิสก์ ext4 ที่ต่ออยู่กับ RPi 5 ของคุณครับ!

  5. โอนย้ายไฟล์: ตอนนี้คุณสามารถลากและวาง (Drag-and-Drop) โฟลเดอร์รูปภาพจำนวนมากจาก Windows ของคุณลงในหน้าต่าง RPi_Share นี้ได้เลย ไฟล์จะถูกโอนย้ายผ่านเครือข่ายไปยังฮาร์ดดิสก์บน RPi 5

  6. (ทางเลือก) Map Network Drive เพื่อความถาวร:

    • ในหน้า File Explorer ที่คุณเห็น RPi_Share ให้คลิกขวาที่โฟลเดอร์นั้น

    • เลือก "Map network drive..."

    • เลือกตัวอักษรไดร์ว (เช่น Z:)

    • ติ๊ก "Reconnect at sign-in"

    • กด Finish

    • เพียงเท่านี้ ไดร์วจาก RPi 5 ของคุณก็จะปรากฏใน "This PC" เหมือนเป็นไดร์วปกติของ Windows เลย

บทส่งท้าย

ด้วยพลังของ Raspberry Pi 5 และซอฟต์แวร์โอเพ่นซอร์สอย่าง Samba เราสามารถแก้ปัญหา "Windows อ่านไดร์ว Linux ไม่ได้" ได้อย่างง่ายดาย สถานการณ์ของผมที่ต้องการย้ายรูปภาพจำนวนมากไปยังฮาร์ดดิสก์ที่ฟอร์แมตแบบ Linux ก็สำเร็จลุล่วง โดยที่ฝั่ง Windows นั้นใช้งานได้สะดวกสุดๆ เหมือนเป็นไดร์วในเครื่องตัวเองเลยครับ

นี่เป็นเพียงหนึ่งในหลายวิธี แต่สำหรับการแชร์ไดร์วในเครือข่ายบ้าน Samba ถือเป็นตัวเลือกที่คลาสสิกและตรงไปตรงมาที่สุดครับ!

Our related Products

Check out what's new in our company !

Your Dynamic Snippet will be displayed here... This message is displayed because you did not provide enough options to retrieve its content.
OLlama 29 ตุลาคม ค.ศ. 2025
แชร์โพสต์นี้
แท็ก
เก็บถาวร
ลงชื่อเข้าใช้ เพื่อแสดงความคิดเห็น