ผลต่างระหว่างรุ่นของ "การ backup hard disk ของ ubuntu server ด้วยคำสั่ง tar"

จาก Wiki Opensource
(หน้าที่ถูกสร้างด้วย 'บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 2-04-2558 ดูแลโดย WI...')
 
แถว 1: แถว 1:
 
บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 2-04-2558
 
บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 2-04-2558
  
ดูแลโดย WIBOON <br/><br/>
+
ดูแลโดย WIBOON<br/><br/>
*เป็นการ backup hard disk partition sda1 ของ server ด้วยคำสั่ง tar ขึ้นเป็น image file ชนิด tgz ในขณะเดียวกันก็ส่งผ่าน LAN ไปเก็บไว้บน server หรือ client  
+
*เป็นการ backup hard disk partition sda1 ของ server ด้วยคำสั่ง tar ขึ้นเป็น image file ชนิด tgz ในขณะเดียวกันก็ส่งผ่าน LAN ไปเก็บไว้บน server หรือ client บนเน็ตอีกเครื่องหนึ่ง
 
*เรียกได้ว่าเป็นเทคนิคโคลนนิ่ง (cloning)
 
*เรียกได้ว่าเป็นเทคนิคโคลนนิ่ง (cloning)
 
*เทคนิคนี้เป็นสูตรที่ใช้สร้าง psu12-sritrang.tgz
 
*เทคนิคนี้เป็นสูตรที่ใช้สร้าง psu12-sritrang.tgz
 
*เป็นวิธีที่ต้องปิดเครื่องก่อนโคลนนิ่ง<br/>
 
*เป็นวิธีที่ต้องปิดเครื่องก่อนโคลนนิ่ง<br/>
  
 +
<br/>
  
 
+
ความต้องการในการทดสอบทำ
ความต้องการ
 
 
*server1 คือต้นฉบับ
 
*server1 คือต้นฉบับ
 
*server2 คือที่เก็บไฟล์ .tgz ซึ่ง server2 ต้องติดตั้ง sshfs ไว้แล้ว (sudo apt-get install sshfs)
 
*server2 คือที่เก็บไฟล์ .tgz ซึ่ง server2 ต้องติดตั้ง sshfs ไว้แล้ว (sudo apt-get install sshfs)
แถว 18: แถว 18:
 
ขั้นตอนดังนี้<br/>
 
ขั้นตอนดังนี้<br/>
  
<span style="color:#0000cd">บูทด้วยแผ่น sysresccd </span>
+
<span style="color:#0000cd">บูทด้วยแผ่น sysresccd</span>
  
 
และทำการ clone โดยใช้คำสั่งดังต่อไปนี้
 
และทำการ clone โดยใช้คำสั่งดังต่อไปนี้
แถว 48: แถว 48:
 
จัดการ partition hard disk sda ให้เท่ากับที่ใช้ใน /etc/fstab ของ server1<br/>
 
จัดการ partition hard disk sda ให้เท่ากับที่ใช้ใน /etc/fstab ของ server1<br/>
  
ใช้คำสั่ง parted เพื่อสร้าง partition /sda1 ขนาด 7 GB, /sda5 ขนาด 1 GB ดังต่อไปนี้<br/>parted -s /dev/sda mklabel msdos<br/>parted -s /dev/sda unit GB mkpart primary ext4 0 7<br/>parted -s /dev/sda unit GB mkpart extended 7 8<br/>parted -s /dev/sda unit GB mkpart logical linux-swap 7 8<br/>mkfs.ext4 /dev/sda1<br/>mkswap /dev/sda5<br/>
+
ใช้คำสั่ง parted เพื่อสร้าง partition /sda1 ขนาด 7 GB, /sda5 ขนาด 1 GB ดังต่อไปนี้<br/><span style="color:#0000cd">parted -s /dev/sda mklabel msdos<br/>parted -s /dev/sda unit GB mkpart primary ext4 0 7<br/>parted -s /dev/sda unit GB mkpart extended 7 8<br/>parted -s /dev/sda unit GB mkpart logical linux-swap 7 8<br/>mkfs.ext4 /dev/sda1<br/>mkswap /dev/sda5</span><br/>
  
 
ทำการ restore โดยใช้คำสั่งดังต่อไปนี้<br/>
 
ทำการ restore โดยใช้คำสั่งดังต่อไปนี้<br/>
  
mount /dev/sda1 /mnt/custom<br/>
+
<span style="color:#0000cd">mount /dev/sda1 /mnt/custom</span><br/>
  
sshfs user2@server2:/home/user2/ /mnt/backup<br/>(ต้องป้อน username และ password ให้ถูกต้อง)<br/>
+
<span style="color:#0000cd">sshfs user2@server2:/home/user2/ /mnt/backup</span><br/>(ต้องป้อน username และ password ให้ถูกต้อง)<br/>
  
