การเขียน Image ของ Harddisk ด้วยแผ่น System Rescue Live CD (ตอนที่ 1)

เกริ่นนำ

  • เป็นที่ทราบกันดีว่าการติดตั้ง Windows หรือ Linux เป็นอะไรที่น่าเบื่อมากแค่ไหน ไหนจะต้องติดตั้งโปรแกรมที่ใช้งาน บางที่เป็นวันเลยก็มี แต่ถ้าเราเขียน image ของ harddisk ได้จะทุ่นเวลาไปมาก เพราะตอนนำ image มาเขียนกลับลง harddisk จะใช้เวลาแค่ไม่เกินชั่วโมง
  • เป็น Linux Live CD ที่ผมชอบมาก ใช้บ่อยตอนเขียน image ของ harddisk เลือก partition ที่ต้องการได้ ต้องสารภาพจริงๆว่าไม่เคยใช้โปรแกรมหรือ tools อื่นๆเช่น Norton ghost เลยก็ไม่รู้ความยากง่ายต่างกันแค่ไหน วิธีการใช้ก็ง่าย แค่คำสั่ง command line พื้นฐานไม่กี่บรรทัด
  • แต่ที่สำคัญคือเป็นของฟรี

สิ่งที่ต้องเตรียม

  • แผ่น CD -R หรือ USB Flash drive ขนาดมากกว่า 1 GB สำหรับเขียน System Rescue Live CD
  • ถ้าเป็นไปได้แนะนะให้ใช้ External harddisk สำหรับเขียน Image ของ Harddisk ตอนนี้เห็นคนใช้กันมากส่วนใหญ่ ก๊อปปี้หนัง เพลง ข้อมูลกันไว้ได้มาก หรือถ้าแย่ที่สุดก็เขียนลงใน Harddisk ตัวเดียวที่จะอ่าน Image มาเซฟไว้นั่นแหละ ภาษาวินโดส์ อาจจะพูดว่า อ่าน Image ของ Drive C (Windows) มาเก็บไว้บน Drive D (ไดรฟ์ข้อมูล) อะไรประมาณนี้ แต่ใน Linux จะไม่มองเป็น Drive เรียงตัวอักษรภาษาอังกฤษจาก A, B, C, … จะอย่างไรค่อยว่ากัน
  • Partition Harddisk ที่ต้องการเขียน Image ถ้าเป็น Windows ใช้ระบบไฟล์เป็น NTFS หรือไม่ถ้าเก่าหน่อยก็เป็น Fat32 ส่วน Linux ถ้าอาจจะเป็น ext3 หรือ ext4 ผมใช้ Ubuntu 9.04 อยู่แต่ใช้ ext3 เพราะตอนลงเที่ยวแรกใช้ ext4 ปรากฎว่า PCLinuxOS ที่เคยเข้าไปอ่านไฟล์ของ Ubuntu ได้ตรง file systems หรือแม้กระทั่ง partition Home (ที่ผมแยกให้อยู่ต่าง Partition) ก็ฟอร์แม็ตเป็น ext4 เรียบร้อยเลย PCLinuxOS ที่ยังใช้ ext3 เข้าไม่ได้แบบสนิท มาเจ็บอีกครั้งตอนเขียน image ของ Harddisk เพราะเพื่อนรัก PartImage (ตัวนี้จะเป็นตัวเอกที่จะได้กล่าวต่อไปคือเป็นตัวเขียน Image ของ Harddisk) ไม่รู้จัก ext4 ซะงั้น หันไปใช้ FSAchiever ที่อยู่ในแผ่นเดียวกันก็คือ System Rescue Live CD กลับไม่เวิร์คมาตายตอนอ่าน Image ที่เขียนจาก FSArchiver ตัวเดียวกันนี่แหละ ก็เลยไม่เคยลองอีกเลย แต่อย่างไรก็ตามถ้า Partimage หยุด suppoert แค่ ext3 อนาคตต้องหันไปคบกับ FSArchiver อย่างหลีกเลี่ยงไม่พ้น

