เทคนิคการขยายขนาดพาร์ติชั่นของ MicroSD บนเครื่อง RasPBX

Running Debian, Asterisk and FreePBX on the Raspberry Pi

เทคนิคการขยายขนาดพาร์ติชั่นของ MicroSD บนเครื่อง RasPBX

โพสต์โดย nuiz » 19 ก.ย. 2015 11:58

จากบทความแนะนำการติดตั้ง RasPBX นี้ เทคนิคการติดตั้ง Asterisk+FreePBX บน Raspberry PI ผมได้แนะนำวิธีการขยายขนาดพาร์ติชั่นบน MicroSD ไปแล้วโดยการรันคำสั่ง raspi-config แล้วเลือกจากเมนู แต่ถ้าทำไม่สำเร็จให้ลองทำตามขั้นตอนในบทความนี้ครับ

เนื่องจากไฟล์อิเมจของ Linux ที่ทำบน Rasp Pi ถูกทำมาสำหรับขนาดเนื้อที่เพียงประมาณ 3.5GB เท่านั้น ดังนั้นไม่ว่าเราจะไรท์อิเมจลงบน MicroSD สักขนาดกี่ GB ก็ตาม ระบบปฏิบัติการจะเห็นขนาดพาร์ติชั่นที่ใช้ได้จริงๆเพียง 3.5 GB เท่านั้น ซึ่งก็ใช้ติดตั้ง OS ไปแล้วก็กิ๊กกว่าๆ ใช้งานได้อีกเพียงกิ๊กกว่าๆเท่านั้น