tar -zxpvf /mnt/backup/server1.tgz -C /mnt/custom .<br/>(ต้องระวังว่ามีเครื่องหมายจุดต่อท้ายด้วย)<br/>
+
<span style="color:#0000cd">tar -zxpvf /mnt/backup/server1.tgz -C /mnt/custom .</span><br/>(ต้องระวังว่ามีเครื่องหมายจุดต่อท้ายด้วย)<br/>
  
 
เตรียมพื้นที่ /dev, /sys, /proc สำหรับใช้กับคำสั่ง grub-install เพื่อทำ boot loader ให้เครื่อง boot ได้<br/>
 
เตรียมพื้นที่ /dev, /sys, /proc สำหรับใช้กับคำสั่ง grub-install เพื่อทำ boot loader ให้เครื่อง boot ได้<br/>
  
mount --bind /dev /mnt/custom/dev<br/>
+
<span style="color:#0000cd">mount --bind /dev /mnt/custom/dev</span><br/>
 +
 
 +
<span style="color:#0000cd">mount --bind /sys /mnt/custom/sys</span><br/>
  
mount --bind /sys /mnt/custom/sys<br/>
+
<span style="color:#0000cd">mount --bind /proc /mnt/custom/proc</span><br/><br/>แก้ไขค่า UUID ของ partition ให้ตรงกับของใหม่<br/>
  
mount --bind /proc /mnt/custom/proc<br/><br/>แก้ไขค่า UUID ของ partition ให้ตรงกับของใหม่ <br/>
+
ใช้คำสั่งแสดงข้อมูล UUID ใน fstab ของเดิม ดังนี้<br/><span style="color:#0000cd">cat /mnt/custom/etc/fstab</span><br/>สมมติได้ดังนี้<br/><span style="color:#006400">UUID=fb051dc6-5f32-4dd0-a5d3-935cee7d75bf / ext4 relatime,errors=remount-ro 0 1<br/>UUID=b454ee0f-3135-4bc1-b111-16731f41059c none swap sw 0 0</span><br/>ใช้คำสั่งแสดง UUID ของใหม่ ดังนี้<br/><span style="color:#0000cd">blkid</span><br/>สมมติได้ดังนี้<br/><span style="color:#006400">/dev/sda1: UUID="babdfa44-be47-47fc-b6f5-92afd905487d" TYPE="ext4"<br/>/dev/sda5: UUID="9881ca9c-9a5a-4104-be59-9ced35697f6d" TYPE="swap"</span><br/>
  
ใช้คำสั่งแสดงข้อมูล UUID ใน fstab ของเดิม ดังนี้<br/>cat /mnt/custom/etc/fstab<br/>สมมติได้ดังนี้<br/>UUID=fb051dc6-5f32-4dd0-a5d3-935cee7d75bf / ext4 relatime,errors=remount-ro 0 1<br/>UUID=b454ee0f-3135-4bc1-b111-16731f41059c none swap sw 0 0<br/>ใช้คำสั่งแสดง UUID ของใหม่ ดังนี้<br/>blkid<br/>สมมติได้ดังนี้<br/>/dev/sda1: UUID="babdfa44-be47-47fc-b6f5-92afd905487d" TYPE="ext4"<br/>/dev/sda5: UUID="9881ca9c-9a5a-4104-be59-9ced35697f6d" TYPE="swap"<br/>
+
เราจะแก้ไขไฟล์ fstab ให้ถูกต้อง ใช้คำสั่งดังนี้<br/><span style="color:#0000cd">sed -i 's/fb051dc6-5f32-4dd0-a5d3-935cee7d75bf/babdfa44-be47-47fc-b6f5-92afd905487d/g' /mnt/custom/etc/fstab</span><br/><span style="color:#0000cd">sed -i 's/b454ee0f-3135-4bc1-b111-16731f41059c/9881ca9c-9a5a-4104-be59-9ced35697f6d/g' /mnt/custom/etc/fstab</span><br/>และแก้ไขไฟล์ grub.cfg ให้ถูกต้อง ใช้คำสั่งดังนี้<br/><span style="color:#0000cd">chmod u+w /mnt/custom/boot/grub/grub.cfg</span><br/><span style="color:#0000cd">sed -i 's/fb051dc6-5f32-4dd0-a5d3-935cee7d75bf/babdfa44-be47-47fc-b6f5-92afd905487d/g' /mnt/custom/boot/grub/grub.cfg</span><br/><span style="color:#0000cd">sed -i 's/b454ee0f-3135-4bc1-b111-16731f41059c/9881ca9c-9a5a-4104-be59-9ced35697f6d/g' /mnt/custom/boot/grub/grub.cfg</span><br/><span style="color:#0000cd">chmod u-w /mnt/custom/boot/grub/grub.cfg</span><br/>
  