ดาวน์โหลดและเบิร์น

  • ไปที่ website http://www.sysresccd.org/Download จะพบ link ให้ Download เวอร์ชั่นล่าสุดตอนที่เขียนนี้อยู่ที่ 1.2.3 เลือกดาวน์โหลดบน plat form  “i486/amd64” ขนาดไฟล์ประมาณ 236 MB ก็ไม่ถือว่าใหญ่มากนักในยุค hispeed internet
  • เมื่อ Download ได้ไฟล์ ISO มาแล้วจัดการเบิร์นลงแผ่น CD เมื่อเสร็จแล้วพร้อมจะนำไป Bootเครื่องคอมพิวเตอร์เราเป็น Live CD
  • ทางเลือกอื่นๆถ้าไม่ต้องการเบิร์นลงแผ่น CD ถ้าต้องการ Boot ด้วย USB Flash drive ผมแนะนำให้ไป Download “UnetBootin” เป็นของฟรีเช่นเดียวกันที่ http://unetbootin.sourceforge.net/ ทีสำคัญคือมีทั้งเวอร์ชั่นเป็น Windows และ Linux ถ้าเป็นวินโดส์ ก็ไม่ต้องติดตั้ง double click ไฟล์ที่ดาวน์โหลดมาก็รันได้เลย และที่สำคัญคือฟรี
  • ถ้าเป็น Ubuntu ใช้คำสั่ง

$sudo ./unetbootin-linux-356 (unetbootin-linux-356 คือไฟล์ที่ดาวน์โหลดมา)

Select ISO image file for UNetbootin
Select ISO image file for UNetbootin
  • ในwebsite ของ UNetbootin จะมีภาพ snapshot screen แสดงวิธีใช้ทำให้เข้าใจได้ง่ายๆ
  • ในยุครักษ์สิ่งแวดล้อม การประหยัดแผ่น CD ก็ถือเป็นเรื่องดี เขียน image iso ลง USB Flash drive เมื่อไม่ใช้ boot ก็เอาไปฟอร์แมท เขียนข้อมูลอื่นได้ตามปกติ ต้องการ boot เมื่อไหร่ก็ค่อยมาใช้โปรแกรม UnetBootin เขียน image iso เป็นแผ่น boot อีกครั้ง
  • การตั้ง BIOS ปัจจุบันเครื่องคอมพิวเตอร์ไม่ว่า PC หรือ Notebook ก็สามารถตั้ง Bios ให้ Boot จาก CD rom หรือ USB Flash drive ได้ ถ้าให้ดีตั้งให้กดคีย์เช่น F12 เพื่อเลือกจะ Boot จาก Harddisk, CD rom หรือ USB Flash drive ถ้าทำบู๊ตจาก UNetbootin ด้วย USB Flash drive โปรแกรม UNetbootin จะสร้างเมนูให้หลายๆอย่าง ส่วนใหญ่ผมจะเลือก VMLinuz2 บางเครื่องที่พบจะเลือกบรรทัด Vesa แต่ถ้าเป็น CD เข้าไปเลยไม่มีถามอะไร
  • ทำการ Boot จาก USB Flash drive หรือ CD เครื่องจะทำการบูต ครั้งแรกจะถาม layout ของ คีย์บอร์ด เลือกกด Enter เป็น default คือภาษาอังกฤษ  สุดท้ายจะมาหยุดที่ command line ให้พิมพ์คำสั่งเพื่อเข้าโหมดกราฟฟิค

root@sysrescd /root % startx

เข้าสู่โหมดกราฟฟิค

