Raspberry Pi ออกแบบรันจาก SD/MicroSD card สำหรับ OS อย่าง PIXEL "root" และ "Home" partitions อยู่ใน SD card จำกัดพื้นที่ (ขนาดเล็กมาก) ถ้าจะรัน home storage server บน Pi ควรย้าย OS ไป external hard drive เพื่อพื้นที่มาก
บทความนี้สอน: บูท Raspberry Pi 3 และรันจาก external hard disk
หมายเหตุ: ใช้ Pi 3 เพราะไม่ต้อง power source เพิ่ม สำหรับ external hard disk Power supply ของ Pi 3 รองรับ external hard disk ผ่าน USB port ได้ ใช้ official Pi power adapter หรือปลั๊กที่ให้ current ≥ 2.5A
ก่อนเริ่ม ต้องมี:
- Raspberry Pi 3
- microSD card (ขั้นต่ำ 4 GB) ติดตั้ง PIXEL แล้ว (สมมติว่ามี PIXEL ทำงานอยู่ ติดตั้ง image สำหรับ Pi อ่าน tutorials อื่น)
- External hard disk format เป็น Ext4 (ใช้ GParted หรือ fdisk format)
ตั้งค่า External Hard Disk
- ใส่ microSD เข้า Pi 3 เสียบ external hard drive USB port Pi 3 เปิดเครื่อง
- ถึง desktop เปิด terminal เข้า root account mount external hard drive
sudo su mount /dev/sda /mnt
- ติดตั้ง Rsync (ถ้ายังไม่มี):
apt-get install rsync
- คัดลอกไฟล์ทั้งหมดจาก microSD ไป external hard drive ใช้
rsyncสิทธิ์และเจ้าของไฟล์คงเดิม
sudo rsync -axv / /mnt

- ไฟล์บูทอยู่ใน external hard drive แล้ว ต้องแก้ไข startup file ให้ชี้ไป external hard disk สำหรับคำสั่งบูท
cp /boot/cmdline.txt /boot/cmdline.txt.bak nano /boot/cmdline.txt
แก้ 2 ส่วน: เปลี่ยน root= เป็น /dev/sda และท้ายเพิ่ม rootdelay=5
ผลลัพธ์ควรเป็น:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait rootdelay=5

- เพิ่ม entry หน้าดิสก์ใน "/mnt/etc/fstab" เพื่อ mount root folder ใน external hard drive อัตโนมัติตอนบูท
nano /mnt/etc/fstab
เพิ่มบรรทัดนี้บรรทัดที่ 2:
/dev/sda1 / ext4 defaults,noatime 0 1
เพิ่ม "#" นำหน้าบรรทัดสุดท้าย ปิดการบูทจาก microSD:
#/dev/mmcblk0p7 / ext4 defaults,noatime 0 1
หมายเหตุ: /dev/mmcblk0p7 = microSD card slot ค่าอาจต่างในกรณีของคุณ
หลังแก้ไข ควรเป็น:
proc /proc proc defaults 0 0 /dev/sda1 / ext4 defaults,noatime 0 1 /dev/mmcblk0p6 /boot vfat defaults 0 2 #/dev/mmcblk0p7 / ext4 defaults,noatime 0 1

เสร็จ Reboot Pi ควรบูทและรันจาก external hard drive หมายเหตุ: microSD ต้องอยู่ในสล็อต เพราะ Pi ต้องอ่าน startup file จากมัน ก่อนบูทจาก external hard drive
เพิ่มเติม: เพิ่มขนาด swapfile
ถ้า external hard drive ใหญ่ อาจอยากเพิ่ม swapfile ให้ Pi เร็วขึ้น
- เปิด terminal เข้า root
sudo su
- แก้ swapfile
nano /etc/dphys-swapfile
เปลี่ยน CONF_SWAPSIZE จาก 100 เป็น 512 เซฟและออก

- Restart service อัปเดตการเปลี่ยนแปลง
sudo dphys-swapfile setup sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start
สรุป
Raspberry Pi 3 มีการปรับปรุง: RAM สูงกว่า, WiFi module, power supply ใหญ่พอสำหรับ external hard drive เหมาะโปรเจกต์ใหญ่/หนัก microSD ขนาดเล็ก = จำกัด ไม่ใช่แค่ช้า read/write แต่วุ่นข้อมูลได้ง่าย ด้วยคำแนะนำข้างต้น บูท Pi จาก external hard drive ได้ และปรับปรุงประสิทธิภาพ