เราจะแก้ไขไฟล์ fstab ให้ถูกต้อง ใช้คำสั่งดังนี้<br/>sed -i 's/fb051dc6-5f32-4dd0-a5d3-935cee7d75bf/babdfa44-be47-47fc-b6f5-92afd905487d/g' /mnt/custom/etc/fstab<br/>sed -i 's/b454ee0f-3135-4bc1-b111-16731f41059c/9881ca9c-9a5a-4104-be59-9ced35697f6d/g' /mnt/custom/etc/fstab<br/>และแก้ไขไฟล์ grub.cfg ให้ถูกต้อง ใช้คำสั่งดังนี้<br/>chmod u+w /mnt/custom/boot/grub/grub.cfg<br/>sed -i 's/fb051dc6-5f32-4dd0-a5d3-935cee7d75bf/babdfa44-be47-47fc-b6f5-92afd905487d/g' /mnt/custom/boot/grub/grub.cfg<br/>sed -i 's/b454ee0f-3135-4bc1-b111-16731f41059c/9881ca9c-9a5a-4104-be59-9ced35697f6d/g' /mnt/custom/boot/grub/grub.cfg<br/>chmod u-w /mnt/custom/boot/grub/grub.cfg<br/>
+
ทำ boot loader<br/><span style="color:#0000cd">chroot /mnt/custom /bin/bash -c "grub-install --recheck /dev/sda"</span><br/>และอัปเดต grub<br/><span style="color:#0000cd">chroot /mnt/custom /bin/bash -c "update-grub"</span><br/><br/>ปิดการใช้พื้นที่ /mnt/custom ต่างๆ ที่ mount ไว้<br/><span style="color:#0000cd">umount /mnt/custom/dev<br/>umount /mnt/custom/sys<br/>umount /mnt/custom/proc<br/>umount /mnt/custom</span><br/>ปิดการใช้พื้นที่ /mnt/backup<br/><span style="color:#0000cd">fusermount -u /mnt/backup</span><br/>
  
ทำ boot loader<br/>chroot /mnt/custom /bin/bash -c "grub-install --recheck /dev/sda"<br/>และอัปเดต grub<br/>chroot /mnt/custom /bin/bash -c "update-grub"<br/><br/>ปิดการใช้พื้นที่ /mnt/custom ต่างๆ ที่ mount ไว้<br/>umount /mnt/custom/dev<br/>umount /mnt/custom/sys<br/>umount /mnt/custom/proc<br/>umount /mnt/custom<br/>ปิดการใช้พื้นที่ /mnt/backup <br/>fusermount -u /mnt/backup<br/>
+
ปิดเครื่องด้วยคำสั่ง<br/><span style="color:#0000cd">shutdown -h now</span><br/>
  
ปิดเครื่องด้วยคำสั่ง<br/>shutdown -h now<br/>
+
<span style="color:#0000cd">เอาแผ่น sysresccd ออก</span><br/>
  
เอาแผ่น sysresccd ออก<br/><br/>
+
ทดสอบเปิดเครื่องที่ restore สำเร็จนั้น จะใช้งานได้เหมือน server ต้นฉบับ

รุ่นปรับปรุงเมื่อ 16:07, 2 เมษายน 2558

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 2-04-2558

ดูแลโดย WIBOON

  • เป็นการ backup hard disk partition sda1 ของ server ด้วยคำสั่ง tar ขึ้นเป็น image file ชนิด tgz ในขณะเดียวกันก็ส่งผ่าน LAN ไปเก็บไว้บน server หรือ client บนเน็ตอีกเครื่องหนึ่ง
  • เรียกได้ว่าเป็นเทคนิคโคลนนิ่ง (cloning)
  • เทคนิคนี้เป็นสูตรที่ใช้สร้าง psu12-sritrang.tgz
  • เป็นวิธีที่ต้องปิดเครื่องก่อนโคลนนิ่ง


ความต้องการในการทดสอบทำ

  • server1 คือต้นฉบับ
  • server2 คือที่เก็บไฟล์ .tgz ซึ่ง server2 ต้องติดตั้ง sshfs ไว้แล้ว (sudo apt-get install sshfs)
  • server3 คือเครื่องว่างเปล่า


(1) การ Backup

ขั้นตอนดังนี้

บูทด้วยแผ่น sysresccd

และทำการ clone โดยใช้คำสั่งดังต่อไปนี้

mount /dev/sda1 /mnt/custom

sshfs user2@server2:/home/user2/ /mnt/backup
(ต้องป้อน username และ password ให้ถูกต้อง)