System Rescue Live CD

  • ดูเรียบง่ายมีเมนูบาร์คล้ายๆ วินโดส์ มีเมนู Start แต่อย่างไรก็ตามกำแพงขวางกั้นสำหรับคนไม่คุ้นกับ Linux เลยคือระบบไฟล์ของ Linux คำถามที่พบของมือใหม่คือ Drive C หรือ Drive D ของผมอยู่ที่ไหน ถ้าเป็น Ubuntu หรือ Linux Distro อื่นๆ จะ mount มาให้อัตโนมัติที่นี้เป็นเรื่องง่าย แค่ดับเบิ้ลคลิกก็ใช้ได้เลย แต่ใน System Rescue Live CD  นี้จะไม่ mount มาให้เหมือนกับ Linux ยุคก่อนคือต้อง Mount ด้วยตัวเอง
  • ขั้นตอนแรกคือต้องทราบว่า Drive เราคือ Harddisk ก็เป็นอุปกรณ์ตัวหนึ่ง Linux จะมองเป็น device เรียกย่อๆว่า dev อุปกรณ์ที่ Linux พบหรือสนับสนุนจะอยู่ที่ Directory ของระบบ อยู่ที่ไดเรคทอรี /dev ถ้าใช้คำสั่ง $ ls -l /dev จะเห็นอุปกรณ์มากมายที่ Linux สนับสนุน เช่นถ้าเป็น Harddisk รุ่นที่เป็น PATA (ต่อด้วยสายแพร์สมัยก่อน) จะเห็น /dev/hda1, /dev/hda2 แต่ถ้าเป็น Harddisk SATA จะเห็น /dev/sda1, /dev/sda2 หรือ /dev/sdb1, /dev/sdb2 ของ Linux Harddisk จะไม่เรียงกันแบบ Drive A, Drive B,…. Drive Z แบบวินโดส์ การตั้งชื่อแบบ Linux หรือ Unix ผมว่าคิดได้สุดยอด Harddisk ลูกแรกอาจจะเป็น sda ถ้ามีการแบ่ง Partition ไป 8 Partition ก็จะมีชื่อ dev เป็น sda1, sda2, sda3, …. จนถึง sda8 แต่ถ้าเป็นวินโดส์ละลองคิดดู Drive ต่อจาก Drive Z  จะเป็นอะไร
  • ถ้าใช้คำสั่ง  $ df ก็จะเห็นแต่ drive ที่ mount แล้ว ผมเองสะดวกที่จะใช้ GParted ตัวนี้ใช้ในการจัดการ Partition ทั้งแบ่ง เพิ่มขนาด ลบ รวม Partition ทำได้ ถึงแม้จะเรียบง่ายแต่ที่ผมใช้มาหลายปีก็ไม่เคยงอแงเลย ที่จริงจุดประสงค์เราต้องการ list ดู partition ของ harddisk ที่เครื่องคอมพิวเตอร์เราต่ออยู่เท่านั้น คลิกที่เมนู Start > System > GParted หรือพิมพ์คำสั่งที่เทอร์มินอลดังนี้

root@sysrescd /root % gparted

gparted on system rescue live cd

  • ถ้าดูรูปด้านบนเป็นภาพของโปรแกรม GParted (GNome Parted) ให้สังเกตุมุมขวาบน linux จะแสดงอุปกรณ์ /dev/sda (298.09 GB) นี่คือ harddisk ของผมบนเครื่องโน๊ตบุ๊ค แบ่ง partition ไว้ 8 partition
  1. /dev/sda1 ฟอร์แมตเป็น ntfs เป็น partition ของวินโดส์เอ็กซพี
  2. /dev/sda2 ฟอร์แมตเป็น ext3 เป็น partition ของ Ubuntu 9.04
  3. /dev/sda3 ฟอร์แมตเป็น ext3 เป็น partition ของ PCLinux 2009 (distro ที่ผมรักอีกตัวหนึ่ง) ส่วน home partition ไม่ได้สร้างขึ้นมาเป็นพิเศษใช้รวมอยู่ใน partition นี้ด้วยกัน
  4. /dev/sda4 เป็น extended partition  ซึ่งข้างใน  partition นี้จะบรรจุ logical partition ดังต่อไปนี้
  5. /dev/sda5 ฟอร์แมตเป็น ext3 เป็น partition home ของ Ubuntu 9.04 ถ้าเปิด Ubuntu จะเมาท์เป็น /home/prajuab ตามชื่อของผม
  6. /dev/sda6 ฟอร์แมตเป็น ntfs เป็น partition ที่ไว้เก็บข้อมูลสำหรับวินโดส์ แต่ถ้าใช้ linux อย่าง Ubuntu ก็ใช้งานได้ทั้งอ่านและเขียน แต่วินโดส์จะมองไม่เห็น drive ของ linux เท่านั้น
  7. /dev/sda7 ฟอร์แมตเป็น ntfs เป็น partition ที่ไว้เก็บข้อมูลสำหรับวินโดส์เช่น /dev/sda6
  8. /dev/sda8 ขนาดประมาณ 2 GB ตั้งให้เป็น linux-swap สำหรับ linux ใช้เป็นพื้นที่สว๊อป
  • ผมบู๊ต System Rescue Live CD นี้ด้วย USB Flash drive ขนาดประมาณ 2 GB แล้วอยู่ไหนละ วิธีการคือคลิกที่รูป harddisk ตรงมุมบนขวาเลือก /dev/sdb1 ลองดูภาพข้างล่าง

