FSArchiver เครื่องมือเขียน Image ของฮาร์ดดิสค์ มาแบบเงียบและทรงพลัง

FSArchiver

  • เป็นเครื่องมือระบบในการจัดเก็บไฟล์ ไดเรคทอรีหรือแม้กระทั่งพาร์ทิชั่นแบบบีบอัดไปยังไฟล์ปลายทาง สามารถนำมาแบ็คอัพข้อมูลได้หรือเขียน image ของฮาร์ดดิสค์ได้เป็นอย่างดี (หรือที่ชอบเรียกกันว่าโคลนนิ่งฮาร์ดดิสค์หรือโคลนนิ่งพาร์ทิชั่น) และในภายหลังสามารถนำไฟล์มา restore ได้
  • ความสามารถที่เหนือกว่า Partimage ที่ผมเคยเขียนไปแล้วมีหลายอย่าง ที่สำคัญมากคือสามารถอ่านและเขียนระบบไฟล์ ext4 ของลินุกซ์ได้ และอีกอย่างคือสามารถอ่านและเขียนจากพาร์ทิชั่นต้นทางไปยังพาร์ทิชั่นปลายทางที่มีขนาดต่างกันได้ ตราบเท่าที่ขนาดพาร์ทิชั่นปลายทางยังมีเนื้อที่พอให้เขียน
  • สนใจ FSArchiver ติดตามได้ที่นี่

คำเตือน

  • ก่อนจะเอาไปใช้ดูคำเตือนของโปรแกรมด้วย “ยังเป็นรุ่นที่กำลังพัฒนาอยู่ อย่านำไปใช้กับข้อมูลที่สำคัญยิ่งยวด” เท่าที่ผมใช้งานยังไม่พบปัญหาเลยครับ

การประยุกต์ใช้งาน

  • FSArchiver นั้นถูกรวมมากับ SystemRescueCD เวลาใช้งานคือไปดาวน์โหลด SystemRescueCD เป็นไฟล์ ISO จากนั้นจัดการทำบู๊ตด้วยแผ่น CD หรือด้วย Flash drive ก็ยิ่งดีเพราะสามารถฟอร์แม็ตทิ้งแล้วนำไปใช้งานอื่นต่อได้ เมื่อต้องการบู๊ต SystemRescurCD ก็สามารถนำมาทำใหม่ได้
  • การทำบู๊ตด้วย flash drive มีหลายวิธีที่เว็ปไซค์ของ SystemRescueCD แนะนำคือใช้โปรแกรม linuxliveusb เป็นทูลส์ตัวเล็กๆรันบนวินโดส์เท่านั้น ฟรี opensource ใช้ง่าย เขียนบู๊ตได้กับลินุกซ์ได้เกือบทุกดิสโทร

ข้อจำกัดการใช้งานคือใช้ไม่ได้กับ Ubuntu ก่อนรุ่น 8.04, Mandriva และ ISO สำหรับบู๊ตวินโดส์

  • ผมเสียดาย Unetbootin หลังจาก SystemRescueCD รุ่น 1.5.x  เป็นต้นมาไม่สามารถนำมาใช้งานได้ ทั้งที่ยังใช้งานทำบู๊ตให้กับลีนุกซ์อื่นๆได้เกือบทุกดิสโทร
  • ข้อจำกัดของ FSArchiver คือเป็นคำสั่งมือ (command line) แต่ขอบอกว่ามันง่ายมากเลยแค่บรรทัดเดียว ขอให้ผู้ใช้มีความรู้ด้านการเมาท์พาร์ทิชั่นก่อนจะสั่ง FSArchiver ทำงานก็พอ

วิธีการใช้งาน

บู๊ต

  • มาดูการใช้งานหลังจากทำบู๊ตด้วย flash drive แล้วทำการบู๊ตเครื่องเข้า SystemRescueCD ใช้คำสั่ง startx เพื่อเข้าสู่โหมดกราฟฟิค

#startx

เมาท์พาร์ทิชั่น

  • ตรวจดูพาร์ทิชั่นที่จะเมาท์เพื่อเก็บ image ใช้ GParted ก็ได้แต่ง่ายที่สุดคือใช้ FSArchiver ด้วย option ต่อไปนี้