tar -zcpvf /mnt/backup/server1.tgz -C /mnt/custom .
(ต้องระวังว่ามีเครื่องหมายจุดต่อท้ายด้วย)

รอสักพัก เห็นข้อความวิ่งไปเรื่อย ๆ จนข้อความหยุดวิ่ง

umount /mnt/custom

fusermount -u /mnt/backup

ปิดเครื่องด้วยคำสั่ง

shutdown -h now

เอาแผ่น sysresccd ออก



(2) การ Restore

ขั้นตอนดังนี้

เปิด server3 ให้บูทด้วยแผ่น sysresccd

จัดการ partition hard disk sda ให้เท่ากับที่ใช้ใน /etc/fstab ของ server1

ใช้คำสั่ง parted เพื่อสร้าง partition /sda1 ขนาด 7 GB, /sda5 ขนาด 1 GB ดังต่อไปนี้
parted -s /dev/sda mklabel msdos
parted -s /dev/sda unit GB mkpart primary ext4 0 7
parted -s /dev/sda unit GB mkpart extended 7 8
parted -s /dev/sda unit GB mkpart logical linux-swap 7 8
mkfs.ext4 /dev/sda1
mkswap /dev/sda5

ทำการ restore โดยใช้คำสั่งดังต่อไปนี้

mount /dev/sda1 /mnt/custom

sshfs user2@server2:/home/user2/ /mnt/backup
(ต้องป้อน username และ password ให้ถูกต้อง)

tar -zxpvf /mnt/backup/server1.tgz -C /mnt/custom .
(ต้องระวังว่ามีเครื่องหมายจุดต่อท้ายด้วย)

เตรียมพื้นที่ /dev, /sys, /proc สำหรับใช้กับคำสั่ง grub-install เพื่อทำ boot loader ให้เครื่อง boot ได้

mount --bind /dev /mnt/custom/dev

mount --bind /sys /mnt/custom/sys

mount --bind /proc /mnt/custom/proc

แก้ไขค่า UUID ของ partition ให้ตรงกับของใหม่

ใช้คำสั่งแสดงข้อมูล UUID ใน fstab ของเดิม ดังนี้
cat /mnt/custom/etc/fstab
สมมติได้ดังนี้
UUID=fb051dc6-5f32-4dd0-a5d3-935cee7d75bf / ext4 relatime,errors=remount-ro 0 1
UUID=b454ee0f-3135-4bc1-b111-16731f41059c none swap sw 0 0

ใช้คำสั่งแสดง UUID ของใหม่ ดังนี้
blkid
สมมติได้ดังนี้
/dev/sda1: UUID="babdfa44-be47-47fc-b6f5-92afd905487d" TYPE="ext4"
/dev/sda5: UUID="9881ca9c-9a5a-4104-be59-9ced35697f6d" TYPE="swap"

เราจะแก้ไขไฟล์ fstab ให้ถูกต้อง ใช้คำสั่งดังนี้
sed -i 's/fb051dc6-5f32-4dd0-a5d3-935cee7d75bf/babdfa44-be47-47fc-b6f5-92afd905487d/g' /mnt/custom/etc/fstab
sed -i 's/b454ee0f-3135-4bc1-b111-16731f41059c/9881ca9c-9a5a-4104-be59-9ced35697f6d/g' /mnt/custom/etc/fstab
และแก้ไขไฟล์ grub.cfg ให้ถูกต้อง ใช้คำสั่งดังนี้
chmod u+w /mnt/custom/boot/grub/grub.cfg
sed -i 's/fb051dc6-5f32-4dd0-a5d3-935cee7d75bf/babdfa44-be47-47fc-b6f5-92afd905487d/g' /mnt/custom/boot/grub/grub.cfg
sed -i 's/b454ee0f-3135-4bc1-b111-16731f41059c/9881ca9c-9a5a-4104-be59-9ced35697f6d/g' /mnt/custom/boot/grub/grub.cfg
chmod u-w /mnt/custom/boot/grub/grub.cfg

ทำ boot loader
chroot /mnt/custom /bin/bash -c "grub-install --recheck /dev/sda"
และอัปเดต grub
chroot /mnt/custom /bin/bash -c "update-grub"

ปิดการใช้พื้นที่ /mnt/custom ต่างๆ ที่ mount ไว้
umount /mnt/custom/dev
umount /mnt/custom/sys
umount /mnt/custom/proc
umount /mnt/custom

ปิดการใช้พื้นที่ /mnt/backup
fusermount -u /mnt/backup

ปิดเครื่องด้วยคำสั่ง
shutdown -h now

เอาแผ่น sysresccd ออก

ทดสอบเปิดเครื่องที่ restore สำเร็จนั้น จะใช้งานได้เหมือน server ต้นฉบับ