Gparted แสดง USB Flash drive ที่ใช้บู๊ต System Rescue Live CD

  • มี partition เดียวคือ /dev/sdb1 มีฟอร์แมตเป็น Fat32
  • ที่ผมกล่าวอ้างมาก่อนคือถ้าเขียน image ลง external harddisk แล้ว drive อยู่ตรงไหน ลองตรวจดูคลิกที่เดิมมุมขวาบนที่เดิม

GParted แสดง External Harddisk ที่ต่อผ่านพอร์ท USB สำหรับเขียน Image

  • มี 2 partition คือ
    1. /dev/sdc1 ฟอร์แมตเป็น NTFS มีชื่อวอลุ่มคือ PJ146GBData
    2. /dev/sdc2 ฟอร์แมตเป็น NTFS มีชื่อวอลุ่มคือ PJ86GBOSImages พาร์ทิชั่นนี้แหละที่ผมจะใช้เขียนอ่าน image ของ harddisk
  • จะเห็นว่าใช้โปรแกรม GParted เพื่อตรวจดูว่า harddisk ตัวไหน และพาร์ทิชั่นไหน ที่จะใช้อ่าน image และจะไปเก็บที่พาร์ทิชั่นไหน ตอนนี้โจทย์ก็คือต้องการเขียน image ของวินโดส์เอ็กซพี (/dev/sda1) ไปเก็บไว้ที่ external harddisk (/dev/sdc2)

การเมาท์พาร์ทิชั่นของฮาร์ดดิสค์

  • ถ้าเข้าใจเรื่อง device ฮาร์ดดิสค์ ที่กล่าวมาแล้วเรื่องเมาท์ด้วยคำสั่ง mount หรือ ntfs-3g ก็เป็นเรื่องไม่ยากแล้ว ในไฟล์ระบบของ linux จะมี directory ที่ใช้สำหรับเมาท์โดยเฉพาะคือ /mnt ความเข้าใจง่ายๆสำหรับการเมาท์ คือเอา device ที่เป็นฮาร์ดดิสค์ ไปเชื่อมไปต่อกับ directory ที่เตรียมไว้ให้ linux ได้เห็นและใช้อุปกรณ์ตัวนั้น
  • สร้าง sub directory ไว้ภายใต้ directory mount ใช้คำสั่ง

root@sysrescd /root % cd /mnt

root@sysrescd /mnt % mkdir pjdiskimages

root@sysrescd /mnt % ls -l

  • จะเห็น directory pjimages ปรากฎอยู่ใต้ directory /mnt พร้อมที่จะเอา /dev/sdc2 มาเมาท์ที่นี่ มีข้อแม้อยู่นิดเดียวว่าถ้าโครงสร้างของพาร์ทิชั่นเป็น NTFS ต้องเมาท์ด้วยคำสั่ง ntfs-3g ดังนี้ ก่อนจะเมาท์ directory /mnt/pjdiskimages จะว่างเปล่า

root@sysrescd /mnt % ntfs-3g /dev/sdc2 /mnt/pjdiskimages

Mount external harddisk.

  • ตรวจสอบว่าพาร์ทิชั่น sdc2 เมาท์เข้ามาแล้วมีไฟล์และไดเรคทอรี ตรงที่เรารู้หรือปล่าว ด้วยโปรแกรม Midnight Commander หรือปล่าวคลิกที่เมนู Start > Misc > Midnight Commander ซึ่งคล้ายๆกับ Norton commander ในสมัยก่อน ไปที่ /mnt/pjdiskimages จะเห็นไฟล์และไดเรคทอรี ที่ผมไว้เก็บ image ของฮาร์ดดิสค์

Midnight commander

  • เมื่อเมาท์พาร์ทิชั่นฮาร์ดดิสค์เป็นที่เรียบร้อยแล้ว เราก็พร้อมจะเขียน image ลงไปยัง external harddisk ที่เราต้องการ ต่อไปโปรแกรมที่จะมาอ่าน image ของพาร์ทิชั่นฮาร์ดดิสค์ และเขียนไปยัง external harddisk คือ PartImage คลิกที่เมนู Start > System > PartImage หรือใช้คำสั่ง command line ดังนี้