#fsarchiver probe simple

แสดงพาร์ชั่นต้นทางและปลายทาง
  • รูปด้านบนผมมี external hard disk เสียบอยู่กับคอมพิวเตอร์ device ที่เห็นคือ sdd พาร์ทิชั่นที่ต้องการจัดเก็บคือ sdd1 ส่วนฮาร์ดดิสค์ลูกที่อยู่ในเครื่องคือ sda และพาร์ทิชั่นที่ต้องการเขียนเป็น Kubuntu คือ sda9 ก่อนจะทำการเมาท์ต้องสร้างไดเรคทอรีก่อนผมตั้งชื่อ 500ext4 เพื่อให้สอดคล้องกับชื่อ label ที่ตั้งไว้คือ PJ500GBExt4 (ขนาด 500 GB ระบบไฟล์เป็น ext4) เมาท์ด้วยคำสั่ง mount เพราะระบบไฟล์เป็น ext4 (ถ้าระบบไฟล์เป็น ntfs ต้องใช้คำสั่ง ntfs-3g)

#mkdir /mnt/500ext4

#mount /dev/sdd1 /mnt/500ext4

เขียน Image

  • ทำการเขียน image ด้วยคำสั่ง fsarchiver  ด้วย optionแรก savefs ระบุว่าต้องการจัดเก็บระบบไฟล์ option ที่สองคือปลายทางไฟล์และพาทที่ต้องการจัดเก็บไปไว้(ไฟล์ชื่อ kubuntu2 ซึ่ง fsarchiver จะเพิ่ม extension เป็น fsa ให้อัตโนมัติ) option สุดท้ายคือพาร์ทิชั่นต้นทางที่ต้องการเขียน image หรือโคลน

#fsarchiver savefs /mnt/500ext4/partimages/kubuntu/kubuntu2 /dev/sda9

มาแบบเงียบๆ

  • ที่จั่วหัวว่ามาแบบเงียบๆ ก็ตรงที่เขียน image ไม่มีการบอก progress อะไรๆทั้งสิ้น ไม่มีการบอกเวลาที่จะสิ้นสุด แต่ทำงานเร็วมาก ความรู้สึกว่าเร็วกว่า partimage มาก ต่อไปในขณะที่อ่านและเขียน จะแอบไปดูปลายทางกันว่าได้ไฟล์ขนาดเท่าไหร่แล้ว เปิด terminal มาอีกตัว ใช้คำสั่ง cd เข้าไปแล้วใช้คำสั่ง list ดูชื่อไฟล์และขนาด
ขนาดของไฟล์ image เพิ่มขึ้น

สิ้นสุดการอ่านและเขียน

  • สำหรับพาร์ทิชั่นของ Kubuntu ของผมไม่ใหญ่มากขนาดประมาณ 20 GB ใช้ไปประมาณ 13.6 GBบีบแล้วได้ขนาดประมาณ 6.7 GB เมื่อ process สิ้นสุด FSArchiver จะแสดงข้อความว่าทำอะไรไปบ้าง
แสดงสถานะของ fsarchiver หลังเขียน image เสร็จ

การ Restore Archive

  • เมื่อต้องการ restore image กลับมาเหมือนเดิม ขั้นตอนคล้ายข้างต้นตั้งแต่บู๊ต เมาท์พาร์ทิชั่นเสร็จแล้วจะใช้คำสั่ง fsarchiver โดยมี option แรกเป็น restfs ส่วน option สุดท้ายต้องระบุ id ของไฟล์ด้วย เพราะ fsarchiver นั้นเก่งสามารถเขียน image หลายๆพาร์ทิชั่นพร้อมกันแล้วเก็บปลายทางที่ไฟล์ๆเดียวได้ แต่ส่วนใหญ่ผมไม่ได้ใช้ การระบุทำได้โดยใช้ id=0 ดูตัวอย่างด้านล่าง

#fsarchiver restfs /mnt/500ext4/partimages/kubuntu/kubuntu2.fsa id=0,dest=/dev/sda9

  • การ restore เร็วกว่าตอนเขียนมากแป๊ปเดียวก็เสร็จ

Leave a Reply

Your email address will not be published. Required fields are marked *