บทความ
เพิ่ม Swap โดยไม่ต้อง format
[ 2015-09-11 08:51:34 ]
ก่อนอื่นขออธิบายให้ฟังคร่าวๆถึง swap partition ก่อนละกันครับเผื่อคนที่เป็น linux user หน้าใหม่ใสกิ๊งยังไม่ค่อยเข้าใจ ไอ้เจ้า swap partition เนี่ยมันเป็นการแบ่งพื้นที่ของ harddisk บางส่วนเพื่อมาใช้เป็นหน่วยความจำให้กับระบบ(หน้าที่เดียวกับ ram นั่นแหละครับ) ถ้าเป็น windowsเค้าจะเรียกส่วนที่ทำงานเพื่อช่วย ram ของระบบว่า virtual memory ส่วน linux ก็ swap partition อะไรทำนองนั้นน่ะครับ(แต่จะมีข้อต่างกันนิดหน่อยนะครับ คือ swap partition มันจะฟอร์แมต disk ให้เป็น partition นึงไปเลย แต่ถ้าเป็น virtual memory มันจะไม่ได้แบ่งพื้นที่ส่วนนั้นเป็นอีก partition มันแค่กันพื้นที่บางส่วนเอาไว้ช่วย ram ทำงานเท่านั้น)
 
    ถ้าว่ากันตามตำราที่เคยอ่านผ่านๆตามาหลายสำนักก็มักจะแนะนำให้แบ่ง swap partition ให้มีขนาดประมาณ 2 เท่าของ ram ในระบบเรา แต่โดยปกติถ้าผมลง ubuntu บน PC ที่ใช้งานทั่วไปก็มักจะไม่ได้แบ่ง swap partition ไว้ใหญ่ขนาด 2 เท่าของ ram หรอกครับ คือผมคิดว่ามันเยอะไปหน่อย เช่น ผมใช้ ram 512 MB ก็ต้องแบ่งเป็น swap partition ไปสัก 1 GB ได้ ถ้าไม่ได้ใช้งานเครื่องหนักๆก็คงแบ่งไว้สัก 512 MB เท่าๆกะ ram นั่นล่ะ 
 
    แต่ว่ามันก็จะมีบางกรณีที่เครื่องเราต้องใช้งานหนักๆ เช่น ใช้เครื่องทำเป็น server หรือพวกเครื่องของ programmer ที่ต้อง run โปรแกรมอะไรที่มันรับประทานหน่วยความจำเยอะๆบางทีก็ต้องแบ่งพื้นที่ swap partition ให้ขนาดมันเยอะขึ้นมาสักหน่อยล่ะ แต่ถ้าเกิดสมมติว่าตอน install ubuntu ทีแรก เราดันแบ่ง swap partition ไว้น้อยไปหน่อย พอตอนหลังมีความจำเป็นต้องใช้ประโยชน์จาก swap partition ขึ้นมา เลยเกิดความคิดที่จะเพิ่มพื้นที่ swap partition ขึ้นมาแว่ปนึง แต่ถ้าจะให้มานั่ง format partition ใหม่ก็ไม่อยากทำ ผมก็เลยขอเสนอวิธีทำ swap partition อีกแบบนึงซึ่งง่ายมากๆเลยล่ะ มาให้เพื่อนๆได้ลองทำกัน วิธีนี้ไม่ต้องฟอร์แมต disk เพื่อแบ่ง partition ใหม่ แต่จะเป็นการสร้าง file ขึ้นมาไฟล์นึงเพื่อทำหน้าที่แทน swap partition(ขอเรียกมันว่า swap file ละกันครับ)     
 
วิธีทำก็ตามนี้เลยครับ
 
step 1: free  -m   >   ลองเช็ค swap space ดูก่อนว่าก่อนทำ swap file เรามี swap space ขนาดเท่าไร 
 
step 2: cd  /opt   >   เข้าไปใน opt
 
step 3: sudo  mkdir  virtual   >   สร้าง folder ชื่อ virtual ใน opt
 
step 4: sudo  dd  if=/dev/zero  of=/opt/virtual/swapfile  bs=1024  count=307200 
เป็นการสร้าง swap file ใน  /opt/virtual โดย swap file จะมีขนาด 300 MB (swap fileเกิดจากการรวมกันของบล็อค 307200 บล็อค และแต่ละบล็อคมีขนาด 1024 bytes ก็จะได้ swap file ขนาดประมาณ 300 MB ได้)
 
step 5: sudo  mkswap  -c  /opt/virtual/swapfile   >   จัดรูปแบบไฟล์ให้ใช้งานเป็นหน่วยความจำเสมือน โดยพารามิเตอร์ -c หมายถึงให้เช็คพื้นที่ harddisk ในส่วนที่ทำ swap file ว่ามี bad sector รึเปล่า
 
step 6: sudo  swapon  /opt/virtual/swapfile   >   เป็นการสั่งให้เริ่มใช้งาน swap file
 
step 7: ทีนี้เพื่อเป็นการพิสูจน์ดูว่า swap space มีการเพิ่มขึ้นแล้วจริงก็ต้องใช้คำสั่ง free -m ดูอีกทีก็จะเห็นว่า swap space มีขนาดเพิ่มขึ้นมากกว่าตอน step 1      
 
step 8: ถ้าต้องการให้มีการใช้ swap file ทุกครั้งที่เปิดเครื่องให้ใส่ค่าเพิ่มลงไปใน  /etc/fstabดังนี้
 
    /opt/virtual/swapfile     swap     swap     defaults     0     0
 
 
*ปล. ถ้าจะยกเลิกการใช้งาน  swap file ก็ให้ใช้คำสั่ง  swapoff  /opt/virtual/swapfile  เป็นอันได้เรื่อง
 
**ปล. ขอขอบคุณข้อมูลประกอบการเขียนบทความครั้งนี้จากหนังสือ GRANDLINUX 5.0 Professional ครับ
 
 
หรือ download scrip  ที่ทำไว้แล้วตามนี้  Scrip ขยาย Swap   >>>swap.tar.gz <<<
เมื่อ download เสร็จให้นำไปไว้ที่ห้อง /root/
ทำการแตก file โดยใช้คำสั่ง  tar zxvf swap.tar.gz
จากนั้นเข้า folder swap ใช้คำสั่ง cd swap
ทำการ config  โดยใช้คำสั่ง swap.sh
 
เป็นอันเสร็จขั้นตอน