มาดูตัวอย่างที่ว่ากันครับ รันคำสั่งนี้ "df -h" (เวลาพิมพ์ไม่ต้องใส่เครื่องหมาย " ครับ) แล้วดูผลลัพธ์
โค้ด: เลือกทั้งหมด
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       3.5G  1.6G  1.8G  47% /
devtmpfs        484M     0  484M   0% /dev
tmpfs           488M     0  488M   0% /dev/shm
tmpfs           488M   13M  475M   3% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           488M     0  488M   0% /sys/fs/cgroup
/dev/mmcblk0p1   75M   32M   44M  42% /boot


ดูพาร์ติชั่น /dev/root ครับ ซึ่งเป็นที่ๆเก็บไฟล์ระบบและโปรแกรมต่างๆทั้งที่ติดตั้งมาให้ดีฟอลท์หรือที่เราจะติดตั้งในอนาคต มีขนาดเพียง 3.5GB ใช้ไปแล้ว 1.6GB เหลืออีก 1.8GB เอง ทั้งๆที่ MicroSD อันนี้ที่ผมใส่เข้าไปมันขนาดตั้ง 16GB หายไปเยอะเลย

บทความนี้แนะนำเทคนิคการขยายขนาดของพาร์ติชั่นให้ใช้ได้เต็มความจุของ MicroSD การ์ดครับ

สำหรับบาง Distro อย่างเช่น Asterisk for Raspberry และ RaspBian มีคำสั่งให้ขยายขนาดพาร์ติชั่นครับ คือคำสั่ง "raspi-config" เมื่อสั่งรันจะเห็นเมนู เลือกเข้าเมนู "1. Expand file system" ซึ่งถ้าโชคดีก็จะขยายได้ครับ รีบู๊ตครั้งหนึ่งก็จะใช้งานได้แล้ว

แต่ถ้าเจอข้อความแบบนี้ "/dev/root does not exist or is not a symlink. Don't know how to expand" แทน ณ ตอนนี้คงต้องทำการขยายแบบ manual ครับ ทำตามขั้นตอนตามที่ผมแนะนำได้เลยนะครับ ระวังนิดนึงไม่งั้นต้องได้ไรท์ไฟล์อิเมจใหม่แน่ๆ

1. ตรวจสอบขนาดพาร์ติชั่น
คำสั่ง
โค้ด: เลือกทั้งหมด
df -h

ผลลัพธ์
โค้ด: เลือกทั้งหมด
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       3.5G  1.6G  1.8G  47% /
devtmpfs        484M     0  484M   0% /dev
tmpfs           488M     0  488M   0% /dev/shm
tmpfs           488M   13M  475M   3% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           488M     0  488M   0% /sys/fs/cgroup
/dev/mmcblk0p1   75M   32M   44M  42% /boot

พาร์ติชั่น /dev/root เก็บไฟล์ระบบปฏิบัติการ เก็บโปรแกรม
พาร์ติชั่น /dev/mmcblk0p1 สำหรับบู๊ตระบบ

2. ดูจำนวนและขนาดของแต่ละพาร์ติชั่น
คำสั่ง
โค้ด: เลือกทั้งหมด
fdisk -l

ผลลัพธ์
โค้ด: เลือกทั้งหมด
Disk /dev/mmcblk0: 14.9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000ee283

Device         Boot  Start     End Sectors  Size Id Type
/dev/mmcblk0p1        2048  155647  153600   75M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      157696 7626751 7469056  3.6G 83 Linux

จะเห็นว่าพาร์ติชั่น /dev/mmcblk0p2 ซึ่งเก็บลินุกซ์มีขนาดเพียง 3.6GB เท่านั้น เราต้องขยายพาร์ติชั่นนี้ให้เต็มเนื้อที่ความจุที่เหลือ

3. ขยายขนาดพาร์ติชั่น
รันคำสั่งนี้กับพาร์ติชั่น /dev/mmcblk0 ซึ่งเป็นพาร์ติชั่นหลัก
โค้ด: เลือกทั้งหมด
fdisk /dev/mmcblk0

แล้วตั้งค่าตามที่ต้องการ
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p
Disk /dev/mmcblk0: 14.9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000ee283

Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 155647 153600 75M c W95 FAT32 (LBA)
/dev/mmcblk0p2 157696 7626751 7469056 3.6G 83 Linux

Command (m for help): d
Partition number (1,2, default 2): 2

Partition 2 has been deleted.

Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (155648-31116287, default 155648):157696 <-- สังเกตุว่าตัวเลขเดียวกับค่า Start ของ /dev/mmcblk0p2 คำสั่งก่อนหน้า
Last sector, +sectors or +size{K,M,G,T,P} (155648-31116287, default 31116287):

Created a new partition 2 of type 'Linux' and of size 14.8 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

ตรวจสอบ
คำสั่ง
โค้ด: เลือกทั้งหมด
fdisk -l

ผลลัพธ์
โค้ด: เลือกทั้งหมด
Disk /dev/mmcblk0: 14.9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000ee283

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1        2048   155647   153600   75M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      155648 31116287 30960640 14.8G 83 Linux


จะเห็นว่าขนาดพาร์ติชั่น root (/dev/mmcblk0p2) ขยายเป็น 14.8 GB แล้ว

4. รีบู๊ตเครื่อง
ต่อไปให้รีบู๊ตเพื่อให้ระบบ mount พาร์ติชั่นใหม่
โค้ด: เลือกทั้งหมด
reboot


5. ปรับขนาดพาร์ติชั่นใหม่
หลังจากรีบู๊ต ให้ปรับขนาดพาร์ติชั่น รันคำสั่ง
โค้ด: เลือกทั้งหมด
resize2fs /dev/mmcblk0p2

ผลลัพธ์
โค้ด: เลือกทั้งหมด
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p2 is now 3869824 (4k) blocks long.


6. ตรวจสอบขนาดพาร์ติชั่น
เพื่อความแน่ใจ เสร็จแล้วตรวจสอบพาร์ติชั่นอีกครั้งด้วยคำสั่ง
โค้ด: เลือกทั้งหมด
df -h

ผลลัพธ์
โค้ด: เลือกทั้งหมด
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  1.8G   13G  13% /
devtmpfs        484M     0  484M   0% /dev
tmpfs           488M     0  488M   0% /dev/shm
tmpfs           488M   13M  475M   3% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           488M     0  488M   0% /sys/fs/cgroup
/dev/mmcblk0p1   75M   32M   44M  42% /boot


บทความที่เกี่ยวข้อง
เทคนิคการติดตั้ง G.729 Codec บน RasPBX
เทคนิคการทำไฟล์ Image ของ RasPBX
รวมเทคนิคการใช้งาน Elastix
รวมเทคนิคการใช้งาน Asterisk
รวมเทคนิคการใช้งาน Issabel
รวมเทคนิคการใช้งาน FreePBX
รวมเทคนิคการใช้งาน RasPBX - Asterisk on Raspberry Pi
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 7058
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

ย้อนกลับไปยัง RasPBX - Asterisk for Raspberry Pi

ผู้ใช้งานขณะนี้

่กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 1 ท่าน

cron