root@sysrescd /mnt % partimage

  • จะเห็นโปรแกรม partimage ดังรูปข้างล่าง จะเห็นพาร์ทิชั่นของ Windows XP ที่ต้องการอ่าน (Partition to Save/Restore) คือ /dev/sda1 และพาร์ทิชั่นที่จะเขียน (Image file to create/use) คือ /mnt/pjdiskimages/win_images/Acer4920G/win_im.gz

การเลือกพาร์ทิชั่นที่จะอ่านและปลายทางที่จะเขียน image

  • จากรูปด้านบน ตรง Action to be done: ให้เลื่อนไปหาโดยการกด Tab ที่คีย์บอร์ด แล้วเลือก (*) Save partition into a new image file โดยการเคาะ space bar หนึ่งครั้งเพื่อเลือก เมื่อป้อนทุกอย่างเสร็จดังรูปแล้ว กด F5 เพื่อไปตั้งค่าที่หน้าต่อไป

การเลือกรูปแบบการบีบอัด

  • เลือก (*) Gzip จะบีบอัดได้ประมาณครึ่งหนึ่งของขนาดจริง แต่ถ้าเลือก Bzip2 จะบีบได้มากแต่ช้ามากๆ ส่วนพารามิเตอร์อื่นๆ เลือกไว้ตาม default กด F5 เพื่อไปหน้าต่อไป

เขียน comment เพื่อเตือนความทรงจำ

  • จากรูปด้านบนเขียนอะไรก็ได้เพื่อเตือนความทรงจำ ผมขอแหกกฎหน่อยจะเขียน password ของ administrator ของวินโดส์ไว้ เพราะเคยมาแล้วเขียนไว้นานแล้วผมก็เปลี่ยน password วินโดส์จนจำของเก่าไม่ได้เมื่อนำ image มา restore ลงฮาร์ดดิสค์ ปรากฎว่าเข้าวินโดส์ไม่ได้ เมื่อเขียนเตือนความทรงจำแล้ว ที่ปุ่ม OK กด Enter เพื่อไปหน้าต่อไป

ยืนยันเพื่อเขียนไฟล์ image ทับไฟล์เก่า

  • จากรูปด้านบนผมตั้งชื่อไฟล์ที่จะเขียนเหมือนไฟล์เดิมที่อยู่ใน external harddisk โปรแกรมถามเพื่อยืนยันให้เปลี่ยนชื่อหรือทับไฟล์เดิม เลือก Overwrite เพื่อเขียนทับ

โปรแกรม PartImage สรุปก่อนจะเริ่มเขียน image

  • จากรูปด้านบนกด Enter เพื่อไปหน้าต่อไป

NTFS Informations

  • จากรูปด้านบนโปรแกรม PartImage จะสรุปข้อมูลของพาร์ทิชั่นที่เราต้องการอ่านและเขียน กด Enter เพื่อไปหน้าต่อไป

PartImage เเริ่มขียน image ของพาร์ทิชั่นฮาร์ดดิสค์

  • รูปด้านบนโปรแกรม PartImage เริ่มเขียน image ไปยัง external harddisk (dev/sdc2)

โปรแกรม PartImage เขียน Image เสร็จ

  • และนาทีที่รอคอยก็มาถึง รูปด้านบนโปรแกรม PartImage แสดงข้อความว่าเขียน image เสร็จแล้วสรุปว่าใช้เวลาไปเท่าไหร่ ความเร็วเฉลี่ยที่ใช้การอ่านและเขียนรวมทั้งขนาดของ image
  • ก็เป็นอันว่าเสร็จสิ้นแล้วสำหรับการเขียน image ของพาร์ทิชั่นฮาร์ดดิสค์ ตอนต่อไป ตอนที่ 2 ผมจะเสนอการ Restore Image จาก External harddisk ที่เราเขียนไว้แล้ว มา Restore ลงบนพาร์ทิชั่นวินโดส์
  • ออกจาก System Rescue Live CD ด้วยการใช้คำสั่งเพื่อบู๊ตระบบใหม่

root@sysrescd /mnt % shutdown -r down

Leave a Reply

Your email address will